diff --git a/hyprland.lua b/hyprland.lua index 003e19a..6522fad 100644 --- a/hyprland.lua +++ b/hyprland.lua @@ -183,6 +183,7 @@ bind("SUPER + Q", dsp.exec_cmd("hyprctl reload && killall -SIGUSR2 waybar && not -- BUG FIX: SUPER + SHIFT + Q was bound to both tmux kill and uwsm stop. -- bind("SUPER + SHIFT + Q", dsp.exec_cmd("tmux kill-server")) bind("SUPER + SHIFT + Q", dsp.exec_cmd("killall -q signal-desktop; uwsm stop")) +bind("CTRL + ALT + Delete", dsp.exec_cmd("bash ~/.config/hypr/scripts/sysmenu.sh")) bind("SUPER + L", dsp.exec_cmd("hyprlock")) bind("switch:Lid Switch", dsp.exec_cmd("hyprlock")) diff --git a/scripts/sysmenu.sh b/scripts/sysmenu.sh new file mode 100644 index 0000000..cd2f713 --- /dev/null +++ b/scripts/sysmenu.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +# Options for the menu +lock="Lock" +logout="Sign-Out" +reboot="Reboot" +poweroff="Power Off" + +options="$lock\n$logout\n$reboot\n$poweroff" + +# Fullscreen rofi menu with large centered text mimicking Windows 11 +chosen=$(echo -e "$options" | rofi -dmenu -i -p "CTRL-ALT-DEL" \ + -theme-str 'window { fullscreen: true; background-color: #000000cc; }' \ + -theme-str 'mainbox { children: [listview]; padding: 25% 35%; }' \ + -theme-str 'listview { columns: 1; lines: 4; spacing: 15px; scrollbar: false; }' \ + -theme-str 'element { padding: 15px; border-radius: 10px; }' \ + -theme-str 'element-text { horizontal-align: 0.5; vertical-align: 0.5; font: "sans-serif 20"; }' \ + -theme-str 'element selected { background-color: #3366ff; text-color: white; }') + +case $chosen in + $lock) + loginctl lock-session + ;; + $logout) + hyprctl dispatch exit + ;; + $reboot) + zsh -c 'source ~/.zsh_functions && reboot' + ;; + $poweroff) + systemctl poweroff + ;; +esac