Skip to main content

GNOME

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

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 line WaylandEnable=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 imageinitramfs and setting the kernel commandline parameter to enable KMS support for the proprietary NVIDIA driver!

See Graphics Cards on how to set up early KMS with the proprietary NVIDIA driver.

Set Keymap for GDM

NOTE: Executing this command while chrooted 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

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 keys, GPG keys)
fwupd Firmware update manager; allows UEFI capsule updates in GNOME Software if supported by firmware
gnome-software-packagekit-pluginManage Arch packages in GNOME Software
pacman -S gthumb lollypop seahorse fwupd

Replace repo packages with Flatpak packages

If you wish to use the Flatpak versions of packages that the GNOME desktop team maintains themselves, you can uninstall the packages that are available as Flatpak in GNOME Software.

Remove the repo packages with pacman:

pacman -Rn gnome-software-packagekit-plugin{calculator,calendar,characters,clocks,connections,contacts,font-viewer,logs,maps,music,text-editor,weather,games} epiphany totem loupe snapshot simple-scan baobab evince sushi cheese seahorse dconf-editor endeavour d-spy gnome-tweaks

Install the core GNOME apps as Flatpaks:

flatpak install flathub org.gnome.{Calculator,Calendar,Snapshot,Characters,clocks,Connections,Contacts,baobab,SimpleScan,Extensions,font-viewer,Loupe,Logs,Maps,Music,TextEditor,Weather,Epiphany,Papers,meld,seahorse.Application,} ca.desrt.dconf-editor io.github.alainm23.planify page.tesk.Refine io.bassi.Amberol com.rafaelmardojai.Blanket page.kramo.Cartridges dev.geopjr.Collision re.sonny.Commit re.sonny.OhMySVG com.github.huluti.Curtail com.belmoussaoui.Decoder app.drey.Dialect app.drey.EarTag io.github.mrvladus.List com.github.finefindus.eyedropper com.github.ADBeveridge.Raider com.mardojai.ForgeSparks de.haeckerfelix.Fragments org.gnome.gitlab.YaLTeR.Identity io.gitlab.adhami3310.Impression org.gnome.World.Iotas io.gitlab.news_flash.NewsFlash com.belmoussaoui.Obfuscate org.gnome.World.PikaBackup org.gnome.Podcasts de.schmidhuberj.DieBahn net.nokyan.Resources com.rafaelmardojai.SharePreview io.gitlab.adhami3310.Converter dev.geopjr.Tuba io.github.idevecore.Valuta org.gnome.gitlab.YaLTeR.VideoTrimmer com.rafaelmardojai.WebfontKitGenerator com.github.hugolabe.Wike dev.bragefuglseth.Keypunch io.github.bytezz.IPLookup io.github.giantpinkrobots.varia com.github.johnfactotum.QuickLookup org.telegram.desktop com.vysp3r.ProtonPlus com.mattjakeman.ExtensionManager com.github.tchx84.Flatseal io.github.flattool.Warehouse dev.vencord.Vesktop org.nickvision.tubeconverter org.libreoffice.LibreOffice com.obsproject.Studio org.prismlauncher.PrismLauncher com.heroicgameslauncher.hgl net.lutris.Lutris org.scummvm.ScummVM org.pipewire.Helvum io.github.ronniedroid.concessio net.natesales.Aviator de.hummdudel.Libellus com.github.geigi.cozy com.github.johnfactotum.Foliate dev.qwery.AddWater io.github.realmazharhussain.GdmSettings io.github.dzheremi2.lrcmake-gtk me.sanchezrodriguez.passes garden.jamie.Morphosis io.gitlab.elescoute.password io.github.vmkspv.netsleuth io.github.amit9838.mousam info.rttr.Return-To-The-Roots io.github.flattool.Ignition de.k_bo.Televido org.gnome.GHex app.drey.KeyRack org.gnome.Showtime io.github.nokse22.inspector it.mijorus.smile org.gnome.Evolution com.cassidyjames.butler org.pitivi.Pitivi cafe.avery.Delfin io.github.giantpinkrobots.flatsweep org.gnome.Gtranslator io.openrct2.OpenRCT2 org.tabos.saldo org.gnome.design.Contrast io.github.Foldex.AdwSteamGtk com.github.taiko2k.avvie org.nickvision.tagger org.gnome.gitg com.belmoussaoui.ReadItLater xyz.ketok.Speedtest org.gabmus.whatip org.gustavoperedo.FontDownloader com.belmoussaoui.snowglobe org.gnome.Geary org.gnome.Calls io.github.celluloid_player.Celluloid io.github.zhrexl.thisweekinmylife fr.handbrake.ghb org.soundconverter.SoundConverter io.missioncenter.MissionCenter org.gnome.NetworkDisplays com.makemkv.MakeMKV org.gnome.gitlab.somas.Apostrophe

List of GNOME core apps on Flathub:

NameIDDescription
Calculatororg.gnome.CalculatorPerform arithmetic, scientific or financial calculations
Calendarorg.gnome.CalendarManage your schedule
Callsorg.gnome.CallsMake phone and SIP calls
Cameraorg.gnome.SnapshotTake pictures and videos
Charactersorg.gnome.CharactersCharacter map application
Clocksorg.gnome.clocksKeep track of time
Color Profile Viewerorg.gnome.ColorViewerInspect and compare installed color profiles
Connectionsorg.gnome.ConnectionsView and use other desktops
Contactsorg.gnome.ContactsManage your contacts
Disk Usage Analyzerorg.gnome.baobabCheck folder sizes and available disk space
Document Scannerorg.gnome.SimpleScanMake a digital copy of your photos and documents
Document Viewerorg.gnome.EvinceDocument viewer for popular document formats
Extensionsorg.gnome.ExtensionsManage your GNOME Extensions
Fontsorg.gnome.font-viewerView fonts on your system
Image Viewerorg.gnome.LoupeView images
Logsorg.gnome.LogsView detailed event logs for the system
Mapsorg.gnome.MapsFind places around the world
Musicorg.gnome.MusicPlay and organize your music collection
Text Editororg.gnome.TextEditorEdit text files
Videosorg.gnome.TotemPlay movies
Weatherorg.gnome.WeatherShow weather conditions and forecast
Weborg.gnome.EpiphanyBrowse the web

List of GNOME internet communication apps on Flathub:

NameIDDescription
Eolieorg.gnome.EolieWeb browser
Evolutionorg.gnome.EvolutionManage your email, contacts and schedule
Fractalorg.gnome.FractalChat on Matrix
Gearyorg.gnome.GearySend and receive email
Polariorg.gnome.PolariTalk to people on IRC

List of GNOME multimedia apps on Flathub:

NameIDDescription
Cheeseorg.gnome.CheeseTake photos and videos with your webcam, with fun graphical effects
Decibelsorg.gnome.DecibelsPlay audio files
EasyTAGorg.gnome.EasyTAGEdit audio file metadata
Eye of GNOMEorg.gnome.eogBrowse and rotate images
gThumb Image Viewerorg.gnome.gThumbView and organize your images
Identityorg.gnome.gitlab.YaLTeR.IdentityCompare images and videos
Lollypoporg.gnome.LollypopPlay and organize your music collection
Photosorg.gnome.PhotosAccess, organize and share your photos on GNOME
Podcastsorg.gnome.PodcastsListen to your favorite shows
Rhythmboxorg.gnome.Rhythmbox3Play and organize all your music
Shotwellorg.gnome.ShotwellDigital photo organizer
Showtimeorg.gnome.ShowtimeWatch without distraction
Sound Juicerorg.gnome.SoundJuicerCD ripper with a clean interface and simple preferences
Sound Recorderorg.gnome.SoundRecorderA simple, modern sound recorder for GNOME
Video Trimmerorg.gnome.gitlab.YaLTeR.VideoTrimmerTrim videos quickly

List of GNOME productivity apps on Flathub:

NameIDDescription
Apostropheorg.gnome.gitlab.somas.ApostropheEdit Markdown in style
Bookuporg.gnome.gitlab.ilhooq.BookupStreamline notes with Markdown!
Break Timerorg.gnome.BreakTimerComputer break reminders for GNOME
Citationsorg.gnome.World.CitationsManage your bibliography
Endeavourorg.gnome.TodoManage your tasks
Favaorg.gnome.gitlab.johannesjh.favagtkDo your finances using fava and beancount
Getting Things GNOME!org.gnome.GTGPersonal tasks and TODO-list items organizer
Gnoteorg.gnome.GnoteA simple note-taking application
Hamsterorg.gnome.HamsterPersonal time keeping tool
Iotasorg.gnome.World.IotasSimple note taking
Notesorg.gnome.NotesNotes for GNOME
Papersorg.gnome.PapersRead documents
Pinpointorg.gnome.PinpointExcellent presentations for hackers
Pulporg.gnome.gitlab.cheywood.PulpSkim excessive feeds
Recipesorg.gnome.RecipesGNOME loves to cook
Solanumorg.gnome.SolanumBalance working time and break time
Translation Editororg.gnome.GtranslatorTranslate and localize applications and libraries

List of GNOME games on Flathub:

NameIDDescription
Aisleriot Solitaireorg.gnome.AisleriotPlay many different solitaire games
GNOME Chessorg.gnome.ChessPlay the classic two-player board game of chess
Crossword Editororg.gnome.Crosswords.EditorCreate crossword puzzles
Crosswordsorg.gnome.CrosswordsSolve crossword puzzles
Four-in-a-roworg.gnome.Four-in-a-rowMake lines of the same color to win
HexGLorg.gnome.HexGLSpace racing game
Hitoriorg.gnome.HitoriPlay the Hitori puzzle game
GNOME Klotskiorg.gnome.KlotskiSlide blocks to solve the puzzle
Lights Offorg.gnome.LightsOffTurn off all the lights
Mahjonggorg.gnome.MahjonggMatch tiles and clear the board
GNOME Minesorg.gnome.MinesClear hidden mines from a minefield
Nibblesorg.gnome.NibblesGuide a worm around a maze
Quadrapasselorg.gnome.QuadrapasselFit falling blocks together
Reversiorg.gnome.ReversiDominate the board in a classic reversi game, or play the reversed variant
GNOME Robotsorg.gnome.RobotsAvoid the robots and make them crash into each other
GNOME Sudokuorg.gnome.SudokuTest yourself in the classic puzzle
Swell Fooporg.gnome.SwellFoopClear the screen by removing groups of colored and shaped tiles
Taliorg.gnome.TaliRoll dice and score points
GNOME Taquinorg.gnome.TaquinSlide tiles to their correct places
GNOME Tetravexorg.gnome.TetravexReorder tiles to fit a square
GNOME 2048org.gnome.TwentyFortyEightObtain the 2048 tile
Atomixorg.gnome.atomixBuild molecules out of single atoms
Five or Moreorg.gnome.five-or-moreRemove colored balls from the board by forming lines
gbrainyorg.gnome.gbrainygbrainy is a game to train memory, arithmetical, verbal and logical skills.
Convolutionorg.gnome.gitlab.bazylevnik0.ConvolutionMaze escaping game

List of GNOME tools on Flathub:

NameIDDescription
Braseroorg.gnome.BraseroCreate and copy CDs and DVDs
Bufferorg.gnome.gitlab.cheywood.BufferEmbrace ephemeral text
Cowsayorg.gnome.gitlab.CowsayState of the art Cowsay generator
Déjà Dup Backupsorg.gnome.DejaDupProtect yourself from data loss
File Rollerorg.gnome.FileRollerOpen, modify and create compressed archive files
Firmwareorg.gnome.FirmwareInstall firmware on devices
geditorg.gnome.geditText editor
GMetronomeorg.gnome.gitlab.dqpb.GMetronomeMaintain a steady tempo
GNOME Network Displaysorg.gnome.NetworkDisplaysScreencasting for GNOME
Keysignorg.gnome.KeysignOpenPGP Keysigning helper
Passwords and Keysorg.gnome.seahorse.ApplicationManage your passwords and encryption keys
Pika Backuporg.gnome.World.PikaBackupKeep your data safe
Secretsorg.gnome.World.SecretsManage your passwords
Sushiorg.gnome.NautilusPreviewerProvide a facility for quickly viewing different kinds of files

List of GNOME development apps on Flathub:

NameIDDescription
Boxesorg.gnome.BoxesVirtualization made simple
Builderorg.gnome.BuilderCreate applications for GNOME
D-Spyorg.gnome.dspyAnalyze D-Bus connections
Devhelporg.gnome.DevhelpA developer tool for browsing and searching API documentation
GHexorg.gnome.GHexInspect and edit binary files
gitgorg.gnome.gitgGraphical user interface for git
Gladeorg.gnome.GladeCreate or open user interface designs for GTK+ applications
Meldorg.gnome.meldCompare and merge your files

GNOME Keyring

Gnome Keyring is a useful tool for securely storing and managing passwords, SSH keys, and other sensitive information.

As gnome-keyring is already a member of the gnome package group, it should already be installed.

To manage the contents of gnome-keyring install seahorse:

pacman -S seahorse

SSH Keys

You can use gnome-keyring to store the passphrases of your SSH keys for passwordless authentication. However, the systemd user service file does not include the ssh component.

To include the ssh component, edit the systemd unit file:

systemctl edit --user gnome-keyring-daemon

This opens an editor with a temporary drop-in file. In here you can override the parameters of the systemd unit file:

NOTE: To properly replace a parameter, it first needs to be empty and then repeated on the next line with the value you want it to have. Additionally, setting the SSH_AUTH_SOCK environment variable will make applications aware of an already unlocked SSH key.

[Service]
ExecStart=
ExecStart=/usr/bin/gnome-keyring-daemon --foreground --components="pkcs11,secrets,ssh" --control-directory=%t/keyring

Save the file and close the editor. It will get automatically reloaded by systemd if necessary.

In order to reveal to applications that an SSH key has already been unlocked, set an environment variable for the current user:

echo SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/keyring/ssh >> ~/.config/environment.d/envvars.conf

Re-login for the changes to take effect.

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-sudoku gnome-taquin gnome-tetravex hitori iagno lightsoff polari quadrapassel swell-foop tali

Customize GDM (wallpaper, logo, message)

  1. Create directories:
    mkdir -p /etc/dconf/profile
    mkdir -p /etc/dconf/db/gdm.d/
    
  2. Create config files
    touch /etc/dconf/profile/gdm
    touch /etc/dconf/db/gdm.d/01-login-screen
    
  3. Contents of /etc/dconf/profile/gdm
    user-db:user
    system-db:gdm
    file-db:/usr/share/gdm/greeter-dconf-defaults
    
  4. 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'
    
  5. Update gconf to apply configs
    dconf update