#!/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 } present_terminal() { alacritty --class Omarchy -e bash -c "~/.local/share/omarchy/bin/omarchy-show-logo; eval \"$1\"; ~/.local/share/omarchy/bin/omarchy-show-done;" } show_learn_menu() { case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\n󱆃 Bash") 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/" & ;; *Arch*) setsid chromium --new-window --app="https://wiki.archlinux.org/title/Main_page" & ;; *Bash*) setsid chromium --new-window --app="https://devhints.io/bash" & ;; *) show_main_menu ;; esac } show_style_menu() { case $(menu "Style" "󰸌 Theme\n Font\n Background") in *Theme*) show_theme_menu ;; *Font*) terminal $OMARCHY_BIN_PATH/omarchy-font-menu ;; *Background*) $OMARCHY_BIN_PATH/omarchy-theme-bg-next ;; *) show_main_menu ;; esac } show_theme_menu() { $OMARCHY_BIN_PATH/omarchy-theme-set "$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)")" show_main_menu } 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_main_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_main_menu ;; esac } show_setup_menu() { case $(menu "Setup" " Audio\n Wifi\n󰂯 Bluetooth\n󰈷 Fingerprint\n Fido2") in *Audio*) alacritty --class=Wiremix -e wiremix ;; *Wifi*) alacritty --class=Impala -e impala ;; *Bluetooth*) blueberry ;; *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; *) show_main_menu ;; esac } show_install_menu() { case $(menu "Install" "󰣇 Package\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; *Theme*) terminal $OMARCHY_BIN_PATH/omarchy-theme-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_main_menu ;; esac } show_remove_menu() { case $(menu "Remove" "󰣇 Package\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-uninstall ;; *Theme*) present_terminal $OMARCHY_BIN_PATH/omarchy-theme-remove ;; *Fingerprint*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fingerprint --remove" ;; *Fido2*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fido2 --remove" ;; *) show_main_menu ;; esac } show_update_menu() { case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n Configs\n󰸌 Themes\n Timezone") in *Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;; *Configs*) show_update_configs_menu ;; *Themes*) terminal $OMARCHY_BIN_PATH/omarchy-theme-update ;; *Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;; *) show_main_menu ;; esac } show_update_configs_menu() { case $(menu "Use default config" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n󱣴 Plymouth\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in *Hyprland*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprland ;; *Hypridle*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hypridle ;; *Hyprlock*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprlock ;; *Hyprsunset*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprsunset ;; *Plymouth*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-plymouth ;; *Swayosd*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-swayosd ;; *Walker*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-walker ;; *Waybar*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-waybar ;; *) show_main_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_main_menu ;; esac } show_main_menu() { case $(menu "Start" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n System") in *Apps*) walker -p "Launch…" ;; *Learn*) show_learn_menu ;; *Capture*) show_capture_menu ;; *Toggle*) show_toggle_menu ;; *Style*) show_style_menu ;; *Setup*) show_setup_menu ;; *Install*) show_install_menu ;; *Remove*) show_remove_menu ;; *Update*) show_update_menu ;; *System*) show_system_menu ;; esac } case "$1" in *learn*) show_learn_menu ;; *style*) show_style_menu ;; *theme*) show_theme_menu ;; *capture*) show_capture_menu ;; *screenshot*) show_screenshot_menu ;; *screenrecord*) show_screenrecord_menu ;; *toggle*) show_toggle_menu ;; *setup*) show_setup_menu ;; *install*) show_install_menu ;; *remove*) show_remove_menu ;; *update*) show_update_menu ;; *system*) show_system_menu ;; *) show_main_menu ;; esac