Wenn zwei oder mehr Monitore zusammenarbeiten, gibt es eine Möglichkeit, einen einzelnen Monitor in den Standby- / Suspend-Modus zu versetzen, indem Sie einen Befehl wie den folgenden xset dpms force suspend
eingeben : ? oder eine Zeit für diesen Zweck festlegen wie: xset dpms 100 0 0
Welche funktioniert auf diesen Monitoren separat?
Ich habe zwei Monitore, die zusammen arbeiten, eDP1 (Mein Laptop) und VGA1 (Ein externer Monitor).
Ich möchte, dass jeder von ihnen separat in den Suspend / Standby-Modus wechselt, wenn ich nicht direkt mit ihnen interagiere. Angenommen, ich schaue einen Film auf VGA1 und eDP1 tut anderthalb Stunden lang nichts.
Ich bin nicht daran interessiert, es zu verwenden, xrandor --off --output eDP1
weil es nicht schnell genug ist, um damit zu arbeiten.
Ich möchte, dass mein Monitor mit einer einfachen Mausbewegung betriebsbereit ist, damit ich schnell zwischen ihnen wechseln kann.
- Laufen: Ubuntu 18.04
- Fenstermanager: OpenBox
Antworten:
Die Steuerung einzelner Monitore ist mit xset (und X11 tatsächlich) nicht möglich.
Wie der Titel schon sagt, ist dies aus Gründen des Aufbaus
xset
und der verwendeten X11-Funktionen nicht möglich . Wenn wir uns den Quellcode ansehen,xset
ruftDPMSForceLevel(dpy,DPMSModeSuspend)
( Zeile 557 ) auf, und die Anzeigevariabledpy
stammt von derXOpenDisplay()
Funktion ( Zeile 203 ), und das ist per Definition :Mit anderen Worten, werden
xset
Einstellungen global auf die gesamte Anzeige angewendet, nicht auf einzelne Bildschirme. Es wäre notwendig, denxset
Quellcode zu ändern , damit dies funktioniert. DPMS-Erweiterungen selbst scheinen meist nur die gesamte Anzeige aufzurufen, nicht einzelne Bildschirme. Daher ist es nicht möglich, mit der X11-Bibliothek benutzerdefinierten Code zu schreiben.Die manuelle Steuerung dieser Einstellung über das
/sys
Subsystem scheint ebenfalls nicht zu funktionierenBildschirme werden auch aus dem DPMS-Modus entfernt, wenn Tasten- oder Mausereignisse auftreten. Wenn Sie also Ihre Maus bewegen oder die Tastatur verwenden möchten, führt eine dieser Aktionen dazu, dass der Monitor den DPMS-Modus verlässt.
Alternative Problemumgehungen
Die beste Alternative (und tatsächlich physisch funktionierende Lösung) ist
xrandr
- sie könnte verwendet werden, um die einzelnen "Ausgänge" zu steuern. Im Speziellen,schaltet diesen Ausgang aus. Ja, Sie haben erwähnt, dass Sie diese Lösung nicht verwenden möchten, da sie nicht schnell genug ist. Bisher ist sie jedoch die beste auf dem Markt. Es hat einige Vorteile:
xset
Das
xrandr --output VGA-1 --brightness 0.1
wird der Bildschirm in einer solchen Art und Weise einfärben , dass es scheint, aber sich selbst--brightness
eine Software - Lösung ist, so dass die Anzeige tatsächlich nicht auf Hardware - Ebene gedimmt, noch ist es auf Hardware - Ebene aus. Es macht jedoch die Aufgabe, einen Bildschirm auszublenden, und ist auch resistent gegen Schlüssel- / Mausereignisse.Ich habe mir den Quellcode von Mate- und Budgie-Bildschirmschonern angesehen, die beide Gabeln von GNOME-Bildschirmschonern sind. In beiden Fällen scheinen sie jedoch eine Softwarelösung zu sein, da DPMS im Quellcode nicht erwähnt wird.
quelle
xrandr --off
für jetztxrandr -off
der Monitor überhaupt ausgeschaltet wird. Es könnte dasselbe sein wiebrightness
auf Null gesetzt? Was ein weiteres Problem ist Ich habe ein Programm, das rund um die Uhr läuft und Helligkeit und Gamma für 3 Monitore individuell einstellt, was selbst Windows nicht kann. Ich bin mir nicht sicher, ob Nachtlicht, Rotverschiebung oder Fluss es tun. Auf jeden Fall könnten diese Programme von xrandr off durcheinander gebracht werden. Entschuldigen Sie, dass Sie Ihre Antwort mit Spekulationen entführt haben :)Jahrelang hatte ich meinen Laptop so eingerichtet, dass bei geschlossenem Deckel der Laptop hängen blieb und externe Monitore leer waren.
Aus dem Grund, dass Sie ein Video 90 Minuten lang auf einem externen Monitor ansehen und den Laptop-Bildschirm leer lassen möchten, habe ich die Option zum Schließen des Deckels auf "Nichts tun" geändert:
Ich verwende DPMS nicht für externe Monitore, aber Sie können Ihre Einstellungen mit dem folgenden
xset q
Befehl überprüfen :Beachten Sie diese Zeilen:
prefer blanking: no
Beachten Sie auch diese Zeilen:
DPMS is enabled
den Monitor wahrscheinlich auf Wunsch einstellenStandby
.Hoffentlich haben andere Benutzer diese Optionen verwendet und eine detaillierte Antwort für Sie veröffentlicht.
quelle
Wie wäre es einfach den Laptop zu schließen?
Warum?
Diese beiden Monitore bilden einen Anzeigebereich. Wenn Sie also einen ausschalten, treten eine Reihe von Problemen auf, z. B. das Neuzeichnen des Bildschirms, das Verschieben von Anwendungen auf den Hauptmonitor, ...
(Ich bin diesen Weg vor ein paar Jahren gegangen und die einzige zuverlässige Möglichkeit, das zu tun, was Sie tun möchten, besteht darin, den Knopf auf dem externen Monitor zu drücken oder den Laptop zu schließen.)
Stellen Sie einfach sicher, dass Sie diese Energieeinstellungen einstellen mit
gsettings set
:quelle
Temporärer Kommentar
xrandr
. Bei einem längeren Test hat das ziemlich schlecht geklappt. Nicht so sehr schlug das Ausschalten fehl, aber bei der Reaktivierung des Bildschirms war das Bildschirmlayout völlig durcheinander. Ich würde es gerne posten, um zu sehen, ob es in Ihrem Fall funktioniert, aber mein Rat ist, es nicht zu verwenden.Im Skript habe ich stattdessen wieder die Helligkeit auf Null gesetzt.
Was habe ich dann in dieser Version geändert?
Die Leerlaufzeit wird jetzt standardmäßig sowohl durch Tastatur- als auch durch Mausaktivität definiert. Das Aufwachen wird auch von beiden gemacht.
Inaktiven Bildschirm automatisch dimmen
Wie meine Kollegen sagten, ist es eine Herausforderung, die Bildschirme separat von cli auszuschalten, und ich habe auch keine Option gefunden.
Was ich gefunden habe, ist eine Möglichkeit, alle Bildschirme außer dem, auf dem sich die Maus befindet, nach x Zeit automatisch zu dimmen .
Auf geht's
Wie stellt man das ein
Die Einrichtung ist unkompliziert:
Stellen Sie sicher , haben Sie beide
python3-gi
undxprintidle
installiertKopieren Sie das obige Skript in eine leere Datei, speichern Sie es als
dim_inactive
und machen Sie es ausführbarFühren Sie es mit dem folgenden Befehl aus:
ein Beispiel:
Dimmt alle Bildschirme ab, auf denen sich die Maus nach zwei Minuten nicht befindet
Zusätzliche Informationen / Erklärung
quelle
xrandr --off
ich denke.xrandr --off
das würde ich in diesem Fall bevorzugen. Zumal die VGA-Hintergrundbeleuchtung nicht softwaregesteuert werden kann.1
unter keinen Umständen zurück. Wenn ich über die Tastatur mit dem externen Display interagiere und sich die Maus im Hauptdisplay befindet, wird das externe Display nach der Leerlaufzeit schwarz. Wenn ich keine Interaktion mit der Hauptanzeige habe, aber die Maus da ist, tut sie dort nichts und wenn ich die Maus auf eine andere Hauptanzeige bewege, wird eine unmittelbar schwarz.