Wie stelle ich die Helligkeit auf Laptops auf Null ein, deren Mindesthelligkeitsregler von Null verschieden ist?
Die Lösung sollte unabhängig von XIe funktionieren, sie sollte auch in den virtuellen Terminals funktionieren.
Antwort1
Im Bereich der Laptops mit Intel-Chipsätzen scheint es eine Trennung zwischen den per LVDS und eDP angeschlossenen Panels zu geben:
eDP:
echo 4 > /sys/class/backlight/intel_backlight/bl_power
…sollte die Hintergrundbeleuchtung ausschalten.
echo 0 > /sys/class/backlight/intel_backlight/bl_power
…sollte es wieder einschalten.
LVDS:
Ich habe festgestellt, dass es nicht möglich ist, die Hintergrundbeleuchtung meines Thinkpad X201 und meiner X201-Tablets über sysfs auszuschalten (bl_power bewirkt nichts; anscheinend ist es eDP-spezifisch).
Diese Seiteenthält eine sehr ausführliche Beschreibung der verworrenen Geschichte der Hintergrundbeleuchtungssteuerung im Linux-Kernel. TL;DR:
i915 unterstützt bl_power für eDP-Panels (aber nicht LVDS) ab Version 3.18.
JEDOCH,Ich konnte die Hintergrundbeleuchtung mithilfe eines Tools namens intel_backlight
ausschaltenIntel-GPU-Tools. Dies erfordert Root, da es anscheinend in ein Rohregister schreibt.
intel_backlight 0
...hat bei mir die Hintergrundbeleuchtung ausgeschaltet. Hier wurde sie durch Erhöhen der Helligkeitsregelung wieder aktiviert.
Ich habe außerdem ein Skript geschrieben, das ich angeschlossen habe, um es bei einem über die Tastatur generierten ACPI-Ereignis (in meinem Fall Fn+Leertaste oder ) auszulösen button/zoom
. Wenn Ihr System dieses ACPI-Ereignis nicht verwendet, müssen Sie mit acpi_listen ein Ereignis finden, das Ihr System hat.
Um es auszulösen, habe ich eine Datei mit dem Namen fnspace-backlight
erstellt /etc/acpi/events
:
# Wyatt Ward
# hook for magnify acpi event (fn+space)
# toggle LCD backlight on/off
event=button/zoom
action=/etc/acpi/actions/toggle-lcd-light.sh
Ich habe außerdem eine Datei namens erstellt /etc/acpi/actions/toggle-lcd-light.sh
, die als ausführbar gekennzeichnet ist. Damit kann ich die Hintergrundbeleuchtung umschalten, ohne die zuvor eingestellte Helligkeitsstufe zu ändern, und den temporären Wert in speichern /brightness
. Da ACPI-Ereignisse Aktionen als Root ausführen, seien Sie vorsichtig.
#! /bin/bash
BRIGHTSAVEFILE="/brightness"
BRIGHTSYSFS="/sys/class/backlight/acpi_video0/brightness"
# is the light on or off?
INTEL_BACKLIGHT="/usr/bin/intel_backlight"
light_state=$("$INTEL_BACKLIGHT" | sed 's/current backlight value: //g'|sed 's/%//g')
echo "light: ""$light_state"
if [ "$light_state" -eq 0 ]; then
cat "$BRIGHTSAVEFILE" > "$BRIGHTSYSFS"
else
# back up current brightness level
cat "$BRIGHTSYSFS" > "$BRIGHTSAVEFILE"
# turn off backlight
"$INTEL_BACKLIGHT" 0
fi
Und noch eine lustige Anmerkung: Sie können die Hintergrundbeleuchtung unglaublich feinfühlig steuern, indem Sie intel_backlight leicht modifizieren. Wenn Sie es so ändern, dass es Argumente als Gleitkommazahlen statt als Ganzzahlen liest und Gleitkommaarithmetik ausführt, müssen Sie nur ein paar Codezeilen anpassen und können unglaublich präzise Helligkeitsänderungen vornehmen, auch solche, die niedriger sind als das Minimum, das Sie über sysfs erreichen können.
Antwort2
Von X Windows
Unter X Windows können Sie die Anwendung verwenden, xbacklight
um die prozentuale Helligkeit für Ihren Bildschirm abzurufen und einzustellen.
Beispiel
Aktuelles Level
$ xbacklight -get
100.000000
auf 75 % eingestellt
$ xbacklight -set 75
$ xbacklight -get
73.333333
auf 100% zurückgesetzt
$ xbacklight -set 100
$ xbacklight -get
100.000000
Von der Konsole aus
Um etwas Ähnliches für ein virtuelles Terminal zu erreichen, müssen Sie wahrscheinlich über das /sys
Dateisystem mit den ACPI-Einstellungen interagieren.
Beispiel
verdunkelt es
$ echo "10" | sudo tee /sys/class/backlight/acpi_video0/brightness
10
volle Helligkeit
$ echo "15" | sudo tee /sys/class/backlight/acpi_video0/brightness
15
Damit müssen Sie herumspielen, die Helligkeitseinstellung kann zwischen 0–9 oder 0–15 liegen, ich glaube, das hängt letztendlich von Ihrem Laptop ab.
Nichts davon funktioniert?
Wenn keine dieser beiden Optionen Ihren Anforderungen entspricht, werfen Sie einen Blick auf das Thema des ArchLinux-Wikis mit dem Titel:Hintergrundbeleuchtung. Dieser Artikel enthält jede Methode, die ich jemals gesehen habe, um das zu erreichen!