From 3641a241a1ad51305d86a999a78527a11898fa7b Mon Sep 17 00:00:00 2001 From: twoneis Date: Fri, 7 Mar 2025 12:48:04 +0100 Subject: [PATCH] niri and yubikey login config --- modules/niri/default.nix | 17 +++++++++++++++++ modules/niri/niri.conf.nix | 4 ++-- modules/yubikey/default.nix | 10 ++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/modules/niri/default.nix b/modules/niri/default.nix index 8187a0f..f743ff3 100644 --- a/modules/niri/default.nix +++ b/modules/niri/default.nix @@ -64,6 +64,7 @@ in { settings = import ./niri.conf.nix { lib = lib; config = config; + pkgs = pkgs; }; }; @@ -92,6 +93,22 @@ in { }; }; + services.swayidle = let + lockCmd = "${config.home-manager.users.${conf.username}.programs.swaylock.package}/bin/swaylock"; + in { + enable = true; + events = [ + { + event = "lock"; + command = lockCmd; + } + { + event = "before-sleep"; + command = lockCmd; + } + ]; + }; + services.mako = { enable = true; defaultTimeout = 5000; diff --git a/modules/niri/niri.conf.nix b/modules/niri/niri.conf.nix index 61fc139..d699a5e 100644 --- a/modules/niri/niri.conf.nix +++ b/modules/niri/niri.conf.nix @@ -1,6 +1,7 @@ { lib, config, + pkgs, ... }: let inherit (config.conf) keys extraLayout; @@ -128,7 +129,6 @@ in { spawn-at-startup = [ {command = ["waybar"];} - {command = ["swayidle" "-w" "before-sleep" "swaylock"];} ]; binds = { @@ -258,7 +258,7 @@ in { "Print".action.screenshot-screen = []; # Exit - "Mod+Shift+L".action.spawn = "swaylock"; + "Mod+Shift+L".action.spawn = ["${pkgs.systemd}/bin/loginctl" "lock-session"]; "Mod+Shift+Q".action.quit = []; }; } diff --git a/modules/yubikey/default.nix b/modules/yubikey/default.nix index 6e7d613..83a612c 100644 --- a/modules/yubikey/default.nix +++ b/modules/yubikey/default.nix @@ -31,5 +31,15 @@ in cue = true; control = "required"; }; + + # Lock when removing yubikey + services.udev.extraRules = '' + ACTION=="remove",\ + ENV{ID_BUS}=="usb",\ + ENV{ID_MODEL_ID}=="0407",\ + ENV{ID_VENDOR_ID}=="1050",\ + ENV{ID_VENDOR}=="Yubico",\ + RUN+="${pkgs.systemd}/bin/loginctl lock-sessions" + ''; }) ]