ダークモード非対応のアプリにダークモードを無理矢理適用する方法

ダークモードに非対応のアプリケーションに無理矢理ダークモードを適用する方法を紹介。

なお、ダークモードの強制適用は当然想定外であり、デベロッパーが正式に対応させない限り無理矢理適用してもダークモードは不完全な他、UIや文字の色がおかしくなるなど不都合も生じるため、あくまでどうしても適用させたいという場合にのみ実行しよう。

ダークモード非対応のアプリにダークモード強制適用

下記の手順を始める前に対象のアプリケーションは終了させておこう。

1. アプリケーションのバンドルIDを調べる

まずターミナルで下記コマンドを実行してダークモードを適用させたいアプリケーションのバンドルIDを調べる。

osascript -e 'id of app "アプリケーション名"'

アプリケーション名」の部分にダークモードを適用させたいアプリケーションの名前を入力しよう。

ここではダークモード非対応のアプリケーション「FileZilla」にダークモードを適用させたいので「アプリケーション名」の部分は「FileZilla」となる(画像では大文字・小文字を区別して入力しているが実際は大文字・小文字は無視して構わない)。

コマンドを実行するとそのアプリケーションのバンドルIDが表示される。

上記画像ではFileZillaのバンドルIDは「org.filezilla-project.filezilla」であることがわかる。

2. 対象のバンドルIDでコマンドを実行する

バンドルIDが判明したら下記のコマンドを実行する。

defaults write バンドルID NSRequiresAquaSystemAppearance -bool false

コマンドの「バンドルID」の部分に先ほど調べたバンドルIDを入力しよう。

FileZillaの場合は下記のようなコマンドになる。

defaults write org.filezilla-project.filezilla NSRequiresAquaSystemAppearance -bool false

3. アプリケーションを起動してダークモードが適用されたか確認して完了

コマンドが正常に実行されたら当該アプリケーションを起動してみよう。

不完全ではあるがタイトルバーなどにダークモードが適用されていることがわかる。

4. 元に戻す場合

元に戻す場合は当該アプリケーションを終了させ下記コマンドを実行する。

defaults write バンドルID NSRequiresAquaSystemAppearance -bool true

コマンド実行後、再度アプリケーションを起動し元に戻ったか確認しよう。

想定外の方法であるためアプリケーションのUIやテキストの色がおかしくなる場合がある

前述のようにダークモード非対応アプリケーションにダークモードを無理矢理適用するのは想定外のため、UIやテキストの色がおかしくなり、ユーザービリティに支障が生じることがある。

上記画像では一部のUIが不自然に真っ黒になっている他、ボタンのテキストの色も非常に読みにくくなっている。

まとめ

なお、本記事のようにアプリケーションではなくmacOSの各項目でライトモードとダークモードを切り替える(一部のみに適用する)といった場合は下記記事をご参照頂きたい。

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