読者です 読者をやめる 読者になる 読者になる

堕(惰)プログラマ開発記録

タイトル変えようかなとも思ってるけれど,思い浮かばない

X240の音量キー/バックライトキー

ThinkPad Linux

なぜかX240の音量キーと明るさキーがうまく動作しないので,acpidでごにょごにょやってみました.

# pacman -S acpid
# systemctl enable acpid.service
# systemctl start acpid.service

音量キー

/etc/acpi/events/vol_d

event=button/volumedown
action=/etc/acpi/handlers/vol -


/etc/acpi/events/vol_u

event=button/volumedown
action=/etc/acpi/handlers/vol +


/etc/acpi/handlers/vol

#!/bin/sh
case $1 in
  -) sudo -u godai_0519 amixer set Master 10%-;;
  +) sudo -u godai_0519 amixer set Master 10%+;;
esac


で,最後に

# chmod +x /etc/acpi/handlers/vol


こんな感じで動きました.
/etc/acpi/handlers/volに"sudo -u"を使って自分のユーザから無理やり調節する実装は,汚いような気がするのでなんとかしたいものです.

バックライト

ついでバックライト.キーを連打しないと明るさが変わらないので,同様に書いてみました.ただ,他のショートカットキーが同時に動作するようで,明るさの値がブレます.どれだろ.
とりあえず,KDE

「Sortcuts and Gesture」→「Global Keyboard Shortcuts」→「KDE Daemon」

の中にある設定項目によってKDE側のショートカットを切れますが,やっぱり他の何かが動いてる模様.


/etc/acpi/events/bl_d

event=video/brightnessdown
action=/etc/acpi/handlers/bl -


/etc/acpi/events/bl_u

event=video/brightnessup
action=/etc/acpi/handlers/bl +


/etc/acpi/handlers/bl

#!/bin/sh
bl_dev=/sys/class/backlight/intel_backlight

step=50
max=$((`cat $bl_dev/max_brightness`))
now=$((`cat $bl_dev/brightness`))
new=$(($now$1$step))

if [ $new -ge $max ]; then
    new=$max
fi
if [ $new -le 1 ]; then
    new=1
fi

echo $new > $bl_dev/brightness


こちらも最後に実行権与えて

# chmod +x /etc/acpi/handlers/bl

うーん.微妙.