GNOME desktop environment
How to install and configure GNOME as your desktop environment
Install audio
pacman -Syu pipewire pipewire-alsa pipewire-jack pipewire-pulse wireplumber pipewire-docs helvum
Install GNOME
pacman -Syu gnome gnome-extra gnome-themes-extra gnome-power-manager qt5ct libsecret seahorse
Install extensions and additional themes
yay -Syu gnome-shell-extension-dash-to-panel gnome-shell-extension-arc-menu gnome-shell-extension-no-overview gnome-shell-extension-tray-icons-reloaded xcursor-pro-cursor-theme adwaita-qt
Optional MacOS theme
yay -Syu whitesur-icon-theme whitesur-gtk-theme
Remove bloat
pacman -Rscn baobab gnome-recipes gnome-books gnome-boxes gnome-builder gnome-chess gnome-connections tali gnome-games geary ipython gnome-nibbles totem epiphany gnome-software polari iagno lightsoff four-in-a-row gnome-robots hitori gnome-klotski gnome-mines gnome-mahjongg gnome-sudoku quadrapassel swell-foop gnome-tetravex gnome-taquin gnome-remote-desktop
Configuration of Qt5 apps under environments other than KDE Plasma
/etc/environment
export QT_QPA_PLATFORMTHEME=qt5ct
Run qt5ct
to set an Qt5 icon theme
Use Xorg backend by default
/etc/gdm/custom.conf
uncomment WaylandEnable=false
Enable display manager
systemctl enable gdm.service -f
Hide user from GDM login list
To hide a ordinary users from the login list create or edit a file named after the user
/var/lib/AccountsService/users/username
[User]
SystemAccount=true
Info
GNOME login using tty (GDM disabled)
Sessions are stored in /usr/share/xsessions
~/.xinitrc
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
# start some nice programs
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
export XDG_SESSION_TYPE=x11
export GDK_BACKEND=x11
exec gnome-session
# redirect output to /dev/null.
>/dev/null 2>&1
Start an Xorg display server
~/.zprofile
#
# ~/.zprofile
#
[[ -f ~/.zshrc ]] && . ~/.zshrc
if [[ -z $DISPLAY && $(tty) == /dev/tty1 ]]; then
XDG_SESSION_TYPE=x11 GDK_BACKEND=x11 exec startx
fi
Tip
Disable caps lock
Tweaks > Keyboard & mouse > additional layout options > Caps Lock behaivior
Confusingly, it is shown as Disabled
But this means that any customization on that is disabled
In the dropdown choose Caps Lock is disabled option and you are done
Unlock the keyring for a display manager
/etc/pam.d/login
#%PAM-1.0
auth required pam_securetty.so
auth requisite pam_nologin.so
auth include system-local-login
auth optional pam_gnome_keyring.so
account include system-local-login
session include system-local-login
session optional pam_gnome_keyring.so auto_start
Set login keyring as default
~/.local/share/keyrings/default
login
Automatically change default keyring password with user password
#%PAM-1.0
#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#password required pam_unix.so sha512 shadow use_authtok
password required pam_unix.so sha512 shadow nullok
password optional pam_gnome_keyring.so
Complete initialization automatically
~/.zprofile
[[ -f ~/.zshrc ]] && . ~/.zshrc
if [ -n "$DESKTOP_SESSION" ];then
eval $(gnome-keyring-daemon --start)
export SSH_AUTH_SOCK
fi