¿Un cliente X necesita necesariamente un administrador de ventanas para funcionar?

32

¿Un cliente X necesita necesariamente un administrador de ventanas para funcionar? ¿Puede un cliente X trabajar solo con el servidor X?

Si un cliente X no tiene una ventana , ¿necesita un administrador de ventanas si puede funcionar?

Si un cliente X puede funcionar sin un administrador de ventanas, ¿el cliente X no tiene necesariamente una ventana?

Gracias.

Tim
fuente
44
Cuando encontré X por primera vez, es decir, hace mucho tiempo, el hecho de que no necesita un administrador de ventanas se discutió en la mayoría de los materiales introductorios. Ese no parece ser el caso en estos días, pero supongo que alguien podría pensar que esto es obvio o un ejemplo de pereza.
dmckee
11
@Tim: Parece que has estado presente el tiempo suficiente como para saber que un voto negativo no pretende comunicar "odio", "maldad", "crueldad", "discriminación" ni nada de eso. Un voto negativo es simplemente un sistema de calificación de contenido , y algunos contenidos son menos valiosos que otros. (Para que conste, no rechacé esta pregunta: creo que esta pregunta es excelente.) Vea también: ¿Podemos hacer que sea más obvio para los nuevos usuarios que los votos negativos en el sitio principal no son insultos y de hecho pueden ayudarlos a ayudarse a sí mismos? ? en Meta Stack Overflow.
Daniel Pryden
55
@Tim Algunas de sus preguntas con voto negativo no me parecen útiles. La interfaz de usuario (el texto alternativo del botón) alienta a los usuarios a rechazar las preguntas "no útiles". El odio no es un componente necesario. Agregar una pequeña pista / afirmación de que una pregunta podría usarse potencialmente en algún escenario (incluso si es muy marginal / improbable) evitaría principalmente esa reacción instintiva. Sus preguntas que vi son notablemente similares, ya que carecen de cualquier pista / afirmación.
kubanczyk
3
Tim, los moderadores de diamantes tienen acceso a algunas herramientas que detectan el patrón de votación. Marcarlos y pedirles que lo investiguen. / mod en physics.se
dmckee
1
Partes de su pregunta parecen poco gramaticales. El peor delincuente parece ser "¿puede funcionar si necesita un administrador de ventanas?".
hkBst

Respuestas:

26

No. Las aplicaciones bien escritas no necesitan un administrador de ventanas.

Pero algunas aplicaciones rotas "modernas" no funcionarán bien sin un administrador de ventanas (por ejemplo, Firefox y sus sugerencias de barra de direcciones que no se desplegarán [1]).

Muchas otras aplicaciones secundarias no solo asumen un administrador de ventanas, sino que para agregar insulto a las lesiones, haga clic para enfocar el administrador de ventanas. Por ejemplo, solía ser que cualquier aplicación de Java simplemente robaría el foco en el inicio.

Si desea probar, instale Xephyr(un servidor X11 "anidado"), ejecútelo Xephyr :1y luego inicie sus aplicaciones DISPLAY=:1en su entorno.

[1] la "barra impresionante" de Firefox no abrirá su panel de sugerencias cuando se teclee o haga clic en el botón de historial a menos que haya un administrador de ventanas ejecutándose. El menú de ocultación automática tampoco funcionará.

Mosvy
fuente
¿Hay un error abierto en Firefox para el problema que mencionaste? Creo que la naturaleza de código abierto de Firefox estaría dispuesta a adaptarse a una corrección de errores para ese problema.
t3dodson
44
@ t3dodson Puede intentar enviar uno, pero es muy dudoso que a alguien le importe revisar un parche que lo arregle. Ejecutar firefox no es realmente compatible sin un administrador de ventanas, administrador de sesiones y, recientemente, un servidor pulseaudio en ejecución. Por supuesto, puedes bifurcarlo, pero tener que mantener una bifurcación de Firefox no es algo que desearía para mi peor enemigo ;-)
mosvy
Imo cualquier respuesta sobre este tema no está completa sin mencionar Xephyr. +1
Rui F Ribeiro
38

No, no necesita ejecutar un administrador de ventanas para permitir que un cliente X funcione. Algunos sistemas ofrecen una opción para ejecutar un terminal al inicio, y desde allí puede iniciar programas adicionales, incluidos los administradores de ventanas. Algunas configuraciones de kiosco que solo quieren que se ejecute una aplicación no necesitan un administrador de ventanas. Algunas implementaciones de X para microsoft windows evitan un administrador de ventanas X al permitir que el sistema operativo administre las ventanas.

Sin un administrador de ventanas, normalmente necesita especificar la geometría de los programas para que no tenga todo colocado en la esquina superior izquierda.

En X, el administrador de ventanas es solo otro cliente X. Esto era inusual en ese momento, pero facilitaba tener diferentes gestores de ventanas.

Otra forma de ver la pregunta es observar que puede cambiar los administradores de ventanas sobre la marcha, por lo que hay un tiempo entre la primera parada y la segunda toma el control, pero como todas sus aplicaciones no fallan, deben poder para trabajar sin

Ícaro
fuente
2
Sugerencia: hay una herramienta llamada xwit que realmente ayuda al experimentar con configuraciones sin wm.
rackandboneman
7

Un administrador de ventanas es una conveniencia para los usuarios.

En los buenos ^ Wbad viejos tiempos, solía tener un ~/.Xclientsarchivo que decía:

#!/bin/sh

HOST=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $HOST -T $HOST &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $HOST -T $HOST &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm

Este archivo se ejecutará cuando inicie X con startx. Cuando finalice este script, el servidor X se cerrará.

Tenga en cuenta la última línea: exec .../fvwm. Esta es la línea que inició mi administrador de ventanas (fvwm). Todas las aplicaciones anteriores ( xv, xterm, xclock, xscreensaver) estaban corriendo antes de que comenzara el gestor de ventanas. Debido a que la llamada a fvwmera la última línea y no estaba en segundo plano, significaba que cuando fvwmterminaba, X se cerraría.

El inicio de X incluso tenía un valor predeterminado "retroceder" ... si no había archivos de configuración, inicie X con una sola xtermejecución. Cerrando eso xtermterminaría la sesión X.

Stephen Harris
fuente
¿Cuál fue la ventaja de no utilizar el fondo fvwm?
Alex Hajnal
1
Necesitamos que el script no termine porque si lo hace, entonces el servidor X termina; al no poner en segundo plano fvwm(y ejecutarlo exec) nos aseguramos de que todavía haya un proceso que evite que el servidor X se apague. Al hacer que el último proceso fvwmpermita que un elemento de menú "salir" funcione como se esperaba.
Stephen Harris
Lo tengo. Ha pasado un tiempo desde que hice mucho nivel bajo con X. Sin embargo, debo decir que fvwm 2 es uno de mis dos gestores de ventanas favoritos (el otro es kwin 3).
Alex Hajnal
En mi caso, fvwm-1.24rfue mi administrador de ventanas favorito :-)
Stephen Harris
Te escucho sobre eso. Sin embargo, creo recordar que v2 era más personalizable que v1 (¿con todas las opciones de configuración en un solo archivo de texto y recargable sobre la marcha?). Bastante ligero también, especialmente para los estándares actuales. La usé por última vez a diario en la era P-II IIRC.
Alex Hajnal
6

Para agregar a otras respuestas, he desarrollado y lanzado una aplicación de código abierto que funciona sin un administrador de ventanas (lo que significa que puede iniciarla directamente desde xinitrc). Hay algunos pasos adicionales que la aplicación debe hacer en este caso además de administrar la geometría y el orden Z de sus cuadros de diálogo, pero esto es totalmente manejable.

George Y.
fuente
1

Hay muchas buenas respuestas detalladas aquí. Aquí está la respuesta simple y clara.

¿Un cliente X necesita necesariamente un administrador de ventanas para funcionar?

No: pero sin si tendrá problemas para administrar sus ventanas (mover, redimensionar, bajar, subir, etc.). Hay otra herramienta que puede hacer esto, si la necesita.

¿Puede un cliente X trabajar solo con el servidor X?

Si un cliente X no tiene una ventana, ¿necesita un administrador de ventanas si puede funcionar?

Si no tiene ventanas, entonces no debería haber inconvenientes en no tener un administrador de ventanas.

Si un cliente X puede funcionar sin un administrador de ventanas, ¿el cliente X no tiene necesariamente una ventana?

No: puede tener ventanas.

Prueba esto.

DISPLAY=:21
vncserver -localhost -geometry 1920x1080  -SecurityTypes None $DISPLAY &
ssvnc $DISPLAY
xterm &

luego en el nuevo xtermtipo fvwm.

Es posible que tenga que instalar vncserver, ssvncy fvwm, en primer lugar.

ctrl-alt-delor
fuente
1

Sí, un cliente X solo puede funcionar con el servidor X. Como ejemplo, les doy a mis máquinas virtuales su propia consola virtual en el host, de esta manera.

# Press CTRL-ALT-F5, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system CentOS -- :4

# Press CTRL-ALT-F6, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :5

El comando "startx" inicia el servidor Xorg X en las pantallas: 4 y: 5 con solo virt-viewer como cliente.

"CentOS" y "Windows" son los nombres que le di a mis máquinas virtuales cuando las instalé. El modificador -k para virt-viewer lo hace a pantalla completa con controles mínimos, por lo que cada máquina virtual parece ser propietaria de la máquina hasta que presione CTRL-ALT-Fn para cambiar a una consola virtual diferente.

Por supuesto, CentOS está ejecutando un administrador de pantalla y un administrador de ventanas dentro de la máquina virtual, pero eso no tiene conexión con el servidor X que se ejecuta en el host.

Ken Jackson
fuente