ejoneco's devlog

ejo090がなんかやったときにまとめるブログ

xbacklightが動かなかったのでlightを使った

なんか手元にX260があるのでとりあえずDebian stretchを突っこんでいろいろ設定してる途中。
i3wmを導入したはいいけどバックライトのプラマイキーがうまく動いてくれなかったからなんとかしたやつ。

そもそも i3wm ってなに

i3(ググラビリティが低いので以後i3wmって書くね)はタイル型ウィンドウマネージャです。
なんかよくあるウィンドウが出てきて重ねられたりするのとは違って全部綺麗に整列させることができます。キーボード操作が主軸のため万人が使いやすいわけではないと思うので特になにも言いません。

ウィンドウマネージャはi3wmだけどディスプレイマネージャはGDM(GNOME Display Manager)のまんまです。

何が問題なの

プリイン(?)のデスクトップ環境だったGNOME Shellのときはファンクションキー(以下Fnキー)による音量変更・ディスプレイの輝度変更をよしなにやってくれていた。
しかし、i3wmの導入によりそのへんを自分で設定する必要が出てきた。
そこでインターネットに転がる先人たちの知恵を活用しようと思い、ここを見つけた。
i3 Window Manager を使ってみて分かったおすすめ設定集
ここに音量変更と輝度変更についての知見が書いてあるのでその通りにやった。
しかし、音量変更は出来ても輝度変更ができなかった。
輝度変更できないのはつらいのでなんとかしたい。

なにをした

まず、xbacklightコマンドでバックライトの操作が可能か確認した。
xbacklight -dec 10 とかやるとバックライトの輝度を10%下げることができる。
しかし、当方の環境だと
No outputs have backlight property
と言われてしまった。rootでも同じ。
ただ、普通にコントローラは存在した。/sys/class/backlight/intel_backlight にあるようだ。
/sys/class/backlight/intel_backlight/brightness をcatしたりするとちゃんと表示してくれる。

ググったりすると「い つ も の」と言いたくなる(とてもありがたい)ArchWikiが引っかかった。
バックライト - ArchWiki
xbacklight で "No outputs have backlight property." と表示される場合は FS#27677 を見て下さい。とのことなので見てみましたが、どうやらバグかなにかなのか…みたいな感じで(でももう直ってるみたいなこと書いてる気がするけど…)した。
個人的に動いてくれればなんでもいいや…みたいな雑なことを考えているので、さきほどのArchWikiで紹介されていたlightを使うことに。
アチョーリナクスにはAURがあるけどその他には使われないみたいなのでInstallationの言う通りに。
適当なディレクトリにgit cloneしてきて、makeして、make installした。

あとはUsageに書いてある通りに操作できる。
light -G で現在の輝度(%)を表示。
light -A 5 で5%ずつ明るくできてlight -U 5で5%ずつ暗くできる。
適当にlight -U 5してると画面が真っ暗になって全くなんもわからんくなる。
ボタンに割り当ててもこれでは大変なので最低輝度を設定する。
light -L で操作の対象となるコントローラをまず表示する。
ここでは intel_backlight が表示されるので、これに対して最低輝度を設定する。
ここで設定可能な輝度はパーセンテージではなくraw valueであることに注意されたい。
最低輝度を5%にしようとしたとき、最大輝度が852である当端末では42.6を指定することで最低輝度が5%となる。
そのあたりの刻みや最低輝度は各自自由に設定してね。

light -Scrs "intel_backlight" 42.6intel_backlightの最低輝度を42.6にすることができる。
これで最低輝度が5%に設定できたため、輝度をマイナスしていっても真っ暗になることはない。
加えて、オプションなどはUsageに書いてある通りなので詳しくは説明しない。

さて、あとはi3wmのconfigに記述するだけとなる。

1
2
3
# Screen brightness controls
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness

を追加することで5%ずつの変更が可能となった。めでたしめでたし。

Proudly powered by Hexo and Theme by Hacker
© 2019 ejo090