GNOME Installation
Base GNOME packages for the full GNOME experience. Bundle with other packages to prevent package conflicts providing the same functionality.
TIP: Include any and all packages you want installed in a list to pacman
. That way pacman
will resolve package dependencies correctly and not install packages that would cause conflicts with other packages later on in the setup; e.g. the gnome
group installs pulseaudio
, but pulseaudio
and pipewire
(see below) are conflicting packages, meaning they can't both be installed at the same time prompting you to remove one or the other. Explicitly selected packages take precedence over packages auto-selected via dependencies.
pacman -S gnome gnome-extra
Video Acceleration
Drivers for hardware accelerated desktop rendering, improving performance and fidelity.
Intel
pacman -S mesa vulkan-intel intel-media-driver libva-intel-driver
yay -S intel-hybrid-codec-driver
AMDGPU
pacman -S xf86-video-amdgpu libva-mesa-driver vulkan-radeon amdvlk
Nvidia
Nouveau open source driver
pacman -S libva-mesa-driver mesa-vdpau
yay -S nouveau-fw
Proprietary driver
pacman -S nvidia nvidia-utils # Includes Vulkan driver
Audio (& screen capture)
Use PipeWire as a more current and modern low-latency sound server. Also better suited for WebRTC screen sharing and recording in Wayland sessions (GNOME uses Wayland by default)
pacman -S pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber xdg-desktop-portal-gnome
Bluetooth
pacman -S bluez bluez-utils
systemctl enable bluetooth
Spell Checking
pacman -S hunspell hunspell-de hunspell-en_US hyphen hyphen-de
Printing
pacman -S cups logrotate system-config-printer
systemctl enable cups
systemctl enable logrotate.timer
Firefox
pacman -S firefox firefox-i18n-de
echo "MOZ_ENABLE_WAYLAND=1" >> /etc/environment
echo "MOZ_WEBRENDER=1" >> /etc/environment
Hardware Decoding
Utilizing GPU hardware accelerated decoding of video content results in smoother playback of HD/4K content, while reducing CPU load and power draw. Set the following in about:config
to enable hardware accelerated video playback in Firefox:
Setting key | Value | Description |
---|---|---|
media.ffmpeg.vaapi.enabled |
true |
Enable VA-API usage |
media.ffvpx.enabled |
false |
Disable internal VP8/9 software decoders |
media.rdd-vpx.enabled |
false |
Disable codec sandbox for VP8/9 |
media.navigator.mediadatadecoder_vpx_enabled |
true |
Enable hardware encoding for WebRTC |
To test if Firefox is actually using VA-API to decode video you can launch it with the following command:
MOZ_LOG="PlatformDecoderModule:5" firefox 2>&1 | grep 'VA-API'
If your log output reads something like the following video decoding via VA-API is working.
[Child 55975: MediaPDecoder #3]: D/PlatformDecoderModule VA-API Got one frame output with pts=135468000dts=135468000 duration=17000 opaque=-9223372036854775808
[Child 55975: MediaPDecoder #3]: D/PlatformDecoderModule Reusing VA-API DMABufSurface UID = 10
Google Chrome
yay -S google-chrome
Tweaks
To enable hardware accelerated video decoding (with open source drivers) create a file at ~/.config/chrome-flags.conf
and add the following line in it:
--enable-features=VaapiVideoDecoder
Furthermore, visit chrome://flags and set the following options to further tweak performance (use the search field to filter):
Setting key | Value | Description |
---|---|---|
#enable-webrtc-pipewire-capturer |
Enabled |
Uses PipeWire to capture the screen in Wayland sessions |
#enable-gpu-rasterization |
Enabled |
Uses GPU for rasterization, boosting performance |
#enable-zero-copy |
Enabled |
Accesses GPU memory directly, boosting performance |
#ozone-platform-hint |
Auto |
Auto-detects which windowsing system is currently in use (X11, Wayland) |
Setting up display manager
Start GDM on boot
Start the GNOME Display Manager (GDM) on boot to be presented with a graphical login screen.
systemctl enable gdm
When using Nvidia proprietary drivers
For the longest time Nvidia only supported their EGLStreams interface for Wayland sessions. Despite GNOME having support for both EGLStreams and the more popular GBM interface, the GNOME Display Manager disables the Wayland session via a udev
rule, if it detects the proprietary driver is in use, to prevent problems with the login screen not showing.
To force enable GNOME's Wayland session even with the proprietary Nvidia driver installed, check the following files:
-
/etc/gdm/custom.conf
: Make sure the lineWaylandEnable=false
is commented out (should be by default) -
/usr/lib/udev/rules.d/61-gdm.rules
: Rename the file and create a symbolic link to/dev/null
ln -s /dev/null /usr/lib/udev/rules.d/61-gdm.rules
Keep in mind that Wayland depends on Kernel Mode Setting to function properly, so it is necessary to include the appropriate kernel modules in the kernel image and setting the kernel commandline parameter to enable KMS support for the proprietary Nvidia driver!
- In
/etc/mkinitcpio.conf
add the following modules:MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
- Rebuild the kernel image
mkinitcpio -P
- Add the following kernel commandline parameter to your boot manager configuration
nvidia-drm.modeset=1
Set Keymap for GDM
NOTE: Executing this command while chroot
ed into an installation will produce an error that the locale could not be found. Set after rebooting the system, press CTRL + ALT + F3
when GDM shows up (or any F-key between 2 and 7) to switch tty, log in via the command line and execute the command as root
.
localectl set-x11-keymap de
Plymouth
ATTENTION: The maintainer of gdm-plymouth.service
is discouraging this method and advising to use regular gdm.service
.
Optionally, as an alternative, install gdm-plymouth
(AUR) for a smooth transition from boot splash:
yay -S gdm-plymouth
systemctl enable gdm-plymouth
See instructions at Plymouth page on how to set up Plymouth.
Generate well-known user directories
xdg-user-dirs-update
Misc additional packages
Additional packages you might want:
Name | Description |
---|---|
gthumb |
Image viewer with simple editing capabilities |
lollypop |
Music player for GNOME |
seahorse |
Secrets manager (login credentials, SSH key passphrases, GPG keys) |
fwupd |
Firmware update manager; allows UEFI capsule updates in GNOME Software if supported by firmware |
gnome-software-packagekit-plugin |
Manage Arch packages in GNOME Software |
pacman -S gthumb lollypop seahorse fwupd gnome-software-packagekit-plugin
Remove potentially unwanted packages
GNOME Dev Tools
pacman -Rsc accerciser devhelp glade gnome-builder sysprof
User Software
pacman -Rsc gnome-recipes
Games
pacman -Rsc five-or-more four-in-a-row gnome-chess gnome-klotski gnome-mahjongg gnome-mines gnome-nibbles gnome-robots gnome-robots gnome-sudoku gnome-taquin gnome-tetravex hitori iagno lightsoff polari quadrapassel swell-foop tali
Customize GDM (wallpaper, logo, message)
- Create directories:
mkdir -p /etc/dconf/profile mkdir -p /etc/dconf/db/gdm.d/
- Create config files
touch /etc/dconf/profile/gdm touch /etc/dconf/db/gdm.d/01-login-screen
- Contents of
/etc/dconf/profile/gdm
user-db:user system-db:gdm file-db:/usr/share/gdm/greeter-dconf-defaults
- Contents of
/etc/dconf/db/gdm.d/01-login-screen
[org/gnome/login-screen] banner-message-enable=true banner-message-text='Lorem ipsum dolor sit amet' logo='/path/to/image.file' [org/gnome/desktop/background] picture-uri='file:///path/to/background.jpg'
- Update gconf to apply configs
dconf update