デスクトップ環境のカスタマイズは色々ありますが、中でもお手軽に自分好みの色を出せるのが壁紙の変更です。新しい環境を導入した時や気分を変えたい時に、あるいは定期的にランダムで壁紙を変更する方も多いのではないでしょうか。
しかし壁紙の変更に対し、カラーテーマを独自に設定している方はほとんどいないのではないでしょうか。それもそのはず、カラーテーマは設定する項目が多く、単純にカスタマイズが面倒くさいのです。とはいえカラーテーマを変更するとデスクトップの雰囲気ががらっと変化するので、できることなら壁紙の雰囲気にあわせて変更したいですよね(ということにしておいてください)。
そこで今回は、壁紙の色にあわせてデスクトップの色を自動的に変更する方法を紹介します。
ターミナルの色を変更する
walというアプリケーションがあります。これは画像をもとにカラースキームを生成し、現在開いているターミナルに反映するアプリケーションです。このwalをPython3で書き換えたものが、今回紹介するpywalです。
現時点でUbuntuにはパッケージが存在しないため、pipを使ってインストールします。またカラースキームの生成にImageMagickを利用しているため、あわせてインストールしておきます。
パッケージ名は「pywal」ですが、コマンド名は「wal」なことに気をつけてください。「wal -h」でヘルプが表示されますので、一度見ておくとよいでしょう。
単純な使い方は、「-i」オプションの引数に壁紙に指定したいファイルを指定するだけです。
pywalはターミナルの色を変更しますが、これはターミナルの設定を書き換えているわけではなく、エスケープシーケンスで実現しています。そのためターミナルを再起動すると、wal実行前の状態に戻ってしまいます。
walは最後に生成したカラースキームを「/.cache/wal/sequences」以下に保存しています。このファイルをcatで表示するだけで、保存されているカラースキームを再適用できます。「/.bashrc」等、シェルの設定ファイルの最後に以下の一文を追記しておくとよいでしょう。
また「wal -R」を実行すると、最後に設定した壁紙とカラースキームを復元できます。
ちなみに最後に設定した壁紙は「.cache/wal/wal」に保存されています[1]。独自の壁紙セッター(nitrogenやfehなど)を使いたい場合は、このファイルの内容を読んで、各プログラムへ渡すようにするとよいでしょう。
デスクトップのカラーテーマも変更する
デスクトップ全体のカラーテーマもあわせて生成できます。ただしこれはpywal単体ではできないため、oomoxというツールをインストールします。リポジトリにパッケージが存在しないため、GitHubのReleasesページからDebパッケージをダウンロードしてaptでインストールしてください[2]。また生成されたテーマを変更するため、gnome-tweak-toolsもインストールしておきます。
walに「-g」オプションをつけて実行すると、oomoxテーマを生成します。
「~/.theme/wal」というディレクトリ以下にテーマが生成されています。gnome-tweak-toolsを起動し、「Appearance」→「Themes」に「Wal」を設定してください。作成されたテーマが反映されます。
「wal -g」を実行する度に、walテーマの中身は上書きされていきます。本来であれば自動でデスクトップテーマがリロードされ即座に反映されるのですが、現在のGNOME環境では自動リロードがうまく動作しません[3]。そのためテーマを更新した場合は、一度別のテーマに変更した上で、Walテーマを再度設定し直してください。
カラーテーマは単に色をあてはめればいいわけではなく、適切な場所に適切な色を割り当てないと、非常に使いにくいものができあがってしまいます。そのため自動生成のテーマではなかなか実用とまではいかないでしょう。しかし色々な壁紙を試すうちに、使いやすいテーマが偶然生まれるかもしれません。あるいは生成されたテーマに自分で手を入れて調整してもよいでしょう。
壁紙を頻繁に変更されるのであれば、少ない手間でデスクトップ全体の雰囲気をあわせることができるpywalを試してみてはいかがでしょうか。