Unset BROWSER for xdg-settings reads and don't abort removal on fallback failure

xdg-settings get also consults $BROWSER, so unset it for the getters too.
A failed best-effort fallback default should not abort the browser removal.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
David Heinemeier Hansson
2026-07-24 09:01:17 -07:00
co-authored by Claude Fable 5
parent e5924ef7d1
commit e61ff1ef4f
3 changed files with 5 additions and 5 deletions
+2 -2
View File
@@ -5,7 +5,7 @@
# omarchy:examples=omarchy default browser firefox | omarchy default browser brave
if (($# == 0)); then
case "$(xdg-settings get default-web-browser)" in
case "$(env -u BROWSER xdg-settings get default-web-browser)" in
chromium.desktop) echo "chromium" ;;
google-chrome.desktop) echo "chrome" ;;
brave-browser.desktop) echo "brave" ;;
@@ -13,7 +13,7 @@ if (($# == 0)); then
microsoft-edge.desktop) echo "edge" ;;
firefox.desktop) echo "firefox" ;;
zen.desktop) echo "zen" ;;
*) xdg-settings get default-web-browser ;;
*) env -u BROWSER xdg-settings get default-web-browser ;;
esac
exit 0
fi
+1 -1
View File
@@ -3,7 +3,7 @@
# omarchy:summary=Launch the default browser as determined by xdg-settings.
# omarchy:args=[url]
default_browser=$(xdg-settings get default-web-browser)
default_browser=$(env -u BROWSER xdg-settings get default-web-browser)
browser_exec=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$default_browser 2>/dev/null | head -1)
if $browser_exec --help 2>/dev/null | grep -q MOZ_LOG; then
+2 -2
View File
@@ -7,14 +7,14 @@
set_fallback_default_browser() {
local current_browser
current_browser=$(xdg-settings get default-web-browser)
current_browser=$(env -u BROWSER xdg-settings get default-web-browser)
if [[ $current_browser != $1 ]]; then
return
fi
if omarchy-cmd-present chromium; then
env -u BROWSER xdg-settings set default-web-browser chromium.desktop || exit 1
env -u BROWSER xdg-settings set default-web-browser chromium.desktop || true
fi
}