Existe-t-il un moyen (tel qu'une commande ou une variable d'environnement) de déterminer ce que l'on doit faire ? gestionnaire de fenêtres est celui qui est en cours d'exécution dans la session actuelle ?
Réponses
Trop de publicités?Script
Le script suivant est la meilleure réponse à une question similaire. question que j'ai postée sur unix.se . Il fonctionne également très bien avec Unity et LXDE.
if [ "$XDG_CURRENT_DESKTOP" = '' ]
then
desktop=$(echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/')
else
desktop=$XDG_CURRENT_DESKTOP
fi
desktop=${desktop,,} # convert to lower case
echo "$desktop"
Ceci est en quelque sorte possible avec dbus et le service de comptes (tous deux par défaut dans Ubuntu).
$ qdbus --system org.freedesktop.Accounts \
> /org/freedesktop/Accounts/User1000 \
> org.freedesktop.Accounts.User.XSession
ubuntu
Il est intéressant de noter que j'ai testé cela en me connectant via lightdm (qui est l'écran de connexion graphique), il a détecté un bureau classique comme blackbox, et détecte évidemment Unity. Je soupçonne que c'est une valeur de ce que l'utilisateur sélectionne sur l'écran de connexion comme session, c'est pourquoi il est un peu plus facile d'utiliser cette vérification pour les processus.
Cette question a 9 ans, mais elle est toujours d'actualité. Sur mon Ubuntu 20.04.2 LTS, j'obtiens :
wmctrl -m : GNOME Shell
inxi -Sxx : Desktop = Gnome 3.36.4 ; wm = gnome-Shell ; dm = GDM3 3.36.3
gnome-Shell -- version : 3.36.4
env. :GDM_SESSION : ubuntu ; DESKTOP_SESSION : ubuntu ; XDG_CURRENT_DESKTOP : ubuntu:GNOME
MAIS
xprop... (de ruario ) : _NET_WM_NAME : GNOME Shell ; _GNOME_WM_KEYBINDINGS : Mutter, GNOME Shell ; _MUTTER_VERSION : 3.36.7
et neofetch : de = GNONE ; wm = Mutter
J'en déduis (mais sans en être très sûr) : GNOME est le gestionnaire de bureau et GNOME Shell le gestionnaire de fenêtre (Mutter doit être une trace de mes précédentes versions LTS 16.04 et 18.04).
- Réponses précédentes
- Plus de réponses