Accept any XDG_ environment variable to determine desktop (#2037)

This commit is contained in:
Maycon Santos 2024-05-23 12:34:19 +02:00 committed by GitHub
parent 89149dc6f4
commit 67e2185964
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 1 deletions

View File

@ -219,5 +219,15 @@ func openURL(cmd *cobra.Command, verificationURIComplete, userCode string) {
// isLinuxRunningDesktop checks if a Linux OS is running desktop environment
func isLinuxRunningDesktop() bool {
return os.Getenv("DESKTOP_SESSION") != "" || os.Getenv("XDG_CURRENT_DESKTOP") != ""
if os.Getenv("DESKTOP_SESSION") != "" {
return true
}
for _, env := range os.Environ() {
if strings.HasPrefix(env, "XDG_") {
return true
}
}
return false
}

View File

@ -2,6 +2,7 @@ package cmd
import (
"fmt"
"runtime"
"strings"
"testing"
@ -51,3 +52,16 @@ func TestLogin(t *testing.T) {
t.Errorf("expected non empty Private key, got empty")
}
}
func TestIsLinuxRunningDesktop(t *testing.T) {
if runtime.GOOS != "linux" {
t.Skip("skipping test on non-linux platform")
}
t.Setenv("XDG_FOO", "BAR")
isDesktop := isLinuxRunningDesktop()
if !isDesktop {
t.Errorf("expected desktop environment, got false")
}
}