Existe-t-il une simple commande linux qui me dira ce qu'est mon gestionnaire d'affichage?

Réponses:

46

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
Laisse-moi tranquille
la source
1
Euh, pourquoi tu me parles de configuration ...?
ptrcao
2
@ptrcao Parce qu'il spécifie le gestionnaire d'affichage que vous utilisez.
Let_Me_Be
1
Supposons que je ne sache pas ce qu'est mon gestionnaire d'affichage et que je veuille le savoir en utilisant un terminal. Comment je ferais ça?
ptrcao
3
@ ptrcao Vous examineriez ces fichiers. Soit les ouvrir dans votre éditeur préféré, ou tout simplement faire cat.
Let_Me_Be
1
Il ne contient qu'une ligne: /usr/bin/xdm- cela signifie-t-il que xdm est mon gestionnaire d'affichage?
ptrcao
23

Il n'y 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; c'est choisi par l'administrateur système. Tout le reste (gestionnaire de fenêtre, gestionnaire de session, 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 fera que donner la bonne réponse sous certaines hypothèses communes mais non 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 consiste à connaître l'ID de processus du serveur X: son processus parent est probablement un gestionnaire d'affichage, le cas échéant. Cela nécessite que vos clients s'exécutent sur le même ordinateur que le serveur X. lsof /tmp/.X11-unix/X${DISPLAY#:}montrera le processus du serveur X (en supposant que les sockets X vivent /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. L' -Foption désigne un format de sortie analysable par machine et ''n'imprime que le PID, avec la lettre la pprécédant. x=${x#p}Élimine la lettre initiale p. La dernière ligne obtient le PID du parent du serveur X ( ps -o ppid -p $x), et appelle pspour 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 multiseat. Pour lister tous les paquets du gestionnaire d’affichage installés sous Debian et ses 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}'
Gilles, arrête de faire le mal
la source
18

Si vous utilisez une 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 à la menthe.

Allsyed
la source
3
Vous avez présenté un exemple classique d' utilisation inutile de chat - c'est parfaitement acceptable, et même préférable, par exemple grep '/usr/bin' /etc/systemd/system/display-manager.service. (Et, à proprement parler, puisqu'il /usr/binne contient aucun caractère spécial pour le shell, vous n'avez pas besoin de le citer, mais cela ne fait pas mal.)
G-Man dit 'Réintégrez Monica'
6
«utilisation inutile de chat» est toujours quelque peu relative. Je préfère éditer la dernière chaîne de cat <file> | grep <searchterm>au lieu de la seconde grep <searchterm> <file>lors de la récupération.
Sjas
1
Cette réponse devrait être la première que vous voyez, car la plupart des utilisateurs ayant ce type de question exécutent aujourd'hui des distributions basées sur systemd. Merci. Ça m'a aidé.
Adergaard
3
@allsyed mon fichier n'a pas / usr / bin, il a / usr / sbin. Linux-Mint 18
Prévt_Yadav
2
Dans mon cas (Centos 7) je dois écrire | grep '/ usr / sbin'
Davide
16

Si vous utilisez systemd, alors

systemctl status display-manager

Affiche le nom et l’état du service du gestionnaire d’affichage actif sur votre machine.

Mioriin
la source
Avec Debian 9, c’est le seul qui a fonctionné pour moi. Les autres méthodes systemd n'ont rien renvoyé.
mickeyf_supports_Monica le
10

Le nom du gestionnaire d'affichage doit être dans DESKTOP_SESSION.

echo $DESKTOP_SESSION

retourne "gnome" pour moi.

EDIT
Vous avez raison. Ils vont et viennent à ce sujet sur le bugzilla de XFCE, donc ce n'est probablement pas très fiable.

Le pont Charles
la source
@frabjous: Qu'en est-il de GDM et KDM? S'agit-il également de gestionnaires d'affichage ou de gestionnaires de connexion?
ptrcao
J'ai dû accidentellement effacer le commentaire de frabjous juste au-dessus parce que je me souviens qu'il avait remarqué que Gnome est un environnement de bureau, pas un gestionnaire d'affichage. La confusion
règne sur
Cela donne des informations sur… la session de bureau, qui sera probablement la même chose que votre environnement de bureau, mais peut être tout à fait autre chose si vous n'utilisez pas un environnement de bureau ou si vous avez une configuration particulière. Sur la machine sur laquelle j'écris ceci, $DESKTOP_SESSIONc'est unknown.
Gilles 'SO- arrête d'être méchant'
+1, echo $ DESKTOP_SESSION me renvoie également gnome ... mais peut-être que cela ne fonctionne que pour gnome?
Trevor Boyd Smith
Si cela ne fonctionne que pour gnome, cette commande vous aidera uniquement à déduire "oui vous avez gnome ou non vous n'avez pas gnome". Quand la question veut savoir plus que cela.
Trevor Boyd Smith
2

Comme @Gilles a dit, le gestionnaire d'affichage va démarrer votre environnement de bureau.

Selon le wiki de Debian , la plupart du temps, ils se terminent par dm, seule exception slim.

Cela devrait donc suffire à la plupart des besoins de la population:

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 créé (à l'exception du système init):

ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$" 
sjas
la source
1
C'est la seule solution qui a fonctionné pour moi. J'ai découvert que mon Fedora 23 minimal avec l'add-on LXDE (et non le LXDE Spin) est en cours d'exécution lightdm. La solution RedHat / Fedora de la réponse principale n'a pas fonctionné, la configuration semble s'être déplacée.
Daniel Saner
0

Dans certains cas, wmctrl pourrait vous aider. Cet utilitaire est compatible avec beaucoup de gestionnaires de fenêtres.

wmcrt -m 

devrait afficher le nom du gestionnaire de fenêtres actuellement utilisé.

Francis Gernet
la source
6
Un gestionnaire de fenêtres n’est pas la même chose qu’un gestionnaire d’affichage .
HalosGhost
0

Comme déjà mentionné, il y a beaucoup de confusion dans ce fil. La question initiale est de savoir quel gestionnaire d’affichage, et non pas le gestionnaire de bureau ou le gestionnaire de fenêtres. J'utilise actuellement Xfwm4, gestionnaire de fenêtres Xfce, et lxdm, gestionnaire d'affichage X11 léger (de LXDE et non de 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 :)

billV
la source
En fait, jamais jamais ... En fait, nous
avons
0

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 de la distribution Linux. Logo du système

Installer via le gestionnaire de paquets sudo apt-get install screenfetch(en supposant que vous êtes sur des variantes de Debian)

et juste courir screenfetch dans votre terminal

Lien du projet https://github.com/KittyKatt/screenFetch

Obi Uchenna David
la source
-1

X est hautement modulaire, vous pouvez donc mélanger les environnements de bureau et les gestionnaires de fenêtres. Après tout, un gestionnaire de fenêtres n’est qu’un moyen de peindre des fenêtres (c’est la simple vue).

Donc, si vous prenez gnome, Metacity était le gestionnaire de fenêtres, mais maintenant, il est remplacé par Mutter.

Le problème du mélange réside dans les environnements de bureau modernes. Le bureau et le gestionnaire de fenêtres sont étroitement liés. Trop de mixage pourrait aboutir à moins de fonctionnalités.

Comme mentionné précédemment, $ DESKTOP_SESSION fonctionne, mais si vous voulez demander à votre serveur X11, vous pouvez le faire:

xprop -id $(xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2) WM_NAME

Qui se décompose en

xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2
0x1000052
xprop -id 0x1000052 WM_NAME
WM_NAME(STRING) = "xfwm4"

Ce qui obtient l'id de la fenêtre créée par le gestionnaire de fenêtres. La spécification dit (http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html):

_NET_SUPPORTING_WM_CHECK, WINDOW/32
The Window Manager MUST set this property on the root window to be the ID
of a child window created by himself, to indicate that a compliant window
manager is active.

Et ensuite, vous demandez la propriété WM_NAME de ladite fenêtre.

WM_NAME étant:

The WM_NAME property is an uninterpreted string that the client wants the
window manager to display in association with the window (for example, in
a window headline bar). 
Mathieu
la source
@frabjous: Xfwm4 est le gestionnaire de fenêtres Xfce. Est-ce la même chose qu'un gestionnaire d'affichage?
ptrcao
@Mathieu Vous parlez de gestionnaires de fenêtres, pas de gestionnaires d'affichage.
Let_Me_Be
@ Let_Me_Be True, mais dans la plupart des cas, votre gestionnaire de fenêtres est lié à votre gestionnaire d'affichage ... À quelle fréquence utilisez-vous le gestionnaire de fenêtres gnome avec kde et vice-versa? Et ça marche parce que gdm / kdm / que vous permettez de sélectionner votre gestionnaire d’affichage, ce qui signifie que lire le fichier de configuration comme vous l’avez dit ne fonctionne pas si vous n’utilisez pas le paramètre fourni par défaut ...
Mathieu
_NET_SUPPORTING_WM_CHECKdonne des informations sur le gestionnaire de fenêtres, pas sur le gestionnaire d'affichage. Cela ne fonctionne même pas toujours; sur mon système, cette propriété est définie sur un ID de fenêtre, mais la fenêtre en question n'a pas de nom.
Gilles 'SO- arrête d'être méchant'
@Mathieu Cela dépend des distributions. Habituellement, lorsque vous installez une version KDE de la distribution, vous obtenez KDM et, lorsque vous utilisez une version de GNOME, GDM. Mais ce que vous verrez de plus en plus, c’est le support officiel d’un seul gestionnaire d’affichage (généralement une variante plus légère que GDM / KDM).
Let_Me_Be
-2
lshw -c video | grep 'configuration'
kip
la source
3
Un peu d'explication serait bien.
phk