The patch for my suggested behavior actually turns out to be quite trivial. Here's what I came up with:
-- >8 -- Subject: xdg-open: prefer BROWSER to xdg .desktop files Earlier versions of xdg-utils would fall back to calling sensible-browser, without looking for XDG .desktop files. Newer versions do not call sensible-browser, but do look at $BROWSER themselves. However, they do so only after looking for .desktop files, which will generally find at least one useful match. However, this ignores the user's browser preference. Let's try $BROWSER first, and if it is not set, then fall back to the .desktop files. --- scripts/xdg-open.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in index 13d352c..32ee444 100644 --- a/scripts/xdg-open.in +++ b/scripts/xdg-open.in @@ -311,10 +311,6 @@ open_generic() fi fi - if [ -n "$DISPLAY" ]; then - open_generic_xdg_x_scheme_handler "$1" - fi - local oldifs="$IFS" IFS=":" for browser in $BROWSER; do @@ -342,6 +338,10 @@ open_generic() fi done + if [ -n "$DISPLAY" ]; then + open_generic_xdg_x_scheme_handler "$1" + fi + exit_failure_operation_impossible "no method available for opening '$1'" } -- 2.6.0.rc2.440.g7728f87