バックライトをオフにして LCD をオンのままにするにはどうすればいいですか?

バックライトをオフにして LCD をオンのままにするにはどうすればいいですか?

明るさコントロールの最小輝度がゼロでないラップトップで、明るさをゼロに設定するにはどうすればよいですか?

このソリューションは XIe に関係なく機能するはずであり、仮想端末でも機能するはずです。

答え1

Intel チップセットを搭載したラップトップの世界では、LVDS 接続パネルと eDP 接続パネルが分かれているようです。

電子DP:

echo 4 > /sys/class/backlight/intel_backlight/bl_power

…バックライトをオフにする必要があります。

echo 0 > /sys/class/backlight/intel_backlight/bl_power

もう一度電源を入れてください。

LVDS:

Thinkpad X201 および X201 タブレットのバックライトを sysfs 経由でオフにできないことがわかりました (bl_power は何も行いません。どうやら、これは eDP 固有のようです)。

このページLinux カーネルのバックライト制御の複雑な歴史について非常に詳しく説明されています。TL;DR:

i915 は、v3.18 以降、eDP パネル (LVDS ではない) の bl_power をサポートしています。

しかし、intel_backlightというツールを使ってバックライトをオフにすることができました。インテル GPU ツールどうやらこれは生のレジスタに書き込むため、ルートが必要です。

intel_backlight 0

...バックライトがオフになりました。明るさ調整コントロールで明るさを上げると、ここで再び有効になりました。

また、キーボードによって生成された ACPI イベント (私の場合は、fn+space、または) で起動するように接続したスクリプトも作成しました。button/zoomシステムでその ACPI イベントが使用されない場合は、acpi_listen を使用して、システムにあるイベントを見つける必要があります。

fnspace-backlightこれをトリガーするために、次のファイルを作成しました/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

また、実行可能としてマークされた というファイルも作成しました/etc/acpi/actions/toggle-lcd-light.sh。これにより、以前に設定した明るさレベルを変更せずにバックライトを切り替えることができ、一時的な値が に保存されます/brightness。ACPI イベントはアクションをルートとして実行するため、注意してください。

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

さらに面白いことに、intel_backlight を少し変更するだけで、信じられないほど細かくバックライトを制御できます。引数を整数ではなく浮動小数点数として読み取り、浮動小数点演算を行うように変更するには、数行のコードを調整するだけで済み、sysfs で取得できる最小値よりも低い値も含め、驚くほど正確な明るさの変更が可能になります。

答え2

X Windowsから

X Windows からアプリケーションを使用しxbacklightて、画面の明るさをパーセントで取得および設定できます。

現在のレベル

$ xbacklight -get
100.000000

75%に設定

$ xbacklight -set 75
$ xbacklight -get
73.333333

100%に戻す

$ xbacklight -set 100
$ xbacklight -get
100.000000

コンソールから

仮想端末で同様のことを実現するには、ファイルシステムを介して ACPI 設定を操作する必要があるでしょう/sys

暗くする

$ echo "10" | sudo tee /sys/class/backlight/acpi_video0/brightness 
10

完全な明るさ

$ echo "15" | sudo tee /sys/class/backlight/acpi_video0/brightness 
15

これについては実際に試してみる必要があります。明るさの範囲は 0 ~ 9 または 0 ~ 15 で、最終的にはラップトップによって決まると思います。

どれも効果がないのですか?

これら 2 つのオプションのどちらもニーズに合わない場合は、ArchLinux Wiki の次のトピックを参照してください。バックライトこの記事には、これを実現するために私がこれまでに見たあらゆる方法が記載されています。

参考文献

関連情報