fix(sway): add possibility to not install swaylock package

Useful when using home-manager on third-party distribution. Swaylock
from nixpkgs become unable to unlock session because PAM
incompatibilities.
This commit is contained in:
Yorick Barbanneau 2025-08-24 22:45:13 +02:00
parent a359d8c06e
commit c1ee8f9d50
Signed by: ephase
GPG key ID: 246042E52B41FFCF
4 changed files with 18 additions and 7 deletions

View file

@ -76,7 +76,7 @@ in
"${mod}+Alt+k" = "kill";
"${mod}+Alt+c" = "reload";
"${mod}+Alt+Backspace" = "exec swaynag -t warning -m 'Exit sway?' -B 'Yes' 'swaymsg exit'";
"${mod}+Alt+l" = "exec ${pkgs.swaylock}/bin/swaylock";
"${mod}+Alt+l" = if cfg.swaylock.useNullPackage then "exec swaylock" else "exec ${pkgs.swaylock}/bin/swaylock";
# Manage windows placement
"${mod}+b" = "splith";
"${mod}+v" = "splitv";

View file

@ -21,11 +21,11 @@ in
events = [
{
event = "before-sleep";
command = "${pkgs.swaylock}/bin/swaylock -f";
command = if cfg.swaylock.useNullPackage then "swaylock" else "${pkgs.swaylock}/bin/swaylock";
}
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock -f";
command = if cfg.swaylock.useNullPackage then "swaylock" else "${pkgs.swaylock}/bin/swaylock";
}
];
};

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.sway;
@ -6,9 +6,10 @@ in
{
config = mkIf config.modules.desktop.sway.enable {
programs.swaylock = {
package = if cfg.swaylock.useNullPackage then null else pkgs.swaylock;
enable = true;
settings = {
image = "${cfg.wallpapers.lockscreen}";
image = if cfg.wallpapers.lockscreen != "" then "${cfg.wallpapers.lockscreen}" else false;
scaling = "center";
color = "000000";
indicator-radius = 70;
@ -22,7 +23,7 @@ in
ring-wrong-color = "f268b3";
inside-wrong-color = "f268b3cc";
key-hl-color = "1cd180";
caps-lock-key-hl-color = "1cd180";
caps-lock-key-hl-color = "1cd180";
caps-lock-bs-hl-color = "f268b3";
bs-hl-color = "f268b3ff";
separator-color = "00000000";