Skip to content

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.

A machine chooses the style and the terminal:

hosts/example/default.nix
desktop.style = "GNOME";
gnome.terminal = "ghostty";

A user tunes the extensions and the apps pinned to the dash:

home/example/default.nix
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.