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:
parent
a359d8c06e
commit
c1ee8f9d50
4 changed files with 18 additions and 7 deletions
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue