Un client X necessita necessariamente di un window manager per funzionare?


32

Un client X necessita necessariamente di un window manager per funzionare? Un client X può funzionare solo con il server X?

Se un client X non ha una finestra , se può funzionare ha bisogno di un gestore di finestre?

Se un client X può funzionare senza un gestore di finestre, il client X non ha necessariamente una finestra?

Grazie.


4
Quando ho incontrato X per la prima volta, cioè molto tempo fa, il fatto che non hai bisogno di un gestore di finestre è stato discusso nella maggior parte dei materiali introduttivi. In questi giorni non sembra essere il caso, ma suppongo che qualcuno potrebbe pensare questo ovvio o un esempio di pigrizia.
dmckee,

11
@Tim: Sembri essere stato abbastanza a lungo da sapere che un downvote non è destinato a comunicare "odio", "malvagità", "crudeltà", "discriminazione" o qualcosa del genere. Un downvote è semplicemente un sistema di classificazione dei contenuti e alcuni contenuti sono meno preziosi di altri contenuti. (Per la cronaca, non ho votato a fondo su questa domanda: penso che questa domanda sia fantastica.) Vedi anche: possiamo rendere più ovvio per i nuovi utenti che i downvote sul sito principale non sono insulti e in effetti possono aiutarli ad aiutare se stessi ? su Meta Stack Overflow.
Daniel Pryden,

5
@Tim Alcune delle tue domande declassate non mi sembrano utili. L'interfaccia utente (il testo alternativo del pulsante) incoraggia gli utenti a sottovalutare le domande "non utili". L'odio non è un componente necessario. L'aggiunta di un piccolo suggerimento / asserzione secondo cui una domanda potrebbe essere potenzialmente utilizzata in alcuni scenari (anche se molto marginale / improbabile) impedirebbe principalmente quella reazione istintiva. Le tue domande che ho visto sono notevolmente simili in quanto mancano di tali suggerimenti / asserzioni.
kubanczyk,

3
Tim, i moderatori del diamante hanno accesso ad alcuni strumenti che rilevano il voto dei modelli. Contrassegnali e chiedi loro di guardarci dentro. / mod su physics.se
dmckee,

1
Parti della tua domanda sembrano non schematiche. Il peggior trasgressore sembra essere "fa se può funzionare ha bisogno di un gestore di finestre?".
hkst

Risposte:


26

No. Le app ben scritte non hanno bisogno di un gestore di finestre.

Ma alcune app "moderne" non funzioneranno bene senza un gestore di finestre (ad es. Firefox e i suoi suggerimenti sulla barra degli indirizzi che non verranno eliminati [1]).

Molte altre app secondarie non solo assumono un gestore di finestre, ma per aggiungere un insulto al danno, un clic per focalizzare il gestore di finestre. Ad esempio, una volta qualsiasi app java rubava l'attenzione all'avvio.

Se si desidera eseguire il test, installare Xephyr(un server X11 "nidificato"), eseguirlo con Xephyr :1, quindi avviare le app DISPLAY=:1nel loro ambiente.

[1] la "barra impressionante" di Firefox non aprirà il riquadro dei suggerimenti quando viene digitato o cliccato sul pulsante cronologia a meno che non sia in esecuzione un gestore di finestre. Anche il menu Nascondi automaticamente non funzionerà.


C'è un bug aperto in Firefox per il problema che hai citato? Penso che la natura open source di Firefox sarebbe disposta ad accogliere una correzione di bug per quel problema.
t3dodson,

4
@ t3dodson Puoi provare a inviarne uno, ma è molto dubbio che qualcuno si occuperà di rivedere una patch che lo risolva. L'esecuzione di firefox non è realmente supportata senza un gestore di finestre, un gestore di sessioni e di recente un server pulseaudio in esecuzione. Certo, puoi rovinarlo, ma dover mantenere un fork di Firefox non è qualcosa che vorrei sul mio peggior nemico ;-)
mosvy,

Imo qualsiasi risposta su questo tema non è completa senza menzionare Xephyr. +1
Rui F Ribeiro,

38

No, non è necessario eseguire un gestore di finestre per consentire a un client X di funzionare. Alcuni sistemi forniscono un'opzione per eseguire un terminale all'avvio e da questo è possibile avviare programmi aggiuntivi, inclusi i gestori di finestre. Alcune configurazioni di chioschi che vogliono eseguire solo un'applicazione non richiedono un gestore di finestre. Alcune implementazioni di X per microsoft windows evitano un X window manager consentendo al sistema operativo di gestire le finestre.

Senza un gestore di finestre in genere è necessario specificare la geometria per i programmi in modo da non disporre di tutto nell'angolo in alto a sinistra.

In X, il gestore di finestre è solo un altro client X. Questo era insolito al momento, ma rendeva facile avere diversi gestori di finestre.

Un altro modo di esaminare la domanda è osservare che è possibile cambiare al volo i gestori delle finestre, quindi c'è un tempo tra il primo arresto e il secondo che prende il controllo, ma poiché tutte le applicazioni non si arrestano in modo anomalo, devono essere in grado lavorare senza.


2
Suggerimento: esiste uno strumento chiamato xwit che aiuta molto quando si sperimentano configurazioni wm-less.
Rackandboneman,

7

Un gestore di finestre è una comodità per gli utenti.

Ai vecchi tempi di ^ Wbad, avevo un ~/.Xclientsfile che diceva :

#!/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

Questo file verrebbe eseguito quando ho avviato X con startx. Al termine di questo script, il server X verrà arrestato.

Nota l'ultima riga: exec .../fvwm. Questa è la linea che ha avviato il mio gestore di finestre (fvwm). Tutte le applicazioni precedenti ( xv, xterm, xclock, xscreensaver) erano in esecuzione prima che il window manager ha iniziato. Poiché la chiamata a fvwmera l'ultima linea e non si metteva in background significava che una volta fvwmterminato X si sarebbe chiuso.

L'avvio di X aveva anche un "fallback" predefinito ... se non c'erano file di configurazione, avvia X con una sola xtermesecuzione. Chiusura che xtermterminerebbe la sessione X.


Qual è stato il vantaggio di non creare background in fvwm?
Alex Hajnal,

1
Abbiamo bisogno che lo script non termini perché in tal caso il server X termina; non fvwmeseguendo lo sfondo (ed eseguendolo exec) assicuriamo che ci sia ancora un processo che impedisce al server X di spegnersi. Effettuando quell'ultimo processo, fvwmuna voce di menu "esci" funziona come previsto.
Stephen Harris,

Fatto. È passato un po 'di tempo da quando ho fatto molto di basso livello con X. Devo dire però che fvwm 2 è uno dei miei due gestori di finestre preferiti (l'altro è kwin 3).
Alex Hajnal,

Nel mio caso, fvwm-1.24rera il mio gestore di finestre preferito :-)
Stephen Harris,

Ti sento su questo. Mi sembra di ricordare che v2 era più personalizzabile rispetto a v1 (con tutte le opzioni di configurazione in un singolo file di testo e ricaricabile al volo?). Anche abbastanza leggero, soprattutto per gli standard di oggi. L'ho usato per l'ultima volta ogni giorno nell'era IIRC della P-II.
Alex Hajnal,

6

Per aggiungere altre risposte, ho sviluppato e rilasciato un'app open source che funziona senza un gestore di finestre (il che significa che puoi avviarla direttamente da xinitrc). Ci sono alcuni passaggi extra che l'applicazione dovrebbe fare in questo caso oltre a gestire la geometria e l'ordine Z dei suoi dialoghi, ma questo è totalmente gestibile.


1

Ci sono molte buone risposte dettagliate qui. Ecco la semplice risposta chiara.

Un client X necessita necessariamente di un window manager per funzionare?

No: Ma senza se farai fatica a gestire le finestre (spostamento, ridimensionamento, abbassamento, sollevamento, ecc.). Ci sono altri strumenti che possono farlo, se ne hai bisogno.

Un client X può funzionare solo con il server X?

Se un client X non ha una finestra, se può funzionare ha bisogno di un gestore di finestre?

Se non ha finestre, non dovrebbe esserci un aspetto negativo di non avere un gestore di finestre.

Se un client X può funzionare senza un gestore di finestre, il client X non ha necessariamente una finestra?

No: può avere windows.

Prova questo.

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

quindi nel nuovo xtermtipo fvwm.

Potrebbe essere necessario installare vncserver, ssvnce fvwm, in primo luogo.


1

Sì, un client X può funzionare solo con il server X. Ad esempio, offro alle mie macchine virtuali la propria console virtuale sull'host, in questo modo.

# 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

Il comando "startx" avvia il server Xorg X su display: 4 e: 5 con solo virt-viewer come client.

"CentOS" e "Windows" sono i nomi che ho dato alle mie macchine virtuali quando le ho installate. L' opzione -k per virt-viewer lo rende a schermo intero con controlli minimi, quindi ogni macchina virtuale sembra possedere la macchina fino a quando premo CTRL-ALT-Fn per passare a una console virtuale diversa.

Naturalmente, CentOS sta eseguendo un display manager e un window manager all'interno della macchina virtuale, ma che non ha alcuna connessione con il server X in esecuzione sull'host.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.