クロスプラットフォームで画面の明るさを変えられる @neos21/brightness を作った
Windows・Mac・Linux 環境で、CLI から画面の明るさを変更できる npm パッケージ @neos21/brightness
を作った。
# インストール
$ npm install -g @neos21/brightness
# 明るさを確認する
$ brightness get
# 明るさを設定する (0〜100)
$ brightness set 50
こんな感じで使える。
内部実装は「npm パッケージ」とは呼び難い、child_process#exec()
を多用した作りになっている。OS ごとに操作方法が全く異なる。
- 明るさの取得
- MacOS :
ioreg
コマンドの結果より抽出 - Linux :
/sys/class/backlight
配下の擬似ファイルより取得 - Windows : WMIC で取得
- MacOS :
- 明るさの変更
- MacOS : osx-brightness が使っていたバイナリを利用
- Linux :
/sys/class/backlight
配下の擬似ファイルに書き込むことで設定 - Windows :
nircmd.exe
を同梱し、コレのsetbrightness
サブコマンドを実行して設定
という感じだ。
他に参考にしたのは以下あたり。
- kevva/brightness: Change screen brightness
- Jabbath/node-brightness: Node module for changing screen brightness on laptops and other portable devices
- Windows で
powercfg
コマンドを利用している
- Windows で
また、MacOS では osascript
で明るさを段階的に操作する方法もある。fn
とファンクションキーのコンビネーション操作を再現しているワケだ。
# 明るさ 1 増やす
$ osascript -e 'tell application "System Events"' -e 'key code 144' -e ' end tell'
# 明るさ 1 減らす
$ osascript -e 'tell application "System Events"' -e 'key code 145' -e ' end tell'
作ったはいいけど使い道が特にない。w