Unverified Commit 7e0a5a65 authored by Grimmauld's avatar Grimmauld Committed by GitHub
Browse files

linger-users: default to null, be explicit about null = imperative (#460311)

parents ae04c240 1d198094
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -385,7 +385,7 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
  - In all other cases, you'll need to set this option to `true` yourself.
  - `boot.isNspawnContainer` being `true` implies [](#opt-boot.isContainer) being `true`.

- `users.users.*.linger` now defaults to `null` rather than `false`, meaning NixOS will not attempt to enable or disable lingering for that user account.  In practice, this is unlikely to make a difference for most people, as new users are created without lingering configured, but it means users who use `loginctl` commands to manage lingering imperatively will not have their changes overridden by default.  There is a new, related option, `users.manageLingering`, which can be used to prevent NixOS attempting to manage lingering entirely.
- `users.users.*.linger` now defaults to `null` rather than `false`, meaning NixOS will not attempt to enable or disable lingering for that user account, instead allowing for imperative control over lingering using the `loginctl` commands. In practice, this is unlikely to make a difference for most people, as new users are created without lingering configured. There is a new, related option, `users.manageLingering`, which can be used to prevent NixOS attempting to manage lingering entirely.

- Due to [deprecation of gnome-session X11 support](https://blogs.gnome.org/alatiera/2025/06/08/the-x11-session-removal/), `services.desktopManager.pantheon` now defaults to pantheon-wayland session. The X11 session has been removed, see [this issue](https://github.com/elementary/session-settings/issues/91) for details.

+3 −8
Original line number Diff line number Diff line
@@ -130,10 +130,6 @@ let
  '';

  userOpts =
    let
      # Pass state version through despite config being overwritten in the inner module
      inherit (config.system) stateVersion;
    in
    { name, config, ... }:
    {

@@ -463,8 +459,7 @@ let
        linger = mkOption {
          type = types.nullOr types.bool;
          example = true;
          default = if versionOlder stateVersion "26.11" then false else null;
          defaultText = literalExpression "if lib.versionOlder config.system.stateVersion \"25.11\" then false else null";
          default = null;
          description = ''
            Whether to enable or disable lingering for this user.  Without
            lingering, user units will not be started until the user logs in,
@@ -472,7 +467,7 @@ let
            `logind.conf`.

            By default, NixOS will not manage lingering, new users will default
            to not lingering, and you can change the linger setting using
            to not lingering, and lingering can be configured imperatively using
            `loginctl enable-linger` or `loginctl disable-linger`. Setting
            this option to `true` or `false` is the declarative equivalent of
            running `loginctl enable-linger` or `loginctl disable-linger`