Last active
March 21, 2023 10:23
-
-
Save ivanstepanovftw/6c3ee81f08fc7aefae388e037db51d0f to your computer and use it in GitHub Desktop.
My opinioned Manjaro GNOME post-setup routine
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# | |
# List GNOME shortcuts | |
# | |
for schema in $(gsettings list-schemas | sort); do | |
for key in $(gsettings list-keys $schema | sort); do | |
value="$(gsettings get $schema $key)" | |
range="$(gsettings range $schema $key | tr "\n" "\\n")" | |
echo "gsettings set $schema $key \"$value\" # $range" | |
done | |
done |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
setopt interactive_comments | |
# Update /etc/pacman.d/mirrorlist | |
sudo pacman-mirrors --fasttrack | |
# Set pacman parralel downloads | |
sudo perl -pi -e 's/^(?:[#\w]*)ParallelDownloads(?:.*)/ParallelDownloads = 16/' /etc/pacman.conf | |
# Update | |
pacman -Syuu | |
# Environment | |
########################################### | |
cat <<'EOF' > ~/.zshenv | |
setopt interactive_comments | |
alias ll='ls -la' | |
alias l='ls -l' | |
alias cgrep='grep --color=always' | |
export VISUAL=vim | |
export EDITOR="$VISUAL" | |
EOF | |
########################################### | |
source ~/.zshenv | |
# Install packages | |
pacman_packages=( | |
vim | |
p7zip | |
binwalk | |
zram-generator | |
wl-clipboard | |
caffeine-ng | |
keepassxc | |
libinput-config | |
wine winetricks | |
libpamac-snap-plugin | |
libpamac-flatpak-plugin | |
spotify-launcher | |
discord | |
obs-studio | |
pipewire # for OBS on Wayland | |
manjaro-pipewire | |
vlc | |
#kotatogram-desktop-bin | |
intellij-idea-community-edition | |
#intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jre | |
#clion clion-cmake clion-jre clion-gdb clion-llvm | |
visual-studio-code-bin | |
#xf86-input-mtrack libinput-three-finger-drag | |
) | |
pamac_packages=( | |
google-chrome | |
) | |
sudo pacman -S $pacman_packages | |
sudo pamac install $pamac_packages | |
# Scroll settings | |
########################################### | |
cat <<'EOF' | sudo tee /etc/libinput.conf | |
scroll-factor=0.4 | |
EOF | |
########################################### | |
# Make Caps Lock toggle keyboard layout | |
dconf write /org/gnome/desktop/input-sources/xkb-options "['grp:caps_toggle']" | |
# Intellij-IDEA conflicting keys | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-down "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-left "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-right "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-up "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-down "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-last "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-up "['']" | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "['']" # Navigate: Back | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "['']" # Navigate: Forward | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['']" # Next change | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['']" # Previous change | |
# Switch between windows, not apps | |
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']" # type as | |
gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab']" # type as | |
# Auto raise windows, disable Windows is ready notification | |
gsettings set org.gnome.desktop.wm.preferences auto-raise 'true' | |
# TODO | |
gsettings set org.gnome.shell.keybindings toggle-message-tray "['<Super>m']" # type as | |
# Disable wierd e in IDEA on Ctrl+. | |
#sudo mv /usr/bin/ibus-daemon /usr/bin/ibus-daemon.bak | |
#gsettings set org.freedesktop.ibus.panel.emoji hotkey "['<Control>period', '<Control>semicolon']" # type as | |
gsettings set org.freedesktop.ibus.panel.emoji hotkey "['<Super>period']" # type as | |
# Windows-like screenshots | |
gsettings set org.gnome.shell.keybindings screenshot "['Print']" | |
gsettings set org.gnome.shell.keybindings screenshot-window "['<Alt>Print']" | |
gsettings set org.gnome.shell.keybindings show-screenshot-ui "['<Shift><Super>s']" | |
# Show desktop | |
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']" | |
# Dash to dock | |
gsettings set org.gnome.shell.extensions.dash-to-dock click-action "'minimize-or-previews'" # enum | |
# Enable OOM killer | |
sudo systemctl enable --now systemd-oomd | |
# Enable time sync | |
sudo systemctl enable --now systemd-timesyncd | |
# Enable DNS caching | |
sudo systemctl enable --now systemd-resolved | |
mv /etc/resolv.conf /etc/resolv.conf.bak | |
ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf | |
# Enable zram | |
########################################### | |
cat <<'EOF' | sudo tee /etc/systemd/zram-generator.conf | |
[zram0] | |
# zram-size = min(ram / 2, 8192) | |
zram-size = 10240 | |
compression-algorithm = lz4 #zstd | |
# Partition on the disk with `linux-swap` filesystem | |
#writeback-device=/dev/disk/by-partuuid/cc384792-310b-4778-9aaf-1db7067a5134 | |
EOF | |
cat <<'EOF' | sudo tee /etc/sysctl.d/100-manjaro.conf | |
kernel.sysrq=1 | |
vm.swappiness=200 | |
vm.vfs_cache_pressure=200 | |
vm.page-cluster=0 | |
vm.dirty_ratio=2 | |
vm.dirty_background_ratio=1 | |
EOF | |
########################################### | |
sudo sysctl -p /etc/sysctl.d/100-manjaro.conf | |
sudo systemctl daemon-reload | |
sudo systemctl start /dev/zram0 # Reboot if hang | |
swapon | |
# Enable Attach to process feature | |
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope | |
#To disable this restriction permanently, open the /etc/sysctl.d/10-ptrace.conf file for editing and change the line kernel.yama.ptrace_scope = 1 to kernel.yama.ptrace_scope = 0. | |
# Disable Turbo boost | |
########################################### | |
cat <<'EOF' | sudo tee /etc/rc.local | |
#!/usr/bin/bash | |
echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost | |
EOF | |
########################################### | |
sudo chmod +x /etc/rc.local | |
################ | |
# Virtualization: https://wiki.manjaro.org/index.php/Virt-manager |
Valgrind fix:
sudo DOWNGRADE_FROM_ALA=1 downgrade glibc
WSL2 Ubuntu apt package manager issues with timezone fix:
https://askubuntu.com/a/1270162
Switch to X11 instead of Wayland:
sudo mkdir -p /etc/gdm3
cat << 'EOF' | sudo tee /etc/gdm3/custom.conf
[daemon]
WaylandEnable=false
EOF
sudo systemctl restart gdm
Validate:
loginctl show-session "$(loginctl|grep " $(whoami) " | awk '{print $1}')" -p Type
and:
echo $XDG_SESSION_TYPE
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Blurry text in VSCode or IDEA fix: