it-swarm.com.de

Benötigt ein X-Client unbedingt einen Fenstermanager, um zu funktionieren?

Benötigt ein X-Client unbedingt einen Fenstermanager, um zu funktionieren? Kann ein X-Client nur mit dem X-Server arbeiten?

Wenn ein X-Client kein Fenster hat , braucht ein Fenstermanager, ob er funktionieren kann?

Wenn ein X-Client ohne Fenstermanager arbeiten kann, hat der X-Client dann notwendigerweise kein Fenster?

Vielen Dank.

32
Tim

Gut geschriebene Apps benötigen keinen Fenstermanager.

Einige "moderne" kaputte Apps funktionieren jedoch ohne einen Fenstermanager nicht einwandfrei (z. B. Firefox und Vorschläge für die Adressleiste, die nicht herunterfallen [1]).

Viele andere unterdurchschnittliche Apps sind nicht nur angenommen ein Fenstermanager, sondern, um die Verletzung zusätzlich zu beleidigen, ein zum Fokussieren klicken Fenstermanager. Zum Beispiel war es früher so, dass jede Java App) einfach den Fokus beim Start stiehlt.

Wenn Sie testen möchten, installieren Sie Xephyr (einen "verschachtelten" X11-Server), führen Sie ihn mit Xephyr :1 Aus und starten Sie Ihre Apps mit DISPLAY=:1 In ihrer Umgebung.

[1] Die "fantastische Leiste" von Firefox öffnet ihren Vorschlagsbereich nicht, wenn Sie in die Verlaufsschaltfläche tippen oder darauf klicken, es sei denn, es wird ein Fenstermanager ausgeführt. Das Menü zum automatischen Ausblenden funktioniert ebenfalls nicht.

26
mosvy

Nein, Sie müssen keinen Fenstermanager ausführen, damit ein X-Client funktioniert. Einige Systeme bieten die Option, beim Start nur ein Terminal auszuführen, und von dort aus können Sie zusätzliche Programme starten, einschließlich Fenstermanager. Einige Kiosk-Setups, bei denen nur eine Anwendung ausgeführt werden soll, benötigen keinen Fenstermanager. Einige Implementierungen von X für Microsoft Windows vermeiden einen X-Fenstermanager, indem das Betriebssystem die Fenster verwalten lässt.

Ohne einen Fenstermanager müssen Sie normalerweise die Geometrie für die Programme angeben, damit nicht alles in der oberen linken Ecke platziert wird.

In X ist der Fenstermanager nur ein weiterer X-Client. Dies war zu dieser Zeit ungewöhnlich, machte es jedoch einfach, verschiedene Fenstermanager zu haben.

Eine andere Möglichkeit, die Frage zu betrachten, besteht darin, zu beobachten, dass Sie die Fenstermanager im laufenden Betrieb wechseln können. Es gibt also eine Zeit zwischen dem ersten Stopp und dem zweiten, der die Kontrolle übernimmt. Da jedoch alle Ihre Anwendungen nicht abstürzen, müssen sie in der Lage sein ohne arbeiten.

38
icarus

Ein Fenstermanager ist eine Annehmlichkeit für Benutzer.

In den guten alten Zeiten hatte ich ein ~/.Xclients Datei, die lautete:

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

Diese Datei wird ausgeführt, wenn ich X mit startx gestartet habe. Wenn dieses Skript beendet ist, wird der X-Server heruntergefahren.

Beachten Sie die letzte Zeile: exec .../fvwm. Dies ist die Zeile, in der mein Fenstermanager (fvwm) gestartet wurde. Alle vorherigen Anwendungen (xv, xterm, xclock, xscreensaver) wurden ausgeführt, bevor der Fenstermanager gestartet wurde. Da der Aufruf von fvwm die letzte Zeile war und nicht in den Hintergrund gestellt wurde, bedeutete dies, dass X beendet wurde, wenn fvwm beendet wurde.

Der X-Start hatte sogar einen "Fallback" -Standard ... Wenn keine Konfigurationsdateien vorhanden waren, starten Sie X mit einem einzelnen xterm. Das Schließen von xterm würde die X-Sitzung beenden.

7
Stephen Harris

Um andere Antworten zu ergänzen, habe ich eine Open Source App entwickelt und veröffentlicht, die ohne Fenstermanager funktioniert (dh Sie können sie direkt von xinitrc aus starten). Neben der Verwaltung der Geometrie und der Z-Reihenfolge der Dialoge sollte die Anwendung in diesem Fall einige zusätzliche Schritte ausführen. Dies ist jedoch vollständig verwaltbar.

6
George Y.

Hier gibt es viele gute detaillierte Antworten. Hier ist die einfache eindeutige Antwort.

Benötigt ein X-Client unbedingt einen Fenstermanager, um zu funktionieren?

Nein: Aber ohne, wenn Sie Schwierigkeiten haben, Ihre Fenster zu verwalten (Verschieben, Ändern der Größe, Absenken, Anheben usw.). Es gibt andere Tools, die dies tun können, wenn Sie es brauchen.

Kann ein X-Client nur mit dem X-Server arbeiten?

Ja

Wenn ein X-Client kein Fenster hat, braucht ein Fenstermanager, ob er funktionieren kann?

Wenn es keine Fenster hat, sollte es keinen Nachteil geben, keinen Fenstermanager zu haben.

Wenn ein X-Client ohne Fenstermanager arbeiten kann, hat der X-Client dann notwendigerweise kein Fenster?

Nein, es kann Fenster haben.

Versuche dies.

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

geben Sie dann im neuen xtermfvwm ein.

Möglicherweise müssen Sie zuerst vncserver, ssvnc und fvwm installieren.

1
ctrl-alt-delor

Ja, ein X-Client kann nur mit dem X-Server arbeiten. Als Beispiel gebe ich meinen virtuellen Maschinen so eine eigene virtuelle Konsole auf dem Host.

# 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

Der Befehl "startx" startet den Xorg X-Server auf den folgenden Anzeigen: 4 und: 5 mit nur virt-viewer als Client.

"CentOS" und "Windows" sind die Namen, die ich meinen virtuellen Maschinen bei der Installation gegeben habe. Der Schalter - k für virt-viewer macht den Vollbildmodus mit minimalen Steuerelementen, sodass jede virtuelle Maschine die Maschine zu besitzen scheint, bis ich STRG-ALT-Fn drücke, um zu einer anderen virtuellen Konsole zu wechseln.

Natürlich führt CentOS einen Anzeige- und Fenstermanager in der virtuellen Maschine aus, aber das hat keine Verbindung zum X-Server, der auf dem Host ausgeführt wird.

1
Ken Jackson