¿Hay un command simple de Linux que me diga cuál es mi administrador de visualización?

¿Hay un command simple de Linux que me diga cuál es mi administrador de visualización?

Estoy usando Xfce. ¿Hay diferentes entornos de escritorio generalmente afiliados con diferentes administradores de pantallas?

Lamentablemente, la configuration difiere para cada distribución:

Debian (también debería aplicarse a Ubuntu)

/etc/X11/default-display-manager 

RedHat (también debería aplicarse a Fedora)

 /etc/sysconfig/desktop 

OpenSuSe

 /etc/sysconfig/displaymanager 

No hay El administrador de visualización no está necesariamente relacionado con nada más que se esté ejecutando en el mismo server X. El administrador de visualización se ejecuta antes de iniciar session; es elegido por el administrador del sistema. Todo lo demás (administrador de windows, administrador de sesiones, entorno de escritorio, …) es elegido por el usuario. Ni siquiera tiene que haber un administrador de visualización: si inicia session en el modo de text y arranca la GUI con startx , no estará involucrado el administrador de visualización.

Puede verificar qué administrador de visualización es el pnetworkingeterminado en su sistema . Esto solo dará la respuesta correcta bajo algunas suposiciones comunes pero no universales. Si ejecutó manualmente un administrador diferente por el motivo que sea, este método no le informará.

Una buena apuesta es averiguar la identificación del process del server X: su process principal es probablemente un administrador de visualización, si es que hay uno. Esto requiere que sus clientes se ejecuten en la misma máquina que el server X. lsof /tmp/.X11-unix/X${DISPLAY#:} mostrará el process del server X (suponiendo que las tomas X vivan en /tmp/.X11-unix ).

 x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p} ps -p $(ps -o ppid -p $x) 

(Explicación: lsof -F '' imprime resultados como p1234 . La opción -F significa un formatting de salida analizable por máquina, y '' significa imprimir solo el PID, con la letra p anterior. x=${x#p} quita la letra inicial p . La última línea obtiene el PID del padre del server X ( ps -o ppid -p $x ), y llama a ps para mostrar información sobre ese process principal).

Algunas distribuciones permiten instalar múltiples administradores de visualización. Solo se ejecutará una sola, a less que tengas un sistema multiseat. Para enumerar todos los packages de administrador de visualización instalados en Debian y derivados:

 aptitude -F %p search '~i ~P^x-display-manager$' 

o

 </var/lib/dpkg/status awk ' /^Package: / {package = $2} /^Provides: .*x-display-manager/ {print package}' 

El nombre del administrador de visualización debe estar en DESKTOP_SESSION

 echo $DESKTOP_SESSION 

devuelve "gnome" para mí.

EDITAR
Tienes razón. Están yendo y viniendo en eso en XFCEs bugzilla por lo que probablemente no es muy confiable.

si está utilizando la distribución basada en sistema. Este command le dará el nombre del administrador de pantalla actualmente activo porque puede tener más de un administrador de pantalla instalado.

 cat /etc/systemd/system/display-manager.service | grep '/usr/bin' 

OUTPUT será como

 ExecStart=/usr/bin/mdm 

Parece que estoy usando el Administrador de pantallas de menta.

Como dijo @Gilles, el administrador de pantalla iniciará su entorno de escritorio.

De acuerdo con Debian Wiki , la mayoría de estos terminan con dm , la única exception es slim .

Entonces esto debería ser suficiente para la mayoría de las necesidades de las personas:

 ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$ 

O, para estar seguro, existe como un process principal, y no está bifurcado (excepto desde el sistema init):

 ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$" 

Si está usando systemd, entonces

 systemctl status display-manager 

Mostrará el nombre y el estado del service administrador de visualización activo en su máquina.

En algún caso, wmctrl podría ayudar. Esta utilidad es compatible con muchos administradores de windows.

 wmcrt -m 

debería mostrar el nombre del administrador de windows actualmente utilizado.

Como ya se mencionó, hay mucha confusión en este hilo. La pregunta original es qué administrador de pantalla, no administrador de escritorio o administrador de window. Actualmente estoy ejecutando Xfwm4, que es el administrador de windows de Xfce, y lxdm, que es un gestor de pantalla liviano X11 (de LXDE, no de Xfce). Debería poder ver qué administrador de pantalla está usando a través de htop. Probablemente ya hace time que descubriste la respuesta en los últimos 4 años 🙂

X es altamente modular, por lo que si realmente lo deseaba, sí, podría combinar entornos de escritorio y administradores de Windows. Después de todo, un administrador de windows es solo una forma de pintar windows (esa es la vista simple).

Entonces, si tomas gnome, metacity solía ser el administrador de Windows pero ahora ha sido reemplazado por Mutter.

El problema con la mezcla se encuentra en los entornos de escritorio modernos, el escritorio y el administrador de windows están muy vinculados entre sí. Demasiada mezcla podría terminar en una menor funcionalidad.

Como mencioné $ DESKTOP_SESSION funciona pero si quiere preguntarle a su server X11, podría hacer esto:

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

Que se descompone en

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

Que obtiene la identificación de la window creada por el administrador de windows. Las especificaciones dicen (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. 

Y luego solicita la propiedad WM_NAME de dicha window.

WM_NAME es:

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