web-dev-qa-db-fra.com

Existe-t-il une simple commande Linux qui me dira quel est mon gestionnaire d'affichage?

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?

65
ptrcao

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
52
Šimon Tóth

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.

27
allsyed

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.

23
Mio Rin

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.

10
charlesbridge

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$" 
3
sjas

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

0
Obi Uchenna David

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

0
Francis Gernet

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

0
billV