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

This commit is contained in:
Grimmauld
2025-11-10 22:18:21 +00:00
committed by GitHub
2 changed files with 4 additions and 9 deletions
@@ -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. - In all other cases, you'll need to set this option to `true` yourself.
- `boot.isNspawnContainer` being `true` implies [](#opt-boot.isContainer) being `true`. - `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. - 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
View File
@@ -130,10 +130,6 @@ let
''; '';
userOpts = userOpts =
let
# Pass state version through despite config being overwritten in the inner module
inherit (config.system) stateVersion;
in
{ name, config, ... }: { name, config, ... }:
{ {
@@ -463,8 +459,7 @@ let
linger = mkOption { linger = mkOption {
type = types.nullOr types.bool; type = types.nullOr types.bool;
example = true; example = true;
default = if versionOlder stateVersion "26.11" then false else null; default = null;
defaultText = literalExpression "if lib.versionOlder config.system.stateVersion \"25.11\" then false else null";
description = '' description = ''
Whether to enable or disable lingering for this user. Without Whether to enable or disable lingering for this user. Without
lingering, user units will not be started until the user logs in, lingering, user units will not be started until the user logs in,
@@ -472,8 +467,8 @@ let
`logind.conf`. `logind.conf`.
By default, NixOS will not manage lingering, new users will default 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 `loginctl enable-linger` or `loginctl disable-linger`. Setting
this option to `true` or `false` is the declarative equivalent of this option to `true` or `false` is the declarative equivalent of
running `loginctl enable-linger` or `loginctl disable-linger` running `loginctl enable-linger` or `loginctl disable-linger`
respectively. respectively.