Macでアプリ別にダークモードを自動設定する方法! 特定アプリごと個別に切り替えよう

スポンサーリンク
Mac

この記事では、Macで、アプリごと個別にダークモードを自動で設定する方法を解説します。

端末全体の外観モードに関わらず、アプリによって、ダークモードのオン/オフを切り替えたいシーンで便利ですよ。

関連記事 iPhone/iPadでアプリ別にダークモードを自動設定する方法

関連記事 Androidでアプリ別にダークモードを自動設定する方法

 

スポンサーリンク
スポンサーリンク

ダークモードを特定アプリごと切り替える方法

3パターン紹介します。

  1. Grayアプリで設定する
  2. ショートカットのオートメーションで設定する
  3. Hammerspoonのコードで設定する

比較です。

方法 特定アプリのみ
ライトモード
特定アプリのみ
ダークモード
アプリ非アクティブ
で切り替え
1
2
3

端末全体の外観モードがダークモード中も、特定アプリのみライトモードにしたいなら、1が最も簡単でオススメです。

逆のパターン(特定アプリのみダークモード)の場合、2・3が対応しています。3の方が、より手順が難しいですが、アプリ非アクティブを検知して、切り替え可能です。

1. Grayアプリで設定する

GrayアプリのアイコンGrayアプリなら、端末全体の外観モードがダークモード中も、特定アプリのみライトモードにすることができます。

逆のパターン(端末全体の外観モードがライトモード中も、特定アプリのみダークモード)はできません。これを実現したい場合、次パートで紹介する方法2・3をどうぞ。

GitHubからGrayアプリをインストール、起動してください。

もし「〜開けません」とメッセージが出て起動できない場合、関連記事をどうぞ。
Grayアプリで設定する1

Releasesから最新バージョンをダウンロード

Grayアプリで設定する2

ダウンロードしたZipを解凍して、中身をアプリケーションフォルダに移す

Grayアプリを起動すると、アプリ一覧が並びます。

この中でダークモードを適用したくないアプリをクリックして、Light appearance に切り替えましょう。

なおクリックすると、当該アプリは再起動がかかります。作業中の内容があれば、保存してからにしてください。

初回のみ、設定の途中で各種アクセス権の通知が出るので、許可してください。
Grayアプリで設定する3

CotEditorをLight appearanceにする例

設定は以上。

端末全体の外観モードをダークモードに切り替えても、指定したアプリはライトモードのままであれば成功です。

Grayアプリで設定する4

ダークモード中も、CotEditorはライトモードのままの例

なお、アプリをクリックすると Dark appearance にも切り替え可能ですが、機能しません。

つまり、端末全体の外観モードがライトモード中、特定アプリのみダークモードにすることはできません(逆のパターンのみ可)。
Grayアプリで設定する5

CotEditorをDark appearanceにする例

Grayアプリで設定する6

ライトモード中は、CotEditorもライトモードのままの例

以上、説明でした。

以下、余談です(興味のある方のみどうぞ)。

Grayアプリの仕組みとして、以下コマンドを実行しています。

defaults write <Identifier> NSRequiresAquaSystemAppearance -bool YES

これをターミナルのアイコンターミナルで実行すれば、同じことを実現できるので、わざわざGrayアプリをインストールする必要はありません。

操作に自信がある方は、お試しください。

コマンド実行後、対象アプリを再起動すると反映されます。
Grayアプリで設定する7

CotEditorアプリに対して実行する例。これでCotEditorにはダークモードが反映されなくなる

なお<Identifier>の部分は、ダークモードにしたいアプリケーションIDを指定します。

これは、以下コマンドで調べることが可能です。

osascript -e 'id of app "App Name"'
”App Name“の箇所に、調べたいアプリ名を入れます(アプリケーション一覧から名前をコピーするのが確実です)。
Grayアプリで設定する8

CotEditorのアプリケーションIDを調べる例

元に戻したい場合は、以下コマンドを実行すればOKです。

defaults delete <Identifier> NSRequiresAquaSystemAppearance
Grayアプリで設定する9

CotEditorアプリに対して、設定を元に戻す例

macOSとして、このコマンドには逆のパターン(つまりシステム全体はライトモードで、一部アプリだけダークモード)が用意されていません。

そのため、このコマンドで動かしているGrayアプリとしても、同様に対応することができません。

これを実現したい場合、次パートで紹介する方法2・3をどうぞ。

Grayアプリに関して、類似アプリとしてNightOwlというアプリも有名です。が、ある時期に所有権が別企業に移ったことをきっかけに、マルウェアのリスクがあると噂されているため、気をつけてください。

2. ショートカットのオートメーションで設定する

プリインストールアプリショートカットのアイコンショートカットを使います。

「オートメーション」の+アイコンをクリックして、新規オートメーションを作成しましょう。

ショートカットのオートメーションで設定する1

ショートカットを開く

ショートカットのオートメーションで設定する2

赤枠をクリックして、新規オートメーションを作成

「アプリ」をクリックして、ダークモードを個別設定したいアプリを選択します。

ショートカットのオートメーションで設定する3

アプリ

ショートカットのオートメーションで設定する4

CotEditorアプリを選ぶ例

「開いている」・「すぐに実行」をチェックして、次へ 進みます。

なお、実行時に通知 はオフのままでOK。

ショートカットのオートメーションで設定する5

開いている・すぐに実行 → 次へ

新規ショートカット を開き、検索欄に”外観”と入れて、外観モードを設定 へ進みます。

ショートカットのオートメーションで設定する6

新規ショートカット

ショートカットのオートメーションで設定する7

検索欄に”外観”と入れて、外観モードを設定 へ

「外観モードをダークに変更」となっていることを確認して、作成完了です。

もし指定アプリ使用中はライトモード(背景が白色の状態)にしたい場合、「外観モードをライトに変更」としてください。
ショートカットのオートメーションで設定する8

外観モードをダークに変更

これだけだと、指定アプリを閉じてもダークモードのままとなるので、もう1つオートメーションを作成します。

先ほどと同じ流れで、指定アプリを選択して、「閉じている」・「すぐに実行」をチェックして、次へ 進みます。

ショートカットのオートメーションで設定する9

赤枠+アイコンからオートメーションを追加

ショートカットのオートメーションで設定する10

同じアプリに対して、閉じている・すぐに実行 → 次へ

先ほど同様に 新規ショートカットを作成 → 外観モードを設定 と進み、「外観モードをライトに変更」となっていることを確認して、作成完了です。

もし指定アプリ終了後はダークモード(背景が黒色の状態)にしたい場合、「外観モードをダークに変更」としてください。
ショートカットのオートメーションで設定する11

外観モードをライトに変更

ショートカットのオートメーションで設定する12

オートメーションが2つ完成した

さっそく指定アプリを開いてみましょう。

自動的にダークモードに切り替わり、アプリを閉じると元の外観モードに戻れば成功です。

ショートカットのオートメーションで設定する13

CotEditorを開くと、自動でダークモードがオン

ショートカットのオートメーションで設定する14

CotEditorを閉じると、自動でダークモードがオフ

以上、説明でした。

なお留意点として、ここでいう「アプリを閉じる」とは、「アプリを終了する( Q )」を指します。

つまり、以下ケースはすべて”起動中”と判定され、オートメーションは発動しません(=ダークモードは切り替わりません)。

  • 別アプリに切り替えた
  • ウィンドウを閉じただけ( W
  • 最小化した( M
  • バックグラウンドにまわった

上記ケースでもダークモードを切り替えたい場合、次パートで紹介する方法3をどうぞ。

3. Hammerspoonのコードで設定する

HammerspoonのアイコンHammerspoon(ハンマースプーン)という自動化ツールを使います。

公式サイト(http://www.hammerspoon.org/)から最新版をインストールしてください。

もし「〜開けません」とメッセージが出て起動できない場合、関連記事をどうぞ。
Hammerspoonのコードで設定する1

赤枠Downloadをクリック

Hammerspoonのコードで設定する2

最新バージョンをダウンロード

Hammerspoonのコードで設定する3

ダウンロードしたZipを解凍して、中身をアプリケーションフォルダに移す

Hammerspoonを起動すると、メニューバーにアイコンが表示されます。

クリックして、Open Config へ進みます。

Hammerspoonのコードで設定する4

Open Config

以下コードを入力します。

local appWatcher = hs.application.watcher.new(function(name, event, app)
if name == "App Name" then
if event == hs.application.watcher.activated then
hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to true')
elseif event == hs.application.watcher.deactivated then
hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to false')
end
end
end)

appWatcher:start()

うち”App Name“の箇所には、ダークモードを個別設定したいアプリ名を入れます。

アプリ名は、アプリケーション一覧から名前をコピーするのが確実です。

たとえばChromeブラウザの場合、”Chrome”ではダメで、”Google Chrome”とする必要があります。
Hammerspoonのコードで設定する5

アプリ名をコピー

たとえばSafariのアイコンSafariのダークモードを個別設定するなら、以下コードになります。

local appWatcher = hs.application.watcher.new(function(name, event, app)
if name == "Safari" then
if event == hs.application.watcher.activated then
hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to true')
elseif event == hs.application.watcher.deactivated then
hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to false')
end
end
end)

appWatcher:start()
Hammerspoonのコードで設定する6

Safariはダークモードに切り替えるコード

コードを入力したら 保存 して、Hammerspoonを終了→起動してください。

終了→起動しないと、編集したコードが反映されません。
Hammerspoonのコードで設定する7

保存

Hammerspoonのコードで設定する8

Hammerspoonを終了したあと、再び起動する

設定は以上。

さっそく指定アプリを開いてみましょう。

自動的にダークモードに切り替わり、アプリを閉じると元の外観モードに戻れば成功です。

ここでいう「アプリを閉じる」とは、以下全パターンを含みます。

  • アプリを終了する(  + Q )
  • 別アプリに切り替えた
  • ウィンドウを閉じただけ(  + W )
  • 最小化した(  + M )
  • バックグラウンドにまわった
Hammerspoonのコードで設定する9

Safariを開くと、ダークモードになる例

Hammerspoonのコードで設定する10

Safariが非アクティブになると、ライトモードになる例

先ほどのコード雛形は、特定アプリのみダークモードにするパターンを記載しています。

もし逆のパターン(特定アプリのみライトモード)にしたい場合、2つ目の赤字trueと、3つ目の赤字falseを入れ替えてください。

たとえばSafariのアイコンSafariなら、以下コードになります。

コード編集後は、Hammerspoonの再起動を忘れずに。
local appWatcher = hs.application.watcher.new(function(name, event, app)
if name == "Safari" then
if event == hs.application.watcher.activated then
hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to false')
elseif event == hs.application.watcher.deactivated then
hs.osascript.applescript('tell application "System Events" to tell appearance preferences to set dark mode to true')
end
end
end)

appWatcher:start()

以上、説明でした。

指定アプリの非アクティブを検知して、ダークモード⇔ライトモードの切り替えを実現できる点で、Hammerspoonはとても便利です。

一方、切り替えのたびに画面がチラつくため、合わなければ前パートの方法1・2をどうぞ。

 

〆:ダークテーマをアプリ個別で設定しよう!

以上、Macでアプリ別にダークモードを自動設定する方法! 特定アプリごと個別に切り替えよう の説明でした。

端末全体の外観モードとは別に、特定アプリだけ常にダークモード(もしくはライトモード)にしたい場合、今回紹介したやり方で実現することが可能です。

ニーズに合わせて、3パターンの手順を紹介したので、ぜひお試しあれ。

関連記事 Mac版Safariでダークモードを使う方法

関連記事 PC版Chromeでダークモードを使う方法

Mac
スポンサーリンク
スポンサーリンク
シェアする
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました