Files
nix-config/modules/desktop/gnome.org
phundrak a3df5e937f refactor: change to litterate config
Configuration is now held by the `.org` files. All `.nix` files are
tangled from the org-mode files.
2026-10-26 00:43:40 +01:00

52 lines
1.6 KiB
Org Mode
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#+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