Home Explore Blog CI



nixpkgs

2nd chunk of `nixos/modules/services/desktop-managers/gnome.md`
51f0c28c54ea1a69ff4db1e90e6d9be0cb4dafd854b9bfbf000000010000099a
GNOME Flashback provides a desktop environment based on the classic GNOME 2 architecture. You can enable the default GNOME Flashback session, which uses the Metacity window manager, with:

```nix
{
  services.desktopManager.gnome.flashback.enableMetacity = true;
}
```

It is also possible to create custom sessions that replace Metacity with a different window manager using [](#opt-services.desktopManager.gnome.flashback.customSessions).

The following example uses `xmonad` window manager:

```nix
{
  services.desktopManager.gnome.flashback.customSessions = [
    {
      wmName = "xmonad";
      wmLabel = "XMonad";
      wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad";
      enableGnomePanel = false;
    }
  ];
}
```

## Icons and GTK Themes {#sec-gnome-icons-and-gtk-themes}

Icon themes and GTK themes don’t require any special option to install in NixOS.

You can add them to [](#opt-environment.systemPackages) and switch to them with GNOME Tweaks.
If you’d like to do this manually in dconf, change the values of the following keys:

```
/org/gnome/desktop/interface/gtk-theme
/org/gnome/desktop/interface/icon-theme
```

in `dconf-editor`

## Shell Extensions {#sec-gnome-shell-extensions}

Most Shell extensions are packaged under the `gnomeExtensions` attribute.
Some packages that include Shell extensions, like `gpaste`, don’t have their extension decoupled under this attribute.

You can install them like any other package:

```nix
{
  environment.systemPackages = [
    gnomeExtensions.dash-to-dock
    gnomeExtensions.gsconnect
    gnomeExtensions.mpris-indicator-button
  ];
}
```

Unfortunately, we lack a way for these to be managed in a completely declarative way.
So you have to enable them manually with an Extensions application.
It is possible to use a [GSettings override](#sec-gnome-gsettings-overrides) for this on `org.gnome.shell.enabled-extensions`, but that will only influence the default value.

## GSettings Overrides {#sec-gnome-gsettings-overrides}

Majority of software building on the GNOME platform use GLib’s [GSettings](https://developer.gnome.org/gio/unstable/GSettings.html) system to manage runtime configuration. For our purposes, the system consists of XML schemas describing the individual configuration options, stored in the package, and a settings backend, where the values of the settings are stored. On NixOS, like on most Linux distributions, dconf database is used as the backend.

Title: GNOME Flashback, Themes, Extensions, and GSettings Configuration
Summary
This section describes how to configure GNOME Flashback with custom window managers, install icon and GTK themes, and manage GNOME Shell extensions in NixOS. It also explains how to use GSettings overrides to configure GNOME applications, highlighting the use of dconf as the settings backend.