diff --git a/rofi/config.rasi b/rofi/config.rasi
index 2f12fbe..acc0c20 100644
--- a/rofi/config.rasi
+++ b/rofi/config.rasi
@@ -4,7 +4,7 @@ configuration {
scroll-method: 1;
show-icons: true;
sidebar-mode: true;
- modi: "drun,internet:~/.config/rofi/rofi-filter internet,dev:~/.config/rofi/rofi-filter dev,games:~/.config/rofi/rofi-filter games,system:~/.config/rofi/rofi-filter system,media:~/.config/rofi/rofi-filter media,notifications:~/.config/rofi/rofi-filter notifications,clipboard:~/.config/rofi/rofi-filter clipboard";
+ modi: "drun,internet:~/.config/rofi/rofi-filter internet,dev:~/.config/rofi/rofi-filter dev,games:~/.config/rofi/rofi-filter games,system:~/.config/rofi/rofi-filter system,media:~/.config/rofi/rofi-filter media,notifications:~/.config/rofi/rofi-filter notifications,clipboard:~/.config/rofi/rofi-filter clipboard,powermenu:~/.config/rofi/rofi-filter powermenu";
display-drun: "ALL";
display-internet: "NET";
display-dev: "DEV";
@@ -13,6 +13,7 @@ configuration {
display-media: "MED";
display-notifications: "NTF";
display-clipboard: "CLP";
+ display-powermenu: "PWR";
kb-remove-to-eol: "";
kb-mode-complete: "";
kb-remove-char-back: "BackSpace,Shift+BackSpace";
diff --git a/rofi/rofi-filter b/rofi/rofi-filter
index 5d13d6c..42797e6 100755
--- a/rofi/rofi-filter
+++ b/rofi/rofi-filter
@@ -12,6 +12,14 @@ if [[ -n "$selection" ]]; then
elif [[ "$mode" == "notifications" ]]; then
body="${selection#*— }"
printf '%s' "$body" | wl-copy
+ elif [[ "$mode" == "powermenu" ]]; then
+ case "$selection" in
+ "lock") swaylock ;;
+ "suspend") systemctl suspend ;;
+ "reboot") systemctl reboot ;;
+ "shutdown") systemctl poweroff ;;
+ "logout") loginctl terminate-session "${XDG_SESSION_ID-}" ;;
+ esac
else
target_app=$(grep -rl "^Name=${selection}\$" /usr/share/applications/*.desktop 2>/dev/null | head -n1)
if [[ -n "$target_app" ]]; then
@@ -72,4 +80,12 @@ case "$mode" in
}
' /usr/share/applications/*.desktop 2>/dev/null
;;
+ powermenu)
+ echo -e "\0markup-rows\x1ftrue"
+ printf '%s\n' " lock"
+ printf '%s\n' " suspend"
+ printf '%s\n' " reboot"
+ printf '%s\n' "⏻ shutdown"
+ printf '%s\n' " logout"
+ ;;
esac