From 552fbb47feeaa17f8d8fb1bd1140cfcc8613d668 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 18:33:38 +0200 Subject: [PATCH] Overhaul the omarchy-menu --- bin/omarchy-menu | 122 +++++++++++++++++++++++++++ bin/omarchy-menu-cmd | 36 -------- default/hypr/bindings/utilities.conf | 4 +- 3 files changed, 124 insertions(+), 38 deletions(-) create mode 100755 bin/omarchy-menu delete mode 100755 bin/omarchy-menu-cmd diff --git a/bin/omarchy-menu b/bin/omarchy-menu new file mode 100755 index 00000000..4c35b3f1 --- /dev/null +++ b/bin/omarchy-menu @@ -0,0 +1,122 @@ +#!/bin/bash + +OMARCHY_BIN_PATH=~/.local/share/omarchy/bin +OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null) + +menu() { + echo -e "$2" | walker --dmenu --theme dmenu_250 -p "$1…" +} + +terminal() { + alacritty --class Omarchy -e $1 +} + +show_learn_menu() { + case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland") in + *Keybindings*) $OMARCHY_BIN_PATH/omarchy-menu-keybindings ;; + *Omarchy*) setsid chromium --new-window --app="https://manuals.omamix.org/2/the-omarchy-manual" & ;; + *Hyprland*) setsid chromium --new-window --app="https://wiki.hypr.land/" & ;; + *) show_menu ;; + esac +} + +show_style_menu() { + case $(menu "Style" "󰸌 Theme\n Font\n Background") in + *Theme*) $OMARCHY_BIN_PATH/omarchy-theme-menu ;; + *Font*) terminal $OMARCHY_BIN_PATH/omarchy-font-menu ;; + *Background*) $OMARCHY_BIN_PATH/omarchy-theme-bg-next ;; + *) show_menu ;; + esac +} + +show_capture_menu() { + case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in + *Screenshot*) show_screenshot_menu ;; + *Screenrecord*) show_screenrecord_menu ;; + *Color*) pkill hyprpicker || hyprpicker -a ;; + *) show_menu ;; + esac +} + +show_screenshot_menu() { + case $(menu "Screenshot" " Region\n Window\n Display") in + *Region*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot ;; + *Window*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot window ;; + *Display*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot output ;; + *) show_capture_menu ;; + esac +} + +show_screenrecord_menu() { + case $(menu "Screenrecord" " Region\n Display") in + *Region*) $OMARCHY_BIN_PATH/omarchy-cmd-screenrecord ;; + *Display*) $OMARCHY_BIN_PATH/omarchy-cmd-screenrecord output ;; + *) show_capture_menu ;; + esac +} + +show_toggle_menu() { + case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar") in + *Screensaver*) $OMARCHY_BIN_PATH/omarchy-launch-screensaver ;; + *Nightlight*) $OMARCHY_BIN_PATH/omarchy-toggle-nightlight ;; + *Idle*) $OMARCHY_BIN_PATH/omarchy-toggle-idle ;; + *Bar*) pkill -SIGUSR1 waybar ;; + *) show_menu ;; + esac +} + +show_setup_menu() { + case $(menu "Setup" " Wifi\n󰂯 Bluetooth\n Audio\n󰈷 Fingerprint\n Fido2") in + *Wifi*) alacritty --class=Impala -e impala ;; + *Bluetooth*) blueberry ;; + *Audio*) alacritty --class=Wiremix -e wiremix ;; + *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; + *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; + *) show_menu ;; + esac +} + +show_install_menu() { + case $(menu "Install" "󰣇 AUR\n Dropbox\n Steam\n Docker DBs") in + *AUR*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; + *Dropbox*) terminal $OMARCHY_BIN_PATH/omarchy-setup-dropbox ;; + *Steam*) terminal $OMARCHY_BIN_PATH/omarchy-setup-steam ;; + *Docker*) terminal $OMARCHY_BIN_PATH/omarchy-setup-docker-dbs ;; + *) show_menu ;; + esac +} + +show_update_menu() { + case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n Timezone") in + *Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;; + *Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;; + *) show_menu ;; + esac +} + +show_system_menu() { + case $(menu "System" " Lock\n󰤄 Suspend\n Relaunch\n󰜉 Restart\n󰐥 Shutdown") in + *Lock*) hyprlock ;; + *Suspend*) systemctl suspend ;; + *Relaunch*) uwsm stop ;; + *Restart*) systemctl reboot ;; + *Shutdown*) systemctl poweroff ;; + *) show_menu ;; + esac +} + +show_menu() { + case $(menu "Do" "󰀻 Apps\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n󰧑 Learning\n System") in + *Apps*) walker -p "Launch…" ;; + *Capture*) show_capture_menu ;; + *Toggle*) show_toggle_menu ;; + *Style*) show_style_menu ;; + *Setup*) show_setup_menu ;; + *Install*) show_install_menu ;; + *Update*) show_update_menu ;; + *Learn*) show_learn_menu ;; + *System*) show_system_menu ;; + esac +} + +show_menu diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd deleted file mode 100755 index cd50ae26..00000000 --- a/bin/omarchy-menu-cmd +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -show_cmd_menu() { - local menu_options="󱄄 Start Screensaver - Show Keybindings - Open Manual - Take Screenshot - Start Screenrecord -󰸌 Choose Theme - Next Background -󰃉 Pick Color -󰔎 Toggle Nightlight -󱫖 Toggle Idle Lock -󰍜 Toggle Top Bar - Update Timezone -󰈷 Setup Fingerprint" - local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250 -p "Trigger Command") - - case "$selection" in - *Screensaver*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; - *Keybindings*) ~/.local/share/omarchy/bin/omarchy-menu-keybindings ;; - *Manual*) setsid chromium --new-window --app="https://manuals.omamix.org/2/the-omarchy-manual" & ;; - *Screenshot*) ~/.local/share/omarchy/bin/omarchy-cmd-screenshot ;; - *Screenrecord*) ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord ;; - *Theme*) ~/.local/share/omarchy/bin/omarchy-theme-menu ;; - *Background*) ~/.local/share/omarchy/bin/omarchy-theme-bg-next ;; - *Color*) pkill hyprpicker || hyprpicker -a ;; - *Nightlight*) ~/.local/share/omarchy/bin/omarchy-toggle-nightlight ;; - *Idle*) ~/.local/share/omarchy/bin/omarchy-toggle-idle ;; - *Bar*) pkill -SIGUSR1 waybar ;; - *Timezone*) ~/.local/share/omarchy/bin/omarchy-cmd-tzupdate ;; - *Fingerprint*) ~/.local/share/omarchy/bin/omarchy-setup-fingerprint ;; - esac -} - -show_cmd_menu diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index 3dbaa5d5..c24611fe 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -1,6 +1,6 @@ # Menus -bindd = SUPER, SPACE, Launch apps, exec, walker -bindd = SUPER ALT, SPACE, Run commands, exec, ~/.local/share/omarchy/bin/omarchy-menu-cmd +bindd = SUPER, SPACE, Launch apps, exec, walker -p "Launch…" +bindd = SUPER ALT, SPACE, Run commands, exec, ~/.local/share/omarchy/bin/omarchy-menu bindd = SUPER, ESCAPE, Power menu, exec, ~/.local/share/omarchy/bin/omarchy-menu-power bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings