commit 978f6a2702a6d31e531fef1797757ebde9d1f457
parent 7d7f17101cb2398c7c77669c7ec957c3aadb7ce0
Author: Peter <peter@minskio.co.uk>
Date: Tue, 29 Sep 2026 21:30:30 +0100
Include power menu script
Diffstat:
5 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/home/hyprland.nix b/home/hyprland.nix
@@ -65,6 +65,7 @@ in
hl.bind("SUPER + E", hl.dsp.exec_cmd("alacritty -e lf"))
hl.bind("Print", hl.dsp.exec_cmd('${pkgs.grim}/bin/grim ~/screenshot_$(date +"%Y-%m-%d_%H-%M-%S").png'))
hl.bind("SHIFT + Print", hl.dsp.exec_cmd('${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" ~/screenshot_$(date +"%Y-%m-%d_%H-%M-%S").png'))
+ hl.bind("SUPER + L", hl.dsp.exec_cmd("power-menu"))
-- WM controls
hl.bind("SUPER + Space", hl.dsp.window.float({ action = "toggle" }))
hl.bind("SUPER + F", hl.dsp.window.fullscreen())
diff --git a/home/wayle.nix b/home/wayle.nix
@@ -36,6 +36,7 @@ in
hyprland-workspaces = { active-indicator = "underline"; };
media = { icon-type = "default"; label-max-length = "15"; right-click = "alacritty -e spotify_player"; };
notifications = { popup-position = "bottom-right"; };
+ power = { left-click = "power-menu"; };
ram = { left-click = "alacritty -e htop"; };
volume = { right-click = "pavucontrol"; };
weather = { location = "Huddersfield"; };
diff --git a/machines/atlas.nix b/machines/atlas.nix
@@ -33,6 +33,7 @@
../scripts/duupmove.nix
../scripts/hyprland-alt-toggle.nix
../scripts/notes.nix
+ ../scripts/power-menu.nix
../scripts/restic.nix
../scripts/scan-to-pdf.nix
../scripts/seedy.nix
diff --git a/machines/minerva.nix b/machines/minerva.nix
@@ -30,6 +30,7 @@
../scripts/ctimerename.nix
../scripts/duupmove.nix
../scripts/notes.nix
+ ../scripts/power-menu.nix
../scripts/restic.nix
../scripts/vidyaplace-tears.nix
../scripts/vidyaplace.nix
diff --git a/scripts/power-menu.nix b/scripts/power-menu.nix
@@ -0,0 +1,43 @@
+{ pkgs, ... }:
+
+let
+ power-menu = pkgs.writeShellScriptBin "power-menu" ''
+ choice=$(
+ printf '%s\n' \
+ 'Shut down' \
+ 'Reboot' \
+ 'Reboot to EFI' \
+ 'Exit Hyprland' \
+ 'Turn off screen' |
+ ${pkgs.tofi}/bin/tofi --prompt-text 'Power: '
+ )
+
+ case "$choice" in
+ 'Shut down')
+ systemctl poweroff
+ ;;
+
+ 'Reboot')
+ systemctl reboot
+ ;;
+
+ 'Reboot to EFI')
+ systemctl reboot --firmware-setup
+ ;;
+
+ 'Exit Hyprland')
+ hyprctl dispatch 'hl.dsp.exit()'
+ ;;
+
+ 'Turn off screen')
+ hyprctl eval 'hl.config({ misc = { mouse_move_enables_dpms = true, key_press_enables_dpms = true } })'
+ sleep 0.5
+ hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })'
+ ;;
+ esac
+
+ '';
+in
+ {
+ environment.systemPackages = [ power-menu ];
+ }