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

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

From
Marco Trevisan (Treviño) via GitGitGadget <gitgitgadget@gmail.com>
Date
Aug 6, 2020, 15:27 UTC
Message-ID
<26b25b0d652e3a5b834eb004151f4a322c450403.1596727673.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.693.v2.git.1596727673.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 primarily check the XDG_CURRENT_DESKTOP env variable, that is now 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 check if the value is set if 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 | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 204a5acd66..f9d8f309c8 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -266,6 +266,17 @@ run_merge_cmd () {
 	fi
 }
 
+is_desktop () {
+	case ":$XDG_CURRENT_DESKTOP:" in
+	*:$1:*)
+		return 0
+		;;
+	*)
+		return 1
+		;;
+	esac
+}
+
 list_merge_tool_candidates () {
 	if merge_mode
 	then
@@ -275,7 +286,7 @@ list_merge_tool_candidates () {
 	fi
 	if test -n "$DISPLAY"
 	then
-		if test -n "$GNOME_DESKTOP_SESSION_ID"
+		if is_desktop "GNOME" || test -n "$GNOME_DESKTOP_SESSION_ID"
 		then
 			tools="meld opendiff kdiff3 tkdiff xxdiff $tools"
 		else
-- 
gitgitgadget
Previous: Marco Trevisan via GitGitGadgetNext: Marco Trevisan (Treviño) via GitGitGadget
Message 16 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.