diff --git a/configs/nixos/modules/desktop/session/rofi.nix b/configs/nixos/modules/desktop/session/rofi.nix index 8339db4..c5917df 100644 --- a/configs/nixos/modules/desktop/session/rofi.nix +++ b/configs/nixos/modules/desktop/session/rofi.nix @@ -6,19 +6,17 @@ }: # rofi as the desktop launcher and dmenu-style menu frontend. let - user = config.user.name; - # A session menu built on the same themed rofi, so the power actions look # like every other menu the launcher drives. powerMenu = pkgs.writeShellScript "rofi-power-menu" '' chosen=$(printf '%s\n' Lock Suspend 'Log out' Reboot 'Shut down' \ - | ${pkgs.rofi}/bin/rofi -dmenu -i -p Power) + | ${lib.getExe pkgs.rofi} -dmenu -i -p Power) case "$chosen" in - Lock) ${pkgs.systemd}/bin/loginctl lock-session ;; - Suspend) ${pkgs.systemd}/bin/systemctl suspend ;; - 'Log out') ${pkgs.systemd}/bin/loginctl terminate-session "$XDG_SESSION_ID" ;; - Reboot) ${pkgs.systemd}/bin/systemctl reboot ;; - 'Shut down') ${pkgs.systemd}/bin/systemctl poweroff ;; + Lock) ${lib.getExe' pkgs.systemd "loginctl"} lock-session ;; + Suspend) ${lib.getExe' pkgs.systemd "systemctl"} suspend ;; + 'Log out') ${lib.getExe' pkgs.systemd "loginctl"} terminate-session "$XDG_SESSION_ID" ;; + Reboot) ${lib.getExe' pkgs.systemd "systemctl"} reboot ;; + 'Shut down') ${lib.getExe' pkgs.systemd "systemctl"} poweroff ;; esac ''; in @@ -26,25 +24,7 @@ in options.modules.desktop.session.rofi.enable = lib.mkEnableOption "the rofi launcher"; config = lib.mkIf config.modules.desktop.session.rofi.enable { - registry.keybind.${config.networking.hostName} = { - rofi-launcher = { - keys = "SUPER + R"; - action = { - kind = "exec"; - command = "${pkgs.rofi}/bin/rofi -show drun"; - }; - }; - - rofi-power-menu = { - keys = "SUPER + SHIFT + X"; - action = { - kind = "exec"; - command = "${powerMenu}"; - }; - }; - }; - - home-manager.users.${user} = { + home-manager.users.${config.user.name} = { # No theme is set here: Stylix's rofi target supplies the Nord one. programs.rofi = { enable = true; @@ -57,7 +37,24 @@ in show-icons = false; }; }; + }; + registry.keybind.${config.networking.hostName} = { + rofi-launcher = { + keys = "SUPER + R"; + action = { + kind = "exec"; + command = "${lib.getExe pkgs.rofi} -show drun"; + }; + }; + + rofi-power-menu = { + keys = "SUPER + SHIFT + X"; + action = { + kind = "exec"; + command = "${powerMenu}"; + }; + }; }; }; }