diff --git a/modules/home-manager/desktop/sway/default.nix b/modules/home-manager/desktop/sway/default.nix index 7de3dd6..14ecdbe 100644 --- a/modules/home-manager/desktop/sway/default.nix +++ b/modules/home-manager/desktop/sway/default.nix @@ -13,6 +13,16 @@ in description = "configure laptop mode"; }; + swaylock.useNullPackage = mkOption { + type = types.bool; + default = false; + description = '' + Use null package to not install swaylock with Nix + Useful when using Home-Manager on third-party distribution to avoid + problem with PAM + ''; + }; + wallpapers = { lockscreen = mkOption { type = types.str; @@ -114,7 +124,7 @@ in }; iconTheme = { name = "Papirus Dark"; - package = pkgs.papirus-icon-theme; + package = pkgs.papirus-icon-theme; }; font = { name = "Deja Vu Sans"; diff --git a/modules/home-manager/desktop/sway/includes/sway.nix b/modules/home-manager/desktop/sway/includes/sway.nix index d556c05..f93d2c6 100644 --- a/modules/home-manager/desktop/sway/includes/sway.nix +++ b/modules/home-manager/desktop/sway/includes/sway.nix @@ -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"; diff --git a/modules/home-manager/desktop/sway/includes/swayidle.nix b/modules/home-manager/desktop/sway/includes/swayidle.nix index 1b22575..5a274da 100644 --- a/modules/home-manager/desktop/sway/includes/swayidle.nix +++ b/modules/home-manager/desktop/sway/includes/swayidle.nix @@ -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"; } ]; }; diff --git a/modules/home-manager/desktop/sway/includes/swaylock.nix b/modules/home-manager/desktop/sway/includes/swaylock.nix index 0bacc89..b0340ef 100644 --- a/modules/home-manager/desktop/sway/includes/swaylock.nix +++ b/modules/home-manager/desktop/sway/includes/swaylock.nix @@ -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";