Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ivanstepanovftw/6c3ee81f08fc7aefae388e037db51d0f to your computer and use it in GitHub Desktop.
Save ivanstepanovftw/6c3ee81f08fc7aefae388e037db51d0f to your computer and use it in GitHub Desktop.
My opinioned Manjaro GNOME post-setup routine

My Manjaro GNOME post-install setup

#!/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
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
@ivanstepanovftw
Copy link
Author

Blurry text in VSCode or IDEA fix:

gsettings set org.gnome.mutter experimental-features "['kms-modifiers']"

@ivanstepanovftw
Copy link
Author

Valgrind fix:

sudo DOWNGRADE_FROM_ALA=1 downgrade glibc

@ivanstepanovftw
Copy link
Author

WSL2 Ubuntu apt package manager issues with timezone fix:
https://askubuntu.com/a/1270162

@ivanstepanovftw
Copy link
Author

ivanstepanovftw commented Aug 25, 2022

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