Files
nix-config/modules/desktop/gnome.org
T

52 lines
1.6 KiB
Org Mode
Raw Normal View History

2026-10-03 09:56:48 +02:00
#+title: GNOME
#+setupfile: ../headers
* GNOME
GNOME is my desktop environment of choice on the hosts that don’t run
a bare Wayland compositor like Hyprland or Sway on their own. I keep
it around in case I break my config in either compositor. Here’s the
skeleton of the =nixos.gnome= module.
#+begin_src nix :tangle yes
{config, ...}: let
m = config.flake.modules.nixos;
in {
flake.modules.nixos.gnome = {...}: {
imports = [m.xserver];
<<display-manager>>
<<gnome-extras>>
};
}
#+end_src
GNOME still needs the keyboard layout and video driver settings from
[[file:xserver.org][xserver]], so this module pulls that one in directly rather than making
every host import both.
** Login and Session
GDM is GNOME’s own display manager, paired here with the GNOME session
itself.
#+name: display-manager
#+begin_src nix
config.services.displayManager.gdm.enable = true;
config.services.desktopManager.gnome.enable = true;
#+end_src
** Extra GNOME Services
=gnome-browser-connector= lets browser extensions talk to the GNOME
Shell’s own extension, =gnome-remote-desktop= gives me built-in RDP
support, =gnome-online-accounts= handles signing into things like
Nextcloud from GNOME’s own settings, and =sushi= is the quick file
previewer Nautilus uses. =games= I turn off explicitly, since I have no
use for GNOME’s bundled casual games.
#+name: gnome-extras
#+begin_src nix
config.services.gnome = {
gnome-browser-connector.enable = true;
games.enable = false;
gnome-remote-desktop.enable = true;
gnome-online-accounts.enable = true;
sushi.enable = true;
};
#+end_src