238 votes

Comment déterminer quel gestionnaire de fenêtres est en cours d'exécution

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 ?

0voto

Serge Stroobandt Points 3924

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"

0voto

Sergiy Kolodyazhnyy Points 97292

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.

0voto

Francis Gernet Points 11

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).

0voto

Timo Points 219

Environnement de bureau lxqt (par exemple, Lubuntu >= 18.10)

Une voie est ouverte ~/.config/lxqt/session.conf et trouver

[General]
__userfile__=true
window_manager=openbox // <==

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X