macOS Mojave以降でライト・ダークモードを一部だけに適用する方法

macOS Mojave以降はウィンドウやメニューバーなど、全てのmacOSのUI及び対応するアプリケーションの画面を暗い色にするダークモードが搭載されている。

ただ、ダークモードを有効にするとメニューバーやドックなどmacOSのインターフェースは全てダークモードになり、ライトモードも同様に全てのインターフェースがライトモードになる。

人によっては「アプリケーションはライトモードのままでメニューバーや通知センターはダークモードにしたい」という場合もあるだろう。

ここでは”アプリケーションはライトモードのままでその他のUIをダークモードにする方法”及び”ダークモード・ライトモードを個々のアプリケーションに個別に適用する方法”を紹介する。

なお前者の方法はmacOS Catalinaでも有効だが後者の個別にアプリケーションにライト・ダークモードを適用する方法はmacOS Catalinaでは利用できない。

また、この方法を試したことで何らかの不具合が生じても責任は取れないため自己責任の上でお願いしたい。

アプリケーションはライトモードのままでその他のUIをダークモードにする方法

画像のようにアプリケーションはライトモードのままでメニューバーやドック、通知センターなどmacOSのUIのみをダークモードにするには以下のコマンドをターミナルで入力・実行しmacOSに再ログインまたは再起動する。

この方法はmacOS Mojave、macOS Catalinaどちらにおいても有効だ。

defaults write -g NSRequiresAquaSystemAppearance -bool Yes

元に戻す場合は以下のコマンドを実行して同様に再ログインまたは再起動。

defaults delete -g NSRequiresAquaSystemAppearance

なお、ここまでの一連の作業を行ったところ「アクティビティモニタにプロセスが表示されない」「画像のプレビューが開かない」といったトラブルが起きたが再度再起動すれば問題なかった。

任意のアプリケーションのみにライトモード・ダークモードを適用する

続いては任意のアプリケーションのみライトモード・ダークモードを適用させる方法を紹介する。

なお、この方法は冒頭でも書いた通りmacOS Mojaveまでなら有効だがmacOS Catalinaでは利用できない点に注意。

まず任意のアプリケーションのみライトモード・ダークモードを設定するにはそのアプリケーションのバンドルIDを知る必要がある。

例えばメールアプリのバンドルIDは以下のようになる。

com.apple.mail

com.で始まるものが一般的にアプリケーションのバンドルIDだ。

バンドルIDを調べるにはアプリケーションを右クリックして「パッケージの内容を表示」をクリックして開いたパッケージフォルダ内にある「Contents」フォルダのInfo.plistをテキストエディタ(テキストエディットアプリ)などで開き、”CFBundleIdentifier”という文字列を探す。

その下に記載されているのがそのアプリのバンドルIDだ(画像ではcom.apple.mail)。

バンドルIDがわかったのでライトモード・ダークモードを任意に適用したいアプリのバンドルIDを付与した上で以下のコマンドを実行する(下記の場合はメールアプリなのでcom.apple.mail)。

defaults write com.apple.mail NSRequiresAquaSystemAppearance -bool NO

com.apple.mailの部分を任意のバンドルIDで置き換えよう。

コマンドの最後の部分を「NO」にすればダークモード、「YES」にすればライトモードになる。

元に戻す場合はメールアプリの場合、以下のコマンドを実行する。

defaults delete com.apple.mail NSRequiresAquaSystemAppearance

まとめ

「アプリケーションのみライトモードを適用しその他のUIはダークモードのままにする」という方法はmacOS Mojave、macOS Catalina共に有効であるがmacOS Catalinaでは内部仕様が変わったのか個別にアプリケーションをライト・ダークモードにすることは現状ではできなくなっている。

また、上記で紹介した方法だと中途半端にライトモードやダークモードの要素が残ったりするため完璧ではない。

とはいえターミナルからのコマンド一つでmacOSの見た目をカスタマイズできるのは興味深いので自己責任の上で試してみるといいだろう。