#+title: X Server #+setupfile: ../headers * X Server What’s left of =services.xserver= on my hosts now that GNOME runs on Wayland: picking extra video drivers to load, and my own keyboard layout. Here’s the skeleton of the =nixos.xserver= module. #+begin_src nix :tangle yes { flake.modules.nixos.xserver = { config, lib, ... }: with lib; let cfg = config.mySystem.desktop.xserver; in { <> <> }; } #+end_src ** Declaring the Option =videoDrivers= lets a host load extra X11 drivers, such as =amdgpu= on the machine with an AMD GPU. #+name: options #+begin_src nix options.mySystem.desktop.xserver.videoDrivers = mkOption { type = types.listOf types.str; default = []; example = ["amdgpu"]; description = "Extra X11 video drivers to load"; }; #+end_src ** Enabling It I use the same Bépo AFNOR keyboard layout everywhere, so it’s baked in directly rather than exposed as an option. #+name: config #+begin_src nix config.services.xserver = { enable = true; videoDrivers = cfg.videoDrivers; xkb = { layout = "fr"; variant = "bepo_afnor"; }; }; #+end_src