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?Si vous avez wmctrl
installé, la première ligne de sortie de la commande
wmctrl -m
vous indiquera le nom du gestionnaire de fenêtres. Si vous n'avez pas wmctrl
installé, utilisez la commande suivante pour l'installer :
sudo apt-get install wmctrl
Note, man wmctrl
(c'est-à-dire le man
page pour wmctrl
) dit en partie :
-m
Afficher des informations sur le gestionnaire de fenêtres ...
Sur mon système Ubuntu 11.10 / Linux 3.0.0-14-generic #23-Ubuntu x86_64 / metacity 2.34.1, la première ligne de la sortie de wmctrl -m
était : Name: Metacity
tandis que echo $DESKTOP_SESSION
a montré ubuntu-2d
y echo $XDG_CURRENT_DESKTOP
a montré Unity
.
Sur une nouvelle installation Ubuntu 15.10 de Ubuntu desktop
sur un vieil ordinateur portable, la première ligne de sortie de l'application wmctrl -m
était : Name: Compiz
tandis que le DESKTOP_SESSION
y XDG_CURRENT_DESKTOP
étaient ubuntu
y Unity
Sur les systèmes Linux, j'ai testé les variables d'environnement XDG_CURRENT_DESKTOP
y GDMSESSION
et j'ai obtenu les résultats suivants.
Vous pouvez utiliser cette ligne pour obtenir la sortie :
printf 'Desktop: %s\nSession: %s\n' "$XDG_CURRENT_DESKTOP" "$GDMSESSION"
Ubuntu 18.04 et 20.04 (Ubuntu sous GNOME)
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GDMSESSION=ubuntu
Ubuntu 18.04 (Ubuntu sur Wayland)
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GDMSESSION=ubuntu-wayland
Ubuntu 16.04
Unité (7)
XDG_CURRENT_DESKTOP=Unity
GDMSESSION=ubuntu
Ubuntu 14.04
Unity fonctionne avec Mir
XDG_CURRENT_DESKTOP=Unity
GDMSESSION=ubuntu
_Note MIR_SERVER_NAME
est également fixé_
MIR_SERVER_NAME=session-$NUMBER
Unity fonctionne sans Mir
XDG_CURRENT_DESKTOP=Unity
GDMSESSION=ubuntu
XFCE
XDG_CURRENT_DESKTOP=XFCE
GDMSESSION=xfce
Ubuntu 12.04
KDE
XDG_CURRENT_DESKTOP=
GDMSESSION=kde-plasma
Unity 3D
XDG_CURRENT_DESKTOP=Unity
GDMSESSION=ubuntu
Unity 2D
XDG_CURRENT_DESKTOP=Unity
GDMSESSION=ubuntu-2d
Gnome
XDG_CURRENT_DESKTOP=GNOME
GDMSESSION=gnome-shell
Gnome Classic
XDG_CURRENT_DESKTOP=GNOME
GDMSESSION=gnome-classic
Gnome Classic (sans effets)
XDG_CURRENT_DESKTOP=GNOME
GDMSESSION=gnome-fallback
Autres distributions basées sur Ubuntu
Mint 13 (cannelle)
XDG_CURRENT_DESKTOP=GNOME
GDMSESSION=cinnamon
Mint 16 (édition KDE)
XDG_CURRENT_DESKTOP=KDE
GDMSESSION=default
Mint 17 (cannelle)
XDG_CURRENT_DESKTOP=X-Cinnamon
GDMSESSION=default
Lubuntu 12.04
XDG_CURRENT_DESKTOP=LXDE
GDMSESSION=Lubuntu
Wasta 14.04 / 18.04
XDG_CURRENT_DESKTOP=X-Cinnamon
GDMSESSION=cinnamon
Wasta 14.04 utilisant le bureau Gnome.
XDG_CURRENT_DESKTOP=GNOME
GDMSESSION=gnome
Ubuntu Mate 18.04
XDG_CURRENT_DESKTOP=MATE
GDMSESSION=mate
Xubuntu 18.04
XDG_CURRENT_DESKTOP=XFCE
GDMSESSION=xubuntu
Kali Linux kali-rolling 2020.2
XDG_CURRENT_DESKTOP=GNOME
GDMSESSION=lightdm-xsession
Dans le terminal, tapez env
pour voir toutes les variables d'environnement. Certaines d'entre elles sont :
XDG_CURRENT_DESKTOP - Indique l'environnement de bureau que vous utilisez
GDMSESSION - Indique l'option que vous avez sélectionnée dans le greeter de lightdm pour vous connecter.
Pour les utiliser, allez dans le terminal et tapez :
echo $XDG_CURRENT_DESKTOP
(Cela donnera par exemple 'unity' si vous utilisez Unity).
o
echo $GDMSESSION
(Cela donnera par exemple 'ubuntu' si vous avez sélectionné ubuntu dans l'ouverture de session ou 'ubuntu-2d' si vous avez sélectionné celui-ci dans l'ouverture de session).
Vous en avez d'autres si vous regardez de plus près la sortie de env
comme SESSION DE BUREAU y COMPIZ_CONFIG_PROFILE
Puisque ce que vous cherchez est le nom du gestionnaire de fenêtres utilisé, la seule façon de l'obtenir est de regarder dans la liste des processus. Pour ce faire, il existe une commande appelée pgrep
( Wikipedia ). J'ai fait ce qui suit pour obtenir le nom puisque le paramètre -l ajoute l'ID du processus :
pgrep -l compiz |cut -d " " -f2
puisque le processus est exécuté par le même utilisateur, il n'est pas nécessaire de préfixer la partie sudo. Vous pouvez ensuite utiliser ceci pour créer un script qui effectue une action basée sur le gestionnaire de fenêtres.
Pour rechercher d'autres types, il suffit de modifier le mot compiz
à un autre comme mutter
, kwin
etc.
J'ai trouvé pstree
pour être d'une grande aide.
Installation
sudo apt-get install pstree
sortie
C'est ce que j'ai obtenu.
lightdmXorg2*[{Xorg}]
lightdmgnome-sessionbluetooth-apple2*[{bluetooth-apple}]
compizshgtk-window-deco2*[{gtk-window-deco}]
5*[{compiz}]
deja-dup-monito2*[{deja-dup-monito}]
gnome-fallback-2*[{gnome-fallback-}]
gnome-screensav2*[{gnome-screensav}]
gnome-settings-2*[{gnome-settings-}]
nautilus2*[{nautilus}]
nm-applet2*[{nm-applet}]
polkit-gnome-au2*[{polkit-gnome-au}]
ssh-agent
telepathy-indic2*[{telepathy-indic}]
update-notifier2*[{update-notifier}]
vino-server2*[{vino-server}]
zeitgeist-datah{zeitgeist-datah}
3*[{gnome-session}]
{lightdm}
2*[{lightdm}]
- Réponses précédentes
- Plus de réponses