DPMS, halten Sie den Bildschirm ausgeschaltet, wenn der Deckel geschlossen ist

2558
Evan Teran

Ich habe einen Laptop, auf dem Linux läuft. In meiner xorg-Konfiguration habe ich DPMS eingerichtet, sodass sich der Bildschirm bei mehreren Ereignissen automatisch ausschaltet. Dazu muss ich folgendes Skript an ACPI-Lid-Open / Close-Events gebunden haben:

#!/bin/sh  for i in $(pidof X); do CMD=$(ps --no-heading $i)  XAUTH="$(echo $CMD | sed -n 's/.*-auth \(.*\)/\1/p')" DISPLAY="$(echo $CMD | sed -n 's/.* \(:[0-9]\) .*/\1/p')"  # turn the display off or back on export XAUTHORITY=$XAUTH /usr/bin/xset -display $DISPLAY dpms force $1 done 

Grundsätzlich benötigt dieses Skript einen Parameter ("Ein" oder "Aus"), durchläuft dann alle meine laufenden X-Sitzungen und schaltet den Monitor entweder ein oder aus.

Hier ist meine Ausgabe. Wenn ich den Deckel des Laptops schließe, wird der Bildschirm wie erwartet abgeschaltet. Wenn jedoch ein Mausereignis auftritt (z. B. wenn etwas in der Tabelle stößt ...), wird der Bildschirm wieder eingeschaltet, obwohl er geschlossen ist (ich kann das sehen Licht durch die Seite des Laptops).

Gibt es eine Möglichkeit, zu verhindern, dass sich der Bildschirm während eines Mausereignisses einschaltet, wenn der Deckel geschlossen ist?

0

5 Antworten auf die Frage

2
wrt

Möglicherweise können Sie mit xrandr etwas Magie erzeugen. zB etwas in der Richtung von

xrandr --out LVDS --off

um es auszuschalten, und

xrandr --output LVDS --auto

um es zurückzubringen. Ersetzen Sie LVDS durch den Namen der Ausgabe auf dem Bildschirm Ihres Laptops.

Der Nachteil dabei ist, dass es schwierig werden kann, wenn der Bildschirm nicht mehr mit Strom versorgt wird, wenn etwas schief geht.

Gibt es einen Vorschlag, was zu tun ist, wenn der Bildschirm weiter eingeschaltet wird, obwohl Sie ihn mit dem obigen Befehl xrandr ausgeschaltet haben? Mein Laptopbildschirm beschließt zufällig, sich wieder einzuschalten, und die Auflösung ist durcheinander. Bis dahin funktioniert alles einwandfrei. Es wäre also schön, wenn ich ihn zwingen könnte, aus dem Netz zu bleiben. pzkpfw vor 6 Jahren 0
2
harrymc

Fügen Sie der /etc/acpi/lid.shDatei die folgenden Zeilen hinzu :

#open
screenon
chvt 7
#close
chvt 12
screenoff

Dies schaltet auf die Konsole um, wenn der Deckel geschlossen ist, und verhindert, dass X Bewegungen der Maus erkennt.

An die Person, die dies 2017 abgelehnt hat: Denken Sie daran, dass diese Antwort aus dem Jahr 2009 stammt. harrymc vor 7 Jahren 0
1
cyril42e

Wenn Sie die Maus deaktivieren, können Sie dies mit xinput auf selektivere und sicherere Weise tun:

# open DISPLAY=:0.0 xinput set-int-prop 12 "Device Enabled" 8 1 # close DISPLAY=:0.0 xinput set-int-prop 12 "Device Enabled" 8 0 

Sie finden die ID (12 hier) bei: xinput --list

0
alpha1

Versuchen Sie es mit einer App wie Power Devil. KDE oder Gnome?

0
Nakedible

Es scheint ein bisschen schwierig zu sein, zu verhindern, dass X Aktivität signalisiert und DPMS deaktiviert, wenn Aktivitätsereignisse empfangen werden.

Da Sie sich aber bereits im Scripting-Bereich befinden, können Sie die USB-Geräte nur deaktivieren, wenn der Deckel geschlossen ist. Der Effekt könnte durch einfaches Entfernen von Modulen oder durch Suspendieren des USB-Geräts erzielt werden. So etwas könnte funktionieren:

echo suspend > /sys/bus/usb/devices/usb1/power/level 

Wenn dies funktioniert, empfängt Ihr X keine Ereignisse, wenn der Deckel geschlossen ist.

Dies ist ziemlich drastisch und scheint gefährlich zu sein. Möglicherweise sind andere USB-Geräte (Drucker, Memory Stick, GSM-Modem) angeschlossen, und das Beenden der Verbindung kann zu Problemen führen. sleske vor 13 Jahren 0