web-dev-qa-db-ja.com

i3で画面の明るさを制御する

i3で画面の明るさを制御したいので、Fnキーが付属しているIntelラップトップ目的。これらのキーは、他のDEと一緒に機能します。

まず、利用可能なデバイスがIntelであることを確認します。

$ ls -l /sys/class/backlight/
total 0
lrwxrwxrwx 1 root root 0 juin  24 18:26 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight

別のフォーラム プログラムxbacklightは、i3で輝度を制御する手段として提案されています。ただし、これまでに試したラップトップでは失敗します。

$ xbacklight -inc 10
No outputs have backlight property

i3で明るさを制御する他の方法はありますか?

1
Luís de Sousa

画面の明るさを変更するには、xrandrを使用できます。

これを行うには、次のようにします。

xrandr -q | grep ' connected' | head -n 1 | cut -d ' ' -f1

これにより、接続されているすべてのモニターが返されます(たとえば、LVDS-1またはDVI-D-0など)。

次に、画面の明るさを変更するには、次のコマンドを実行します(DVI-D-0を前のコマンド出力で置き換えます)。

xrandr --output DVI-D-0 --brightness 0.7

たとえば、このコマンドは明るさを70%に設定します。

お役に立てれば幸いです。

7
Jae Beojkkoch

brightnessctlactualデバイスの明るさを設定するために使用できます。

3
leafmeal

私の古い回答から質問へのコピー: XF86MonBrightnessUp/XF86MonBrightnessDown特殊キーが機能しない


Edit:下記のように、これらが機能するためにはacpiがマシンにインストールされている必要があります:)

これは古い質問ですが、答えは他の人を助けるかもしれません。ラップトップにi3wmを新しくインストールしたときに、何らかの理由でXF86MonBrightnessUp/Downキーが登録されていなかった(xevで確認した)問題が発生しました。私がやったことは、押されたキーに対応するacpiアクションとイベントを作成することです。

以下は、それぞれ/etc/acpi/actions/etc/acpi/eventsで定義したアクション/イベントです。

行動

/ etc/acpi/actions/bl-down.sh

#!/bin/sh

bl_device=/sys/class/backlight/acpi_video0/brightness
echo $(($(cat $bl_device)-1)) | Sudo tee $bl_device

/ etc/acpi/actions/bl-up.sh

#!/bin/sh

bl_device=/sys/class/backlight/acpi_video0/brightness
echo $(($(cat $bl_device)+1)) | Sudo tee $bl_device

イベント

/ etc/acpi/events/bl-down

event=video/brightnessdown BRTDN 00000087 00000000
action=/etc/acpi/actions/bl-down.sh

/ etc/acpi/events/bl-up

event=video/brightnessup BRTUP 00000086 00000000
action=/etc/acpi/actions/bl-up.sh

ターミナルでacpi_listenを使用し、関連するキーの組み合わせを押すことで、brightnessup/down acpiイベントコードを確認できます(たとえば、私にとっては、Fn +下矢印で明るさを下げます)。

最後に、acpidSudo /etc/init.d/acpid reloadで再起動することを忘れないでください

注:バックライトデバイスが/sys/class/backlight/acpi_video0とは別の場所で定義されている可能性があります-これはたまたま私の場所です。いじってみてください。

2
Try431

2 xbacklightがあります。 Archlinux(ディストリビューションでも同じかもしれません)では、1つはパッケージxorg-xbacklighthttps://xorg.freedesktop.org/ からソースされ、もう1つはacpilightソース https://gitlab.com/wavexx/acpilight から取得。一方が機能しない場合、おそらくもう一方が機能します。

xorg-xbacklightの説明:

RandRベースのバックライト制御アプリケーション

そしてacpilightリンクから:

一部の最新のラップトップでは、「XRandR」にディスプレイの明るさを設定する機能がない場合があります。この機能は、/ sys/class/backlight /を介してカーネルのACPIインターフェースに移動/統合されました。 「acpilight」は、「XRandR」の代わりにACPIインターフェースを使用するxbacklightコマンドのドロップイン置換を提供します

だから、あなたのxbacklightが動かない理由かもしれません。

0
JoL

以下は、xrandrに基づくbashスクリプトソリューションです。まず、echo 1.o > brightness.txtを使用して現在の輝度値を保存するファイルを作成します。これで、次のbashスクリプトを使用できます。

#!/bin/bash

BRIGHT=`cat brightness.txt`

if [ "$1" = '+' ]; then
    NEWBRIGHT=$(echo "$BRIGHT + 0.05" | bc)
    if [ "$(echo "$NEWBRIGHT > 1.0" | bc)" -eq 1 ]; then
        NEWBRIGHT='1.0'
    fi
Elif [ "$1" = '-' ]; then
    NEWBRIGHT=$(echo "$BRIGHT - 0.05" | bc)
    if [ "$(echo "$NEWBRIGHT < 0.0" | bc)" -eq 1 ]; then
        NEWBRIGHT='0.0'
    fi
fi

上記のスクリプトがbrightness.shであるとすると、次のように使用できます。

.\brightness.sh + #to increase brightness
.\brightness.sh - #to decrease brightness

また、i3を使用するため、これらのコマンドにキーをバインドできます。たとえば、次の行をi3-configに追加できます。

# change brightness of screen
mode "controls" {
        # These bindings trigger as soon as you enter the control mode
        bindsym j exec "~/Scripts/brightness.sh -"
        bindsym k exec "~/Scripts/brightness.sh +"
        # back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym space mode "default"
}

bindsym $mod+shift+semicolon mode "controls"

さらにこれらの行をi3-configに追加して、最後に使用した明るさの値から開始します。

exec "~/Scripts/brightness.sh -"
exec "~/Scripts/brightness.sh +"
0
Inspired_Blue