Skip to content

Commit

Permalink
gh-85644: webbrowser: Use $XDG_CURRENT_DESKTOP to check desktop (GH-2…
Browse files Browse the repository at this point in the history
…1731)

Usage of $GNOME_DESKTOP_SESSION_ID env variable is deprecated since
GNOME 3.30.0 [1], so should not be used, while the standard
XDG_CURRENT_DESKTOP should be instead preferred.

[1] https://gitlab.gnome.org/GNOME/gnome-session/-/commit/00e0e6226371d53f65
  • Loading branch information
3v1n0 committed Mar 2, 2024
1 parent 5dc8c84 commit 140d9ec
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
12 changes: 9 additions & 3 deletions Lib/webbrowser.py
Expand Up @@ -418,12 +418,18 @@ def register_X_browsers():
if shutil.which("gio"):
register("gio", None, BackgroundBrowser(["gio", "open", "--", "%s"]))

# Equivalent of gio open before 2015
if "GNOME_DESKTOP_SESSION_ID" in os.environ and shutil.which("gvfs-open"):
xdg_desktop = os.getenv("XDG_CURRENT_DESKTOP", "").split(":")

# The default GNOME3 browser
if (("GNOME" in xdg_desktop or
"GNOME_DESKTOP_SESSION_ID" in os.environ) and
shutil.which("gvfs-open")):
register("gvfs-open", None, BackgroundBrowser("gvfs-open"))

# The default KDE browser
if "KDE_FULL_SESSION" in os.environ and shutil.which("kfmclient"):
if (("KDE" in xdg_desktop or
"KDE_FULL_SESSION" in os.environ) and
shutil.which("kfmclient")):
register("kfmclient", Konqueror, Konqueror("kfmclient"))

# Common symbolic link for the default X11 browser
Expand Down
@@ -0,0 +1,2 @@
Use the ``XDG_CURRENT_DESKTOP`` environment variable in :mod:`webbrowser` to check desktop.
Prefer it to the deprecated ``GNOME_DESKTOP_SESSION_ID`` for GNOME detection.

0 comments on commit 140d9ec

Please sign in to comment.