From d4ee062827355a4e687f193c0d3dd301f15fb11f Mon Sep 17 00:00:00 2001 From: fleaz Date: Wed, 2 Mar 2022 00:00:03 +0100 Subject: [PATCH] sway: Add swaylock and swayidle --- home-manager/default.nix | 1 + home-manager/modules/sway.nix | 15 ++++++++++++++- modules/pam.nix | 4 ++++ roles/all.nix | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 modules/pam.nix diff --git a/home-manager/default.nix b/home-manager/default.nix index 0ef0002..b2de9e7 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -70,6 +70,7 @@ in pavucontrol playerctl jq + psmisc swaylock swayidle diff --git a/home-manager/modules/sway.nix b/home-manager/modules/sway.nix index 3ac36f7..93d86ce 100644 --- a/home-manager/modules/sway.nix +++ b/home-manager/modules/sway.nix @@ -1,4 +1,7 @@ { pkgs, nixosConfig, lib, ... }: +let + lockCmd = "${pkgs.swaylock}/bin/swaylock -c 100000ff"; +in { wayland.windowManager.sway = { enable = true; @@ -41,6 +44,16 @@ bars = [{ command = "${pkgs.waybar}/bin/waybar"; }]; + startup = [ + { command = ''${pkgs.swayidle}/bin/swayidle -w \ + timeout 300 "${lockCmd}" \ + timeout 600 "${pkgs.sway}/bin/swaymsg output * dpms off" \ + resume "${pkgs.sway}/bin/swaymsg output * dpms on" \ + before-sleep "${lockCmd}"''; } + ]; + + + keybindings = let mod = "Mod4"; @@ -105,7 +118,7 @@ "XF86AudioRaiseVolume" = "exec ${pactl} set-sink-volume @DEFAULT_SINK@ +5%"; # Tools, AudioMute, AudioLowerVolume - "XF86Tools" = "exec loginctl lock-session"; + "XF86Tools" = "exec killall -USR1 swayidle"; "XF86AudioMute" = "exec ${pactl} set-sink-mute @DEFAULT_SINK@ toggle"; "XF86AudioLowerVolume" = diff --git a/modules/pam.nix b/modules/pam.nix new file mode 100644 index 0000000..93f031b --- /dev/null +++ b/modules/pam.nix @@ -0,0 +1,4 @@ +{ + # Allow swaylock to talk to PAM + security.pam.services.swaylock = {}; +} diff --git a/roles/all.nix b/roles/all.nix index 247a22f..4a2280d 100644 --- a/roles/all.nix +++ b/roles/all.nix @@ -5,6 +5,7 @@ ../modules/earlyoom.nix ../modules/fonts.nix ../modules/opengl.nix + ../modules/pam.nix ../modules/sound.nix ../modules/ssh.nix ../modules/docker.nix