ダークモードの切り替え

提供: ArchWiki
2022年10月19日 (水) 13:30時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎ツール: | が抜けていた)
ナビゲーションに移動 検索に移動

ライトモード(ライトテーマ)とダークモード(ダークテーマ)の切り替えは良いものです。日が沈むのに合わせてダークモードに切り替えたり、キーボードショートカットを使ってモードのオンオフを変えることができます。

テーマの切り替えは現在実行中のプログラムに適用することができる場合もありますが (大抵の場合、デーモンが必要)、新しく起動したプログラムにしか適用されない場合もあります。この記事では実行中に切り替える方法について説明しており、現在実行中のプログラムのテーマが切り替わります。

ライトモードとダークモードの切り替えにはアプリケーションのサポートや、GTK および Qt などのアプリケーションツールキットのサポートが必要です。

ツール

  • darkman — darkman は、日没時にダークモードに移行し、日の出時にライトモードに戻ることを自動化するためのツールです。ドロップインのスクリプトを配置して、その時間に自動的に実行させることができます。
https://gitlab.com/WhyNotHugo/darkman/ || darkmanAUR
  • Yin-Yang — Yin-Yang は似たような機能を持つ別のツールで、カスタムスクリプトの実行はまだサポートされていません。
https://github.com/oskarsh/Yin-Yang || yin-yang-gitAUR

ツールキット

GTK

ライトモード・ダークモードを変えるには、使用しているテーマを変える必要があります。

ほとんどのテーマにはダークバージョンが存在し、-dark が後ろに付くという決まりがあります。例えばデフォルトの GTK テーマである Adwaita にはダークバージョンの Adwaita-dark が存在します。

ダークバージョンに永続的に変更したい場合は GTK#ダークテーマを見てください。

実行中のプログラムに対して即座にテーマを切り替えするには、xsettings の仕様 を満たすデーモンが必要です。

Xfce が提供しているデーモンとして xfsettingsd があり、xfce4-settings パッケージでインストールできます。

現在の GTK テーマを確認するには:

$ xfconf-query -c xsettings -p /Net/ThemeName

GTK テーマを設定するには:

$ xfconf-query -c xsettings -p /Net/ThemeName -s "new-theme"

エントリの変更は即座に反映され全ての GTK アプリケーションのテーマが切り替わります。

Qt

Qt には GTK と同じようなテーマのサポートがあります。

Qt アプリケーションのテーマのスタイリングに GTK を使うという方法があり、GTK テーマを変更すると Qt アプリケーションのテーマも変わります。

アプリケーション

Firefox

Firefox は自動的に現在の GTK テーマモードを使用し、ブラウザの外観をそれに合わせて変化させます。詳しい設定や注意点については Firefox#ダークテーマを参照してください。

ウェブコンテンツの中身を暗くしたい場合、Dark Reader アドオンを使うことを推奨します。

AutomationUse system color scheme に変更することで、Dark Reader は GTK のダークテーマで自動的に有効になります。

Thunderbird

Thunderbird は現在の GTK テーマに合わせますが、一部変更が必要です。

Thunderbird#テーマの設定 を見てください。

Visual Studio Code

Visual Studio Code のテーマを変えたい場合は こちらのスクリプト が役に立ちます。

Alacritty

Alacritty は複数のカスタムカラースキームをサポートしています。設定構文や定義済みのカラースキームは こちら にあります。

テーマを即座に変更するには、各カラーテーマのポインタを定義してください (例: &black)。そして、colors: *black と設定することでカラースキームを切り替えることができます。設定ファイルが即座に変更され全ての実行中のインスタンスに影響を与えます。

ウィンドウのボーダーやタイトルバーは GTK のテーマが適用されます。GTK のテーマに従うようにしたい場合、gtk_theme_variant の設定をデフォルトの None にしてください。