Existe-t-il une simple commande Linux qui me dira quel est mon gestionnaire d'affichage?
J'utilise Xfce. Les différents environnements de bureau sont-ils généralement affiliés à différents gestionnaires d'affichage?
Malheureusement, la configuration diffère pour chaque distribution:
Debian/Ubuntu
/etc/X11/default-display-manager
RedHat (devrait également s'appliquer à Fedora)
/etc/sysconfig/desktop
OpenSuSe
/etc/sysconfig/displaymanager
Si vous utilisez la distribution basée sur systemd. Cette commande donnera le nom du gestionnaire d'affichage actuellement configuré car plusieurs gestionnaires d'affichage peuvent être installés.
grep '/usr/s\?bin' /etc/systemd/system/display-manager.service
SORTIE sera quelque chose comme
ExecStart=/usr/bin/mdm
On dirait que j'utilise le gestionnaire d'affichage de menthe.
Il n'y en a pas. Le gestionnaire d'affichage n'est pas nécessairement lié à quoi que ce soit d'autre qui s'exécute sur le même serveur X. Le gestionnaire d'affichage s'exécute avant de vous connecter; il est choisi par l'administrateur système. Tout le reste (gestionnaire de fenêtres, gestionnaire de sessions, environnement de bureau,…) est choisi par l'utilisateur. Il n'est même pas nécessaire d'avoir un gestionnaire d'affichage: si vous vous connectez en mode texte et démarrez l'interface graphique avec startx
, aucun gestionnaire d'affichage n'est impliqué.
Vous pouvez vérifier quel gestionnaire d'affichage est celui par défaut sur votre système . Cela ne donnera la bonne réponse que sous certaines hypothèses communes mais pas universelles. Si vous avez exécuté manuellement un autre gestionnaire pour une raison quelconque, cette méthode ne vous le dira pas.
Un bon pari est de trouver l'ID de processus du serveur X: son processus parent est probablement un gestionnaire d'affichage, s'il en existe un. Cela nécessite que vos clients s'exécutent sur la même machine que le serveur X. lsof /tmp/.X11-unix/X${DISPLAY#:}
affichera le processus du serveur X (en supposant que les sockets X vivent dans /tmp/.X11-unix
).
x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p}
ps -p $(ps -o ppid -p $x)
(Explication: lsof -F ''
imprime la sortie comme p1234
. Le -F
option signifie un format de sortie analysable par machine, et ''
signifie imprimer uniquement le PID, avec la lettre p
devant. x=${x#p}
supprime la lettre initiale p
. La dernière ligne obtient le PID du parent du serveur X (ps -o ppid -p $x
) et appelle ps
pour afficher des informations sur ce processus parent.)
Certaines distributions permettent d'installer plusieurs gestionnaires d'affichage. Il n'y en aura qu'un seul en cours d'exécution, sauf si vous avez un système multisiège. Pour répertorier tous les packages du gestionnaire d'affichage installés sous Debian et dérivés:
aptitude -F %p search '~i ~P^x-display-manager$'
ou
</var/lib/dpkg/status awk '
/^Package: / {package = $2}
/^Provides: .*x-display-manager/ {print package}'
Si vous utilisez systemd, alors
systemctl status display-manager
Affiche le nom et l'état du service de gestionnaire d'affichage actif sur votre machine.
Le nom du gestionnaire d'affichage doit être dans DESKTOP_SESSION
echo $DESKTOP_SESSION
renvoie "gnome" pour moi.
[~ # ~] modifier [~ # ~]
Tu as raison. Ils vont et viennent sur cela sur les XFCE bugzilla donc ce n'est probablement pas très fiable.
Comme l'a dit @Gilles, le gestionnaire d'affichage démarrera votre environnement de bureau.
Selon le Debian Wiki , la plupart se terminent par dm
, la seule exception est slim
.
Cela devrait donc suffire pour la plupart des besoins des gens:
ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$
Ou pour être sûr, il existe en tant que processus parent et n'est pas bifurqué (sauf à partir du système init):
ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$"
Vous pouvez le faire via un script tiers appelé screenfetch
Screenfetch est un script bash disponible pour Linux qui affiche des informations système à côté de la version ASCII du logo de distribution Linux du système
Installer via le gestionnaire de packages Sudo apt-get install screenfetch
(en supposant que vous êtes sur des variantes de Debian)
et lancez simplement screenfetch
Dans votre terminal
Lien du projet https://github.com/KittyKatt/screenFetch
Dans certains cas, wmctrl pourrait vous aider. Cet utilitaire est compatible avec de nombreux gestionnaires de fenêtres.
wmcrt -m
doit afficher le nom du gestionnaire de fenêtres actuellement utilisé.
Comme déjà mentionné, il y a beaucoup de confusion dans ce fil. La question initiale est de savoir quel gestionnaire d'affichage, pas le gestionnaire de bureau ou le gestionnaire de fenêtres. J'exécute actuellement Xfwm4 qui est le gestionnaire de fenêtres Xfce et lxdm qui est le gestionnaire d'affichage X11 léger (de LXDE, pas Xfce). Vous devriez pouvoir voir quel gestionnaire d'affichage vous utilisez via htop. Vous avez probablement depuis longtemps découvert la réponse au cours des 4 dernières années :)