diff --git a/home/modules/programs/my-sway/default.nix b/home/modules/programs/my-sway/default.nix index f41a2bd..e008055 100644 --- a/home/modules/programs/my-sway/default.nix +++ b/home/modules/programs/my-sway/default.nix @@ -104,6 +104,10 @@ in "${mod}+Shift+r" = "mode resize"; ## Screenshot "Print" = "exec ${pkgs.flameshot}/bin/flameshot gui"; + ## Locking + "${mod}+semicolon" = "exec ${pkgs.swaylock}/bin/swaylock" + + (if cfg.wallpaper == "" then "" else " -i ${cfg.wallpaper} -s fit") + + " -l -k"; } // ( # Map the workspaces builtins.listToAttrs (lib.flatten (map diff --git a/modules/services/swaylock.nix b/modules/services/swaylock.nix new file mode 100644 index 0000000..6a7e317 --- /dev/null +++ b/modules/services/swaylock.nix @@ -0,0 +1,17 @@ +{ config, pkgs, lib, ... }: +with lib; +let + cfg = config.services.swaylock; +in +{ + options.services.swaylock = { + enable = mkEnableOption "Enable swaylock"; + package = mkOption { + type = types.package; + default = pkgs.swaylock; + }; + }; + config = mkIf cfg.enable { + security.pam.services.swaylock.text = readFile "${cfg.package}/etc/pam.d/swaylock"; + }; +} diff --git a/nki-x1c1/configuration.nix b/nki-x1c1/configuration.nix index 566cf55..f38b10c 100644 --- a/nki-x1c1/configuration.nix +++ b/nki-x1c1/configuration.nix @@ -13,6 +13,7 @@ ../modules/personal/fonts # Some PAM stuff ../modules/services/pam/gnome-keyring.nix + ../modules/services/swaylock.nix ../modules/services/input-remapper.nix ]; # Use the latest kernel @@ -147,6 +148,7 @@ # List services that you want to enable: nki.services.pam.enableGnomeKeyring = true; services.input-remapper.enable = true; + services.swaylock.enable = true; # Enable the OpenSSH daemon. services.openssh.enable = true;