it-swarm-es.tech

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

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

32
Tim

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 suponga un administrador de ventanas, sino que para agregar insulto a la lesión, un haga clic para enfocar administrador de ventanas. Por ejemplo, solía ser que cualquier aplicación Java) simplemente robaría el foco en el inicio.

Si desea probar, instale Xephyr (un servidor X11 "anidado"), ejecútelo con Xephyr :1, y luego inicia tus aplicaciones con DISPLAY=:1 en 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 en ejecución. El menú de ocultación automática tampoco funcionará.

26
mosvy

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.

38
icarus

Un administrador de ventanas es una conveniencia para los usuarios.

En los buenos ^ Wbad viejos tiempos, solía tener un ~/.Xclients archivo que lee:

#!/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) se estaban ejecutando antes de que se iniciara el administrador de ventanas. Debido a que la llamada a fvwm era la última línea y no puesto en segundo plano, significaba que cuando fvwm terminaba, 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 un solo xterm en ejecución. Cerrando que xterm terminaría la sesión X.

7
Stephen Harris

Para agregar a otras respuestas, he desarrollado y lanzado un aplicación de código abierto que funciona sin un administrador de ventanas (lo que significa que puede iniciarlo 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.

6
George Y.

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á dificultades 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

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 xterm escriba fvwm.

Es posible que deba instalar vncserver, ssvnc y fvwm, primero.

1
ctrl-alt-delor

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

1
Ken Jackson