Desktop
The desktop is GNOME, tuned to feel familiar to someone arriving from another system. A machine chooses the overall style and the terminal; a user tunes the extensions, the apps pinned to the dash, and the keyboard layouts the tray offers.
Extensions are named by their Nixpkgs package rather than the opaque UUID GNOME identifies them by; the option derives the UUID, so enabling or disabling one needs no lookup.
Example
Section titled “Example”A machine chooses the style and the terminal:
desktop.style = "GNOME";gnome.terminal = "ghostty";A user tunes the extensions and the apps pinned to the dash:
user.gnome = { extensions = { tophat = "enabled"; dash-to-dock = "disabled"; }; favoriteApps = [ "org.gnome.Console.desktop" "firefox.desktop" ];};The tray’s input sources default to the user’s keyboard layouts, so they usually need no mention.
Options
Section titled “Options”desktop.stylegnome.terminaluser.gnome.extensionsuser.gnome.favoriteAppsuser.gnome.inputSources— the tray’s keyboard layouts; defaults touser.keyboardLayouts