Overhaul the omarchy-menu

This commit is contained in:
David Heinemeier Hansson 2025-08-04 18:33:38 +02:00
parent de1330cd9f
commit 552fbb47fe
3 changed files with 124 additions and 38 deletions

122
bin/omarchy-menu Executable file
View File

@ -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

View File

@ -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

View File

@ -1,6 +1,6 @@
# Menus # Menus
bindd = SUPER, SPACE, Launch apps, exec, walker bindd = SUPER, SPACE, Launch apps, exec, walker -p "Launch…"
bindd = SUPER ALT, SPACE, Run commands, exec, ~/.local/share/omarchy/bin/omarchy-menu-cmd 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, 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 bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings