LoginSignup
2
1

More than 5 years have passed since last update.

Linuxでの画面輝度調整のスクリプト

Last updated at Posted at 2017-12-25

はじめに

この記事は学生アドベントカレンダー2017の記事です。

上記のアドベントカレンダーを作った張本人であるのにもかかわらず、記事の投稿が遅れてしまい申し訳ありません。
ブログは遅れましたが、引っ越しの片付けは進みました。

作業する場所づくり

まず、PATHが通っているかを確認します。
echo $PATH
で確認できます。
すでに通っているPATH以外を追加したい場合は
export $PATH:追加したいディレクトリの絶対PATH
export $PATH:/usr/local/bin
みたいな感じでできます。

輝度の変更

輝度の変更は

sudo echo 80 > /sys/class/backlight/intel_backlight/brightness

でできます。
また、どのくらいまで輝度をあげられるのかは。

cat /sys/class/backlight/intel_backlight/max_brightness

で見れます。一応最大輝度超えないように気をつけてください。
これでターミナルから輝度調整できますね。

ショートカットキーに割り当てる

ショートカットキーに割り当てて、輝度を調整するためには押した回数だけ輝度が変化する必要があります。
なので上記のように絶対的な数値を入力するのではなく、現在の値からどれだけ変化するかの値を入力する必要があります。

僕が今使ってるxfce4だと、ショートカットキーに割り当てたコマンドに引数渡せないけど、オプションなら行けるっぽいので、わざわざオプションつけてあげました。

#!/bin/bash
#画面輝度調整する奴

readonly BRIGHT_PATH='/sys/class/backlight/intel_backlight/brightness'
readonly MAX_BRIGHT_PATH='/sys/class/backlight/intel_backlight/max_brightness'
readonly MAX_BRIGHTNESS=$(( $(cat $MAX_BRIGHT_PATH) - 10 ))
readonly MIN_BRIGHTNESS=10


usage() {
  echo '頑張って'
  exit 0
}


check_uplim() {
  if [ $1 -ge $MAX_BRIGHTNESS  ]; then
    echo brightness is max now
    exit 1
  fi
  return 0
}

check_lolim() {
  if [ $1 -le $MIN_BRIGHTNESS ]; then
    echo brithness is min now
    exit 1
  fi
  return 0
}


brightness=$(cat $BRIGHT_PATH)

while getopts :udm OPT
do
  case $OPT in
    u) OPTION_u=True;;
    d) OPTION_d=True;;
    m) echo max brightness is $(cat $MAX_BRIGHT_PATH);;
    \?) usage;;
  esac
done

if [ "$OPTION_u" = "True" ]; then
  check_uplim $brightness
  brightness=$(( brightness += 10 ))
  echo $brightness > $BRIGHT_PATH
  echo brightness is $(cat $BRIGHT_PATH) now
  exit 0
fi

if [ "$OPTION_d" = "True" ]; then
  check_lolim $brightness
  brightness=$(( brightness -= 10 ))
  echo $brightness > $BRIGHT_PATH
  echo brightness is $(cat $BRIGHT_PATH) now
  exit 0
fi

これを先ほどのPATHが通ってるディレクトリに配置してください。
その後、sudo chmod 755 ~~~と権限付与をして、
sudo chmod 777 /sys/class/backlight/intel_backlight/brightness
こっちにも権限与えておきます。

これをキーボードショートカットキーに割り当てたら動いてくれました。やったね。

最後に

今回、bashを使ってスクリプト書いたの初めてだったので、新鮮で楽しかったです。なんか間違っているところや、普通こう書くよ。みたいなのがあれば教えてください。

2
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1