git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/3] mergetool-lib: use $XDG_CURRENT_DESKTOP to check GNOME

From
Marco Trevisan (Treviño) via GitGitGadget <gitgitgadget@gmail.com>
Date
Aug 5, 2020, 13:34 UTC
Message-ID
<66a026ae678341fe7e93a89e22f76e24282cebaa.1596634463.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.693.git.1596634463.gitgitgadget@gmail.com>
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>

To list merge tool candidates we used to use a private GNOME env variable (GNOME_DESKTOP_SESSION_ID) that has been deprecated for long time ago and removed as part of GNOME 3.30.0 release [1].

So, git should instead check the XDG_CURRENT_DESKTOP env variable, that is supported by all the desktop environments.

Since the variable is actually a colon-separated list of names that the current desktop is known as, we need to go through all the values to ensure we're using GNOME.

[1] https://gitlab.gnome.org/GNOME/gnome-session/-/commit/00e0e6226371d53f65
Signed-off-by: Marco Trevisan (Treviño) <mail@3v1n0.net>
---
 git-mergetool--lib.sh | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 204a5acd66..be28fe375f 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -266,6 +266,19 @@ run_merge_cmd () {
 	fi
 }
 
+is_desktop () {
+	IFS=':'
+	for desktop in ${XDG_CURRENT_DESKTOP}
+	do
+		if test "$desktop" = "$1"
+		then
+			return 0
+		fi
+	done
+
+	return 1
+}
+
 list_merge_tool_candidates () {
 	if merge_mode
 	then
@@ -275,7 +288,7 @@ list_merge_tool_candidates () {
 	fi
 	if test -n "$DISPLAY"
 	then
-		if test -n "$GNOME_DESKTOP_SESSION_ID"
+		if is_desktop "GNOME"
 		then
 			tools="meld opendiff kdiff3 tkdiff xxdiff $tools"
 		else
-- 
gitgitgadget
Previous: Marco Trevisan via GitGitGadgetNext: Eric Sunshine
Message 2 of 17 in “mergetool-lib: Don't use deprecated variable to detect GNOME”
  1. 0/3 mergetool-lib: Don't use deprecated variable to detect GNOMEMarco Trevisan via GitGitGadget, Aug 5, 2020
  2. 1/3 mergetool-lib: use $XDG_CURRENT_DESKTOP to check GNOMEMarco Trevisan (Treviño) via GitGitGadget, Aug 5, 2020
  3. Eric SunshineAug 5, 2020
  4. Junio C HamanoAug 5, 2020
  5. Marco Trevisan (Treviño)Aug 6, 2020
  6. 2/3 mergetool-lib: keep a list of cross desktop merge toolsMarco Trevisan (Treviño) via GitGitGadget, Aug 5, 2020
  7. Eric SunshineAug 5, 2020
  8. Johannes SixtAug 6, 2020
  9. Marco Trevisan (Treviño)Aug 6, 2020
  10. Marco Trevisan (Treviño)Aug 6, 2020
  11. 3/3 mergetool-lib: give kdiff3 prioirty in KDE environmentsMarco Trevisan (Treviño) via GitGitGadget, Aug 5, 2020
  12. Eric SunshineAug 5, 2020
  13. Marco Trevisan (Treviño)Aug 6, 2020
  14. Eric SunshineAug 6, 2020
  15. 0/2 mergetool-lib: Don't use deprecated variable to detect GNOMEMarco Trevisan via GitGitGadget, Aug 6, 2020
  16. 1/2 mergetool-lib: use $XDG_CURRENT_DESKTOP to check GNOMEMarco Trevisan (Treviño) via GitGitGadget, Aug 6, 2020
  17. 2/2 mergetool-lib: give kdiff3 priority in KDE environmentsMarco Trevisan (Treviño) via GitGitGadget, Aug 6, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.