11.stylix/modules/swaylock/hm.nix
NAHO ce22070ec5
Some checks failed
Label Merge Conflicts / conflicts (push) Has been cancelled
Documentation / docs (push) Has been cancelled
treewide: deprecate manual targets.${target}.useWallpaper.enable options (#2084)
Deprecate manual targets.${target}.useWallpaper.enable options with
generated targets.${target}.image.enable options, following commit
953c3fb01e ("stylix/mk-target: generate options for configuring
safeguarded arguments").

Link: https://github.com/nix-community/stylix/pull/2084

Reviewed-by: 0xda157 <da157@voidq.com>
2026-02-01 21:43:25 +01:00

112 lines
2.8 KiB
Nix

{
mkTarget,
pkgs,
config,
lib,
...
}:
mkTarget {
# 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.
#
# Adding `&& config.programs.swaylock.enable` below may lead to infinite
# recursion, due to the above.
#
# [1]: https://github.com/nix-community/home-manager/blob/5cfbf5cc37a3bd1da07ae84eea1b828909c4456b/modules/programs/swaylock.nix#L12-L17
autoEnable =
lib.versionAtLeast config.home.stateVersion "23.05"
&& pkgs.stdenv.hostPlatform.isLinux;
autoEnableExpr = ''
lib.versionAtLeast config.home.stateVersion "23.05" && pkgs.stdenv.hostPlatform.isLinux
'';
config = [
(
{ colors }:
{
programs.swaylock.settings =
with colors;
let
inside = base00-hex;
outside = base00-hex;
ring = base01-hex;
text = base05-hex;
positive = base0B-hex;
negative = base08-hex;
in
{
color = outside;
inside-color = inside;
inside-clear-color = inside;
inside-caps-lock-color = inside;
inside-ver-color = inside;
inside-wrong-color = inside;
key-hl-color = positive;
layout-bg-color = inside;
layout-border-color = ring;
layout-text-color = text;
line-uses-inside = true;
ring-color = ring;
ring-clear-color = negative;
ring-caps-lock-color = ring;
ring-ver-color = positive;
ring-wrong-color = negative;
separator-color = "00000000";
text-color = text;
text-clear-color = text;
text-caps-lock-color = text;
text-ver-color = text;
text-wrong-color = text;
};
}
)
(
{ image }:
{
programs.swaylock.settings.image = image;
}
)
(
{ imageScalingMode }:
{
programs.swaylock.settings.scaling = imageScalingMode;
}
)
];
imports = [
(lib.mkRenamedOptionModuleWith {
from = [
"stylix"
"targets"
"swaylock"
"useImage"
];
sinceRelease = 2505;
to = [
"stylix"
"targets"
"swaylock"
"useWallpaper"
];
})
(lib.mkRenamedOptionModuleWith {
from = [
"stylix"
"targets"
"swaylock"
"useWallpaper"
];
sinceRelease = 2605;
to = [
"stylix"
"targets"
"swaylock"
"image"
"enable"
];
})
];
}