From 0e91948b8f7d465da91943832b9576d1aebcc45e Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Wed, 20 May 2026 16:41:50 -0400 Subject: [PATCH] Stop runtime defaults from clobbering OMARCHY_PATH The /etc/profile.d/omarchy.sh default for OMARCHY_PATH was being clobbered by shipped config files that re-export the variable to the old script-mode path. In package mode, every login shell, UWSM session, and Hyprland autostart was effectively reversing the migration. Fix: - default/bashrc: source from $OMARCHY_PATH/default/bash/rc; default OMARCHY_PATH to /usr/share/omarchy if not set (so the source line works in any boot order, including non-login interactive shells). - default/bash/envs: change 'export OMARCHY_PATH=$HOME/...' to 'export OMARCHY_PATH=${OMARCHY_PATH:-/usr/share/omarchy}' so the profile.d default and install.sh script-mode override both win. - config/uwsm/env: same defaulting pattern. UWSM may not source profile.d, so the inline default still matters. - default/hypr/autostart.lua: quickshell launched from $OMARCHY_PATH/shell (not literal $HOME path). The bash that runs hl.exec_cmd sees OMARCHY_PATH propagated from UWSM env. - config/chromium-flags.conf: --load-extension hard-codes /usr/share/omarchy/... because chromium doesn't expand env vars or '~'. The omarchy-dev-link workflow symlinks /usr/share/omarchy to a checkout. - bin/omarchy-install-browser: same chromium-flag path correction for brave-origin-beta-flags.conf. --- bin/omarchy-install-browser | 2 +- config/chromium-flags.conf | 2 +- config/uwsm/env | 8 +++++--- default/bash/envs | 8 +++++--- default/bashrc | 3 ++- default/hypr/autostart.lua | 2 +- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/bin/omarchy-install-browser b/bin/omarchy-install-browser index f5a187df..18a97c6e 100755 --- a/bin/omarchy-install-browser +++ b/bin/omarchy-install-browser @@ -67,7 +67,7 @@ brave-origin) setup_policy_directory /etc/brave/policies/managed mkdir -p ~/.config # FIXME: Use normal chromium flags when Brave Origin wrapper has been fixed - echo "--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url,~/.local/share/omarchy/default/chromium/extensions/yt-dlp" > ~/.config/brave-origin-beta-flags.conf + echo "--load-extension=/usr/share/omarchy/default/chromium/extensions/copy-url,/usr/share/omarchy/default/chromium/extensions/yt-dlp" > ~/.config/brave-origin-beta-flags.conf omarchy-install-chromium-ytdlp omarchy-theme-set-browser announce_browser_installed "Brave Origin" diff --git a/config/chromium-flags.conf b/config/chromium-flags.conf index 78c39070..134fa04e 100644 --- a/config/chromium-flags.conf +++ b/config/chromium-flags.conf @@ -1,4 +1,4 @@ --ozone-platform=wayland --ozone-platform-hint=wayland --enable-features=TouchpadOverscrollHistoryNavigation ---load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url,~/.local/share/omarchy/default/chromium/extensions/yt-dlp +--load-extension=/usr/share/omarchy/default/chromium/extensions/copy-url,/usr/share/omarchy/default/chromium/extensions/yt-dlp diff --git a/config/uwsm/env b/config/uwsm/env index 18ff78cb..de6fed27 100644 --- a/config/uwsm/env +++ b/config/uwsm/env @@ -1,8 +1,10 @@ # Changes require a restart to take effect. -# Ensure Omarchy bins are in the path -export OMARCHY_PATH=$HOME/.local/share/omarchy -export PATH=$OMARCHY_PATH/bin:$PATH:$HOME/.local/bin +# Ensure Omarchy bins are in the path. /etc/profile.d/omarchy.sh defaults +# OMARCHY_PATH to /usr/share/omarchy; honor whatever's already set (so +# install.sh's script-mode override wins). +export OMARCHY_PATH="${OMARCHY_PATH:-/usr/share/omarchy}" +export PATH="$OMARCHY_PATH/bin:$PATH:$HOME/.local/bin" # Set default terminal and editor source ~/.config/uwsm/default diff --git a/default/bash/envs b/default/bash/envs index a8d01dda..efed0bd8 100644 --- a/default/bash/envs +++ b/default/bash/envs @@ -6,6 +6,8 @@ export BAT_THEME=ansi export MANROFFOPT="-c" export MANPAGER="sh -c 'col -bx | bat -l man -p'" -# Duplicated from .config/uwsm/env so SSH works too -export OMARCHY_PATH=$HOME/.local/share/omarchy -export PATH=$OMARCHY_PATH/bin:$PATH:$HOME/.local/bin +# Duplicated from .config/uwsm/env so SSH works too. +# /etc/profile.d/omarchy.sh defaults OMARCHY_PATH to /usr/share/omarchy. +# Honor whatever's already set (so install.sh's script-mode override wins). +export OMARCHY_PATH="${OMARCHY_PATH:-/usr/share/omarchy}" +export PATH="$OMARCHY_PATH/bin:$PATH:$HOME/.local/bin" diff --git a/default/bashrc b/default/bashrc index eaf13c66..a9978dd5 100644 --- a/default/bashrc +++ b/default/bashrc @@ -3,7 +3,8 @@ # All the default Omarchy aliases and functions # (don't mess with these directly, just overwrite them here!) -source ~/.local/share/omarchy/default/bash/rc +: "${OMARCHY_PATH:=/usr/share/omarchy}" +source "$OMARCHY_PATH/default/bash/rc" # Add your own exports, aliases, and functions here. # diff --git a/default/hypr/autostart.lua b/default/hypr/autostart.lua index 60a3c2b3..f098a74a 100644 --- a/default/hypr/autostart.lua +++ b/default/hypr/autostart.lua @@ -3,7 +3,7 @@ hl.on("hyprland.start", function() hl.exec_cmd("systemctl --user import-environment $(env | cut -d'=' -f 1)") hl.exec_cmd("dbus-update-activation-environment --systemd --all") - hl.exec_cmd("quickshell -n -p $HOME/.local/share/omarchy/shell") + hl.exec_cmd("quickshell -n -p $OMARCHY_PATH/shell") hl.exec_cmd(o.launch("fcitx5 --disable notificationitem")) hl.exec_cmd("omarchy-first-run") hl.exec_cmd("omarchy-powerprofiles-init")