Stellen Sie Xorg so ein, dass nur ein Teil des Bildschirms verwendet wird

13

Mein Bildschirm hat eine Auflösung von 1280 x 1024. Leider ist der Gürtel ganz rechts mit 200 Pixeln beschädigt und kann kein Bild anzeigen.

Wie kann ich festlegen, dass der Xorg meinen Bildschirm als 1080 x 1024-Gerät behandelt?

Jetzt habe ich versucht:

Virtual 1080 1024
Viewport 0 0

Es funktioniert nicht richtig - das Bild wird so skaliert, dass es vertikal und horizontal passt. Ich kann mit der Maus schwenken.

Rok Kralj
quelle
2
Ich habe das Kopfgeld auf der Suche nach mehr, möglicherweise einfacheren Lösungen eröffnet. Vielen Dank an alle!
Rok Kralj

Antworten:

8

Check out: http://howto-pages.org/ModeLines/ , sie haben eine gute Erklärung für Xorg Modelines. Gehen Sie dann zu http://xtiming.sourceforge.net/cgi-bin/xtiming.pl und geben Sie die Spezifikationen für die Größe des Bildschirms ein, den Sie verwenden können. Dadurch erhalten Sie eine Modeline, die Sie Ihrer xorg.conf-Datei hinzufügen können.

Die Felder 4, 5, 6 und 7 entsprechen den folgenden Werten: HDisplay HSyncStart HSyncEnd HTotal.

Wenn Sie mit den Feldern 5 und 6 spielen, können Sie den sichtbaren Teil Ihres Bildschirms je nach Bedarf nach links oder rechts verschieben.

Tim Kennedy
quelle
Würden Sie das näher erläutern?
Rok Kralj
sicher. Denken Sie an Hsync wie den Wagenrücklauf auf einer Schreibmaschine. Denken Sie daran, wie X Controls Displays in den Tagen des CRT entwickelt wurden. HSyncStart fordert Sie auf, Pixel an einer Stelle zu zeichnen, und zeichnet so lange, bis HSyncEnd, an welchem ​​Punkt das HSync-Signal gesetzt ist, und weist CRT an, die nächste Zeile auf dem Bildschirm zu zeichnen. Im Zeitalter des LCD ist dies ein Erbe, aber es funktioniert immer noch so. Indem Sie mit den Start- und Endfeldern der horizontalen Linien spielen, können Sie steuern, wie breit Ihr Bildschirm gezeichnet wird und auf welchem ​​Teil des physischen Mediums. Der Link im Beitrag hat eine gute Erklärung.
Tim Kennedy
2

Sie müssen sich überlegen, wie Sie Displaymanager am besten dazu bringen, es zu verwenden, aber:

Sie können Xorg wie gewohnt starten, wobei der gesamte Bildschirm in voller Auflösung angezeigt wird, z

Xorg :123 -ac

Der Schalter -ac deaktiviert einige (alle?) Xorgs-Einschränkungen, die das Zulassen von Clients betreffen können. Dann starten Sie Xephyr als einzigen Client (möglicherweise möchten Sie die als -screen-Argument übergebene Auflösung an Ihre Bedürfnisse anpassen):

DISPLAY=:123 Xephyr :0 -screen 1720x1200

Xephyr ist eine Art "Overlay-Xserver", der wie jeder andere Xserver mit Clients interagiert. Statt sich jedoch um das Rendern und Eingeben zu kümmern (der Teil, dem der Benutzer gegenübersteht), verlässt sich Xephyr dazu auf einen anderen Xserver.

Wie Sie diese Befehle kombinieren, hängt stark von Ihrem Anwendungsfall ab. Im Allgemeinen können Sie in Anwendungen wie Session-Managern einen Befehl zum Aufrufen eines X-Servers eingeben.

Was ich getan habe, um es auszuprobieren:

/root/.xinitrcMit dem Inhalt erstellen

Xephyr :0 -ac -once -query myxdmcphost -screen 1400x1200`

wo 1400 ist meine Bildschirmbreite -200 Pixel.

Dann starte ich xinit -- :123 -my -usual -xorg -options -for -my -computerund erhalte als Ergebnis einen Anmeldebildschirm und eine Sitzung, die tatsächlich meinen gesamten Bildschirm verwendet, aber eine 200 Pixel breite Spalte auf der rechten Seite.

Um den gleichen Effekt für z. B. GDM zu erzielen, müssten Sie den xinitBefehl mehrmals in der gdm.confas -Methode eingeben, um einen X-Server aufzurufen. Aber ich kann dir nicht sagen, wie ich das machen soll.

Bananguin
quelle
1
Xephyr unterstützt keine OpenGL-Hardwarebeschleunigung und ist nicht für moderne DEs oder Spiele geeignet.
Rok Kralj