Skip to content

Commit

Permalink
swaylock: attempt to avoid infinite recursion (#899)
Browse files Browse the repository at this point in the history
Although the initial pull request was approved [1], a conversation
on Matrix suggests that infinite recursion is indeed possible in
certain cases [2].

[1]: #875
[2]: https://matrix.to/#/!FBhBUKKFkbUIElLvaF:danth.me/$yZz3nJYu9RgaN3736fxF1xY0BfzceGRSsvpiXSq6go4
  • Loading branch information
danth authored Feb 24, 2025
1 parent 359084a commit 9d433a6
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions modules/swaylock/hm.nix
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,16 @@ in
})
];
options.stylix.targets.swaylock = {
enable = config.lib.stylix.mkEnableTarget "Swaylock" true;
enable =
config.lib.stylix.mkEnableTarget "Swaylock"
# When the state version is older than 23.05, Swaylock enables itself
# automatically if `settings != {}` [1]. Therefore, Swaylock theming
# shouldn't be enabled by default for such state versions, to avoid
# inadvertently installing Swaylock when it's not desired.
#
# [1]: https://github.com/nix-community/home-manager/blob/5cfbf5cc37a3bd1da07ae84eea1b828909c4456b/modules/programs/swaylock.nix#L12-L17
(lib.versionAtLeast config.home.stateVersion "23.05");

useWallpaper = config.lib.stylix.mkEnableWallpaper "Swaylock" true;
};

Expand All @@ -47,13 +56,12 @@ in
config.stylix.enable
&& config.stylix.targets.swaylock.enable
&& pkgs.stdenv.hostPlatform.isLinux

# Avoid inadvertently installing the Swaylock package by preventing the
# Home Manager module from enabling itself when 'settings != {}' and the
# state version is older than 23.05 [1].
# Adding `&& config.programs.swaylock.enable` here may lead to infinite
# recursion, due to the default value depending on `settings != {}`
# when the state version is older than 23.05 [1], and the content of
# this module affecting that default.
#
# [1]: https://github.com/nix-community/home-manager/blob/5cfbf5cc37a3bd1da07ae84eea1b828909c4456b/modules/programs/swaylock.nix#L12-L17
&& config.programs.swaylock.enable
)
{
programs.swaylock.settings =
Expand Down

0 comments on commit 9d433a6

Please sign in to comment.