Add ~/.local/share/omarchy/bin to systemwide PATH (#602)

* Add omarchy to system path

* Remove unnecessary duplicate

* Remove path def since it's global now

* Migration for system-wide path

* Remove debug code

* Refresh after update

* Add common state script

* Restart on state detected

* Set state instead

* Export own path for menu
This commit is contained in:
Ryan Hughes 2025-08-10 19:58:44 +02:00 committed by GitHub
parent 94aa9b688f
commit b2eb1b08a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 98 additions and 59 deletions

View File

@ -1,6 +1,6 @@
#!/bin/bash
OMARCHY_BIN_PATH=~/.local/share/omarchy/bin
export PATH="$HOME/.local/share/omarchy/bin:$PATH"
menu() {
local prompt="$1"
@ -52,7 +52,7 @@ install_font() {
show_learn_menu() {
case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\n Neovim\n󱆃 Bash") in
*Keybindings*) $OMARCHY_BIN_PATH/omarchy-menu-keybindings ;;
*Keybindings*) omarchy-menu-keybindings ;;
*Omarchy*) open_web "https://manuals.omamix.org/2/the-omarchy-manual" ;;
*Hyprland*) open_web "https://wiki.hypr.land/" ;;
*Arch*) open_web "https://wiki.archlinux.org/title/Main_page" ;;
@ -66,26 +66,26 @@ show_style_menu() {
case $(menu "Style" "󰸌 Theme\n Font\n Background") in
*Theme*) show_theme_menu ;;
*Font*) show_font_menu ;;
*Background*) $OMARCHY_BIN_PATH/omarchy-theme-bg-next ;;
*Background*) omarchy-theme-bg-next ;;
*) show_main_menu ;;
esac
}
show_theme_menu() {
theme=$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)" "" "$($OMARCHY_BIN_PATH/omarchy-theme-current)")
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
show_main_menu
else
$OMARCHY_BIN_PATH/omarchy-theme-set "$theme"
omarchy-theme-set "$theme"
fi
}
show_font_menu() {
theme=$(menu "Font" "$($OMARCHY_BIN_PATH/omarchy-font-list)" "-w 350" "$($OMARCHY_BIN_PATH/omarchy-font-current)")
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
show_main_menu
else
$OMARCHY_BIN_PATH/omarchy-font-set "$theme"
omarchy-font-set "$theme"
fi
}
@ -100,26 +100,26 @@ show_capture_menu() {
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 ;;
*Region*) omarchy-cmd-screenshot ;;
*Window*) omarchy-cmd-screenshot window ;;
*Display*) 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 ;;
*Region*) omarchy-cmd-screenrecord ;;
*Display*) 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 ;;
*Screensaver*) omarchy-launch-screensaver ;;
*Nightlight*) omarchy-toggle-nightlight ;;
*Idle*) omarchy-toggle-idle ;;
*Bar*) pkill -SIGUSR1 waybar ;;
*) show_main_menu ;;
esac
@ -140,14 +140,14 @@ show_setup_menu() {
*Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;;
*Input*) edit_in_nvim ~/.config/hypr/input.conf ;;
*Config*) show_setup_config_menu ;;
*Fingerprint*) present_terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;;
*Fido2*) present_terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;;
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
*Fido2*) present_terminal omarchy-setup-fido2 ;;
*) show_main_menu ;;
esac
}
show_setup_power_menu() {
profile=$(menu "Power Profile" "$($OMARCHY_BIN_PATH/omarchy-powerprofiles-list)" "" "$(powerprofilesctl get)")
profile=$(menu "Power Profile" "$(omarchy-powerprofiles-list)" "" "$(powerprofilesctl get)")
if [[ "$profile" == "CNCLD" || -z "$profile" ]]; then
show_main_menu
@ -172,8 +172,8 @@ show_setup_config_menu() {
show_install_menu() {
case $(menu "Install" "󰣇 Package\n Web App\n Service\n Style\n󰵮 Development\n Editor\n󱚤 AI") in
*Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-install ;;
*Web*) present_terminal $OMARCHY_BIN_PATH/omarchy-webapp-install ;;
*Package*) terminal omarchy-pkg-install ;;
*Web*) present_terminal omarchy-webapp-install ;;
*Service*) show_install_service_menu ;;
*Style*) show_install_style_menu ;;
*Development*) show_install_development_menu ;;
@ -185,9 +185,9 @@ show_install_menu() {
show_install_service_menu() {
case $(menu "Install" " Dropbox\n Steam\n Tailscale") in
*Dropbox*) present_terminal $OMARCHY_BIN_PATH/omarchy-install-dropbox ;;
*Steam*) present_terminal $OMARCHY_BIN_PATH/omarchy-install-steam ;;
*Tailscale*) present_terminal $OMARCHY_BIN_PATH/omarchy-install-tailscale ;;
*Dropbox*) present_terminal omarchy-install-dropbox ;;
*Steam*) present_terminal omarchy-install-steam ;;
*Tailscale*) present_terminal omarchy-install-tailscale ;;
*) show_install_menu ;;
esac
}
@ -217,7 +217,7 @@ show_install_ai_menu() {
show_install_style_menu() {
case $(menu "Install" "󰸌 Theme\n Background\n Font") in
*Theme*) present_terminal $OMARCHY_BIN_PATH/omarchy-theme-install ;;
*Theme*) present_terminal omarchy-theme-install ;;
*Background*) nautilus ~/.config/omarchy/current/theme/backgrounds ;;
*Font*) show_install_font_menu ;;
*) show_install_menu ;;
@ -236,71 +236,71 @@ show_install_font_menu() {
show_install_development_menu() {
case $(menu "Install" "󰫏 Ruby on Rails\n Docker DB\n Node.js\n Bun\n Go\n Laravel\n Python\n Elixir\n Rust\n Java\n Ocaml") in
*Rails*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env ruby" ;;
*Docker*) present_terminal $OMARCHY_BIN_PATH/omarchy-install-docker-dbs ;;
*Node*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env node" ;;
*Bun*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env bun" ;;
*Go*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env go" ;;
*Laravel*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env laravel" ;;
*Python*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env python" ;;
*Elixir*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env elixir" ;;
*Rust*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env rust" ;;
*Java*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env java" ;;
*Ocaml*) present_terminal "$OMARCHY_BIN_PATH/omarchy-install-dev-env ocaml" ;;
*Rails*) present_terminal "omarchy-install-dev-env ruby" ;;
*Docker*) present_terminal omarchy-install-docker-dbs ;;
*Node*) present_terminal "omarchy-install-dev-env node" ;;
*Bun*) present_terminal "omarchy-install-dev-env bun" ;;
*Go*) present_terminal "omarchy-install-dev-env go" ;;
*Laravel*) present_terminal "omarchy-install-dev-env laravel" ;;
*Python*) present_terminal "omarchy-install-dev-env python" ;;
*Elixir*) present_terminal "omarchy-install-dev-env elixir" ;;
*Rust*) present_terminal "omarchy-install-dev-env rust" ;;
*Java*) present_terminal "omarchy-install-dev-env java" ;;
*Ocaml*) present_terminal "omarchy-install-dev-env ocaml" ;;
*) show_install_menu ;;
esac
}
show_remove_menu() {
case $(menu "Remove" "󰣇 Package\n Web App\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in
*Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-remove ;;
*Web*) present_terminal $OMARCHY_BIN_PATH/omarchy-webapp-remove ;;
*Theme*) present_terminal $OMARCHY_BIN_PATH/omarchy-theme-remove ;;
*Fingerprint*) present_terminal "$OMARCHY_BIN_PATH/omarchy-setup-fingerprint --remove" ;;
*Fido2*) present_terminal "$OMARCHY_BIN_PATH/omarchy-setup-fido2 --remove" ;;
*Package*) terminal omarchy-pkg-remove ;;
*Web*) present_terminal omarchy-webapp-remove ;;
*Theme*) present_terminal omarchy-theme-remove ;;
*Fingerprint*) present_terminal "omarchy-setup-fingerprint --remove" ;;
*Fido2*) present_terminal "omarchy-setup-fido2 --remove" ;;
*) show_main_menu ;;
esac
}
show_update_menu() {
case $(menu "Update" "󰣇 Omarchy\n Config\n Process\n󰸌 Themes\n Timezone") in
*Omarchy*) present_terminal $OMARCHY_BIN_PATH/omarchy-update ;;
*Omarchy*) present_terminal omarchy-update ;;
*Config*) show_update_config_menu ;;
*Process*) show_update_process_menu ;;
*Themes*) present_terminal $OMARCHY_BIN_PATH/omarchy-theme-update ;;
*Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;;
*Themes*) present_terminal omarchy-theme-update ;;
*Timezone*) omarchy-cmd-tzupdate ;;
*) show_main_menu ;;
esac
}
show_update_process_menu() {
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in
*Hypridle*) $OMARCHY_BIN_PATH/omarchy-restart-hypridle ;;
*Hyprsunset*) $OMARCHY_BIN_PATH/omarchy-restart-hyprsunset ;;
*Swayosd*) $OMARCHY_BIN_PATH/omarchy-restart-swayosd ;;
*Walker*) $OMARCHY_BIN_PATH/omarchy-restart-walker ;;
*Waybar*) $OMARCHY_BIN_PATH/omarchy-restart-waybar ;;
*Hypridle*) omarchy-restart-hypridle ;;
*Hyprsunset*) omarchy-restart-hyprsunset ;;
*Swayosd*) omarchy-restart-swayosd ;;
*Walker*) omarchy-restart-walker ;;
*Waybar*) omarchy-restart-waybar ;;
*) show_main_menu ;;
esac
}
show_update_config_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 ;;
*Hyprland*) present_terminal omarchy-refresh-hyprland ;;
*Hypridle*) present_terminal omarchy-refresh-hypridle ;;
*Hyprlock*) present_terminal omarchy-refresh-hyprlock ;;
*Hyprsunset*) present_terminal omarchy-refresh-hyprsunset ;;
*Plymouth*) present_terminal omarchy-refresh-plymouth ;;
*Swayosd*) present_terminal omarchy-refresh-swayosd ;;
*Walker*) present_terminal omarchy-refresh-walker ;;
*Waybar*) present_terminal omarchy-refresh-waybar ;;
*) show_main_menu ;;
esac
}
show_system_menu() {
case $(menu "System" " Lock\n󰤄 Suspend\n Relaunch\n󰜉 Restart\n󰐥 Shutdown") in
*Lock*) $OMARCHY_BIN_PATH/omarchy-lock-screen ;;
*Lock*) omarchy-lock-screen ;;
*Suspend*) systemctl suspend ;;
*Relaunch*) uwsm stop ;;
*Restart*) systemctl reboot ;;

29
bin/omarchy-state Executable file
View File

@ -0,0 +1,29 @@
#!/bin/bash
STATE_DIR="$HOME/.local/state/omarchy"
mkdir -p "$STATE_DIR"
COMMAND="$1"
STATE_NAME="$2"
case "$COMMAND" in
set)
if [[ -z "$STATE_NAME" ]]; then
echo "Usage: omarchy-state set <state-name>" >&2
exit 1
fi
touch "$STATE_DIR/$STATE_NAME"
;;
clear)
if [[ -z "$STATE_NAME" ]]; then
echo "Usage: omarchy-state clear <state-name-or-pattern>" >&2
exit 1
fi
# Use find with -maxdepth 1 to match files in STATE_DIR
find "$STATE_DIR" -maxdepth 1 -type f -name "$STATE_NAME" -delete
;;
*)
echo "Usage: omarchy-state <set|clear> <state-name-or-pattern>" >&2
exit 1
;;
esac

View File

@ -18,5 +18,9 @@ yay -Syu --noconfirm
# Offer to reboot if the kernel has been changed
if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $2}')" ]; then
gum confirm "Linux kernel has been updated. Reboot?" && sudo reboot now
gum confirm "Linux kernel has been updated. Reboot?" && omarchy-state clear re*-required && sudo reboot now
elif [ -f "$HOME/.local/state/omarchy/restart-required" ]; then
gum confirm "Some updates require a system restart to take effect. Would you like to restart now?" && omarchy-state clear re*-required && uwsm stop
elif [ -f "$HOME/.local/state/omarchy/relaunch-required" ]; then
gum confirm "Some updates require Hyprland to be relaunched to take effect. Would you like to relaunch Hyprland now?" && omarchy-state clear relaunch-required && uwsm stop
fi

1
config/uwsm/env Normal file
View File

@ -0,0 +1 @@
export PATH=$HOME/.local/share/omarchy/bin/:$PATH

View File

@ -10,7 +10,7 @@ if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_comple
fi
# Set complete path
export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omarchy/bin:$PATH"
export PATH="./bin:$HOME/.local/bin:$PATH"
set +h
# Omarchy path

5
migrations/1754680295.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Add UWSM env"
mkdir -p "$HOME/.config/uwsm/"
omarchy-refresh-config uwsm/env
omarchy-state set relaunch-required