From f05906887371edb0bde1cc1b662e65f836fa2644 Mon Sep 17 00:00:00 2001 From: alexion Date: Sun, 11 Oct 2026 17:25:18 -0400 Subject: [PATCH] refactor(hyprlock): inline command paths --- .../desktop/session/hyprland/hyprlock.nix | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/configs/nixos/modules/desktop/session/hyprland/hyprlock.nix b/configs/nixos/modules/desktop/session/hyprland/hyprlock.nix index c2e389a..0e2f771 100644 --- a/configs/nixos/modules/desktop/session/hyprland/hyprlock.nix +++ b/configs/nixos/modules/desktop/session/hyprland/hyprlock.nix @@ -6,11 +6,6 @@ }: # The lock screen: a hyprlock session-lock surface the compositor owns. let - user = config.user.name; - - # The hyprlock this module installs, used by the lock keybind below. - hyprlock = "${config.home-manager.users.${user}.programs.hyprlock.package}/bin/hyprlock"; - sleepIcon = builtins.fromJSON ''"\udb81\udcb2"''; sleepOffIcon = builtins.fromJSON ''"\udb81\udcb3"''; @@ -48,25 +43,7 @@ in lib.mkEnableOption "the hyprlock lock screen"; config = lib.mkIf config.modules.desktop.session.hyprland.hyprlock.enable { - registry.keybind.${config.networking.hostName} = { - hyprlock-lock = { - keys = "SUPER + X"; - action = { - kind = "exec"; - command = "${pkgs.procps}/bin/pidof hyprlock || ${hyprlock}"; - }; - }; - - hyprlock-toggle-idle-inhibit = { - keys = "SUPER + CTRL + X"; - action = { - kind = "exec"; - command = "${idleLockToggle}"; - }; - }; - }; - - home-manager.users.${user} = { + home-manager.users.${config.user.name} = { # Colors and the lock-screen background come from Stylix's hyprlock target, # so only geometry and behaviour are set here. programs.hyprlock = { @@ -99,7 +76,26 @@ in }; }; }; + }; + registry.keybind.${config.networking.hostName} = { + hyprlock-lock = { + keys = "SUPER + X"; + action = { + kind = "exec"; + # The guard drops the call when a locker is already up, so no manual + # trigger stacks a second hyprlock over the first. + command = "${pkgs.procps}/bin/pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; + }; + }; + + hyprlock-toggle-idle-inhibit = { + keys = "SUPER + CTRL + X"; + action = { + kind = "exec"; + command = "${idleLockToggle}"; + }; + }; }; }; }