Linuxでブルーライトカット

続編があるのでそちらも併せてお読みください。

はじめに

最初の記事ですが特に気負うこともなく書いていこうと思います。さて、ブルーライトカットは医学的根拠はそれほどはっきりしていないらしいですが個人的には確かに目が疲れにくくなるような気がしているのですでにWindowsAndroidにはブルーライトカットの設定をしていました。そこで当然最近よく使っているLinux Mintでもブルーライトカットしようと思ったのですが、いろいろと苦労したのでその様子をメモしておきます。

まずは検索

Linux ブルーライトカット」で検索すると、Redshiftやf.luxといったソフトの名前が出てきました。しかしよく見てみると、いずれもブルーライトカットではなく色温度を下げる(青だけでなく緑色も減って画面が赤っぽくなる)ソフトでした。赤色もなんとなく目を疲れさせるような気が個人的にはしていたので却下。

闇へ

すこし脇道に逸れるので興味ない人は飛ばしてください。

最初、ブルーライトカットをしようとした時に、まずはubuntuの「色」の設定を見ました(Windowsでもそういう項目があってそこでブルーライトカットができたからです)。そこに「カラープロファイル」と呼ばれる.iccという拡張子を持つファイルを設定する項目がありました。これでブルーライトカットできるだろうと思ったのですが、PCにデフォルトで入っていたものは色温度を下げるものと画面をさらに青くするものだけという酷い有様でした。

このiccファイルというのはどうやら調べてみるとInternational Color Consortiumという団体が策定した仕様に則ったバイナリファイルらしい(つまり、この団体は自分の略称を拡張子につけた)ということがわかりました。その仕様は英語で書かれていたんですがそれっぽいところを読んでみました。しかしそこを変えてもエラーが出るだけで結局変わらず、そもそもデフォルトの色温度下げるプロファイル(5500K、6000Kなどがありました)の差分を取ってみると、違うのはvcgtという名前の長大なタグの部分のみ。

vcgtというのをキーワードにしてみると、どうやらAppleのメーカー拡張タグらしいということがわかりました。これだからAppleは。

そしてこのvcgtタグで探している時に答えに行き当たりました

ガンマ調整

結論から言えば、「linux ガンマ調整」で調べるのが正しかったようです。これで、「xgamma -bgamma 0.7」というまさに僕が求めていたコマンドが一発で出てきました。これを「自動起動のアプリケーション」に登録することでひとまず目的は達成されました。

confに書きたい

ここで終えておけばよかったのですが、なんか設定ファイルに書いたほうがよくない?という感情が出てきてしまい、いろいろ調べました。xorg.confのSection "Monitor"に書けばいいらしいですが、xorg.confの生成などやってみてもエラーが出てうまく行きませんでした。さらに深く調べてみると、どうやらLinuxを入れてるPCがNVIDIAGPUのため、nouveauというオープンソースのドライバの代わりにNVIDIA謹製のnvidiaというドライバを入れるといいらしい。というわけでインストールしました。インストールが一筋縄では行かなくて、一旦nouveauをオフにして起動してからやり直せという指示があったのですが、nouveauをオフにしてシャットダウンしたあと次の日かなんかに何も考えずに再起動したら起動しなくてかなり焦りました(頭が悪い)。リカバリモードからドライバのインストーラを起動してやったらうまくいきました。(なお、nouveauがオフになっていない状態でもリカバリモードではnouveauは使われないので、自分のpcが起動しない状態になっているのが不安だという人はnouveauをオフにしろという指示に従わず最初からリカバリーモードで起動してインストールしましょう。)すると「NVIDIA X Server Settings」の設定画面でガンマを(再起動後も有効なように)変えられるようになりました。万歳。

オチ

その後調べたら、ソフトウェアに青い光を減らすのは電力削減には役に立たずむしろ効率が悪くなるのでモニター側の設定でやったほうがいいらしいです。そう言われてみてみたら、ありました…「ゲイン」の項目を色ごとに設定することができたので青のゲインを減らしました。

今までの苦労は何だったのか。