OFFSET偏移
← All reading paths

DOSSIER 16 / 6 ARTICLES

A declarative GNOME desktop on NixOS

From module enablement to user settings and session lifecycles, identify the layer responsible for each desktop setting.

Start with the first article

Follow the question further.

Begin with GNOME/GDM entry points and module groups, inspect services and package lists, then address GSettings defaults, dconf user state, extension installation, and specialisations. Finally, use the kmscon/uwsm session chain to understand graphical desktop startup and autostart. Check module source snapshots and runtime behavior separately.

  1. 01

    Identify which module is responsible for the desktop, login manager, themes, and input methods.

    Declarative GNOME desktop management

    Organize desktop, login, theme, and input-method configuration responsibilities into module groups.

    Read article
  2. 02

    When removing packages or disabling services, consult the options and check actual defaults at the locked revision.

    GNOME module options reference

    Trace module source code to clarify desktop entry points, service switches, application groups, and exclusion mechanisms.

    Read article
  3. 03

    Understand the three precedence layers before choosing defaults or writes during activation.

    Managing GSettings defaults and dconf state

    Distinguish schema defaults, vendor overrides, and the user database to choose the right declarative interface.

    Read article
  4. 04

    Find changes with before-and-after diffs, convert schema/path formats, then declare extension packages and UUIDs.

    From settings diffs to declarations and extensions

    Export differences, verify schema keys and types, then declare packages and the enabled-extension list.

    Read article
  5. 05

    Understand parent-module inheritance, mkForce, and independent toplevels; prepare a base recovery entry before switching.

    Building GNOME variants with Specialisation

    Derive independent system toplevels from the parent module graph, with clear inheritance, override, and recovery paths.

    Read article
  6. 06

    Check DRM, user targets, and autostart separately. Use logs to confirm the specific failure rather than treating a symptom as a unique root cause.

    kmscon and uwsm in Wayland sessions

    Investigate the lifecycles of DRM handoff, systemd user sessions, and XDG autostart separately.

    Read article
← More reading pathsAll articles ↗