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