mewph’s blog

QOL向上に取り組むEuph吹きの奮闘記

ラズパイGUIからディスプレイ調整

明るさ変えるために、毎回ディスプレイのメニュー開いて、ボタンぽちぽちして…

まだるっこしい!

DDC/CI対応だったので、ddcutilをインストールしてショートカットから実行してみた
ラズパイ2と3しか動作確認してないらしかったけど、zeroでも普通に動く

やり方が日本語で全然引っかからないのでメモを残しておく

ddcutilインストール

公式マニュアル
Raspberry Pi - ddcutil Documentation

要約すると、

  1. config.txtにdtparam=i2c2_iknowwhatimdoingを追加
    • 既にopenGL等の導入でi2c-2が開放済なら不要
  2. apt-get install ddcutil

以上

若干ややこしいが、configでi2cを有効にする必要はない

コマンドのメモ

機械翻訳だとちんぷんかんぷんだったので、使うやつだけ抜粋

  • capabilities
    • 設定項目のリスト
    • 16進番号と内容をセットで表示
  • getvcp xx
    • xx(項目番号)の現在値、最小値、最大値を表示
  • --terse
    • getvcpの出力結果を簡略版にする
  • setvcp xx yy
    • xxの現在値をyy(値)に更新する
  • --noverify
    • setvcpをちょっと速くする
  • --bus 2 --nodetect
    • モニタ検索をスキップしてちょっと速くする

スクリプトを書く

初心者なため試行錯誤
なんとか動いたので、実行権限も忘れずに付けてやる(最初忘れてた)

最初に書いたバックライトレベルを現在値から5下げる処理

val=$(ddcutil getvcp 10)
val=`echo "$val" | sed -e "s/^.*current value = *\(.*\),.*$/\1/g"`
val=`expr $val \- 5`
ddcutil setvcp 10 "$val"

実行してみると3秒近くかかる
だめね、やり直し!

改良版

val=$(ddcutil getvcp 10 --bus 2 --nodetect --terse)
val=${val#*C }
val=${val% *}
val=$(( val - 5 ))
ddcutil setvcp 10 "$val" --bus 2 --nodetect --noverify

色々変えたけど、ループも無いし、ddcutilのコマンド最適化以外はおまじない
なんとか1秒くらい短くなった

もっと速くならんかな…

ランチャーに登録

いつでも使えるようにランチャーからショートカットを起動できるようにする

ここにある通りに.desktopファイルを作る
How to add a shell script to launcher as shortcut - Ask Ubuntu
投稿日は古いけどやり方そのまま

ランチャー登録はドラッグでは受け付けないため、右クリックメニューから設定開いて追加
このときにshファイルに実行権限が無いと登録できない
できなかったw


これで一応明るさが変えられるようになった
ただしもっさり
1回だけ反応無視してバシバシ連打してみたら、OSが止まったw
無理させてごめんよ…