# Keyboard Maestroでダークモードかどうか判定して、条件分岐で処理を変える方法 URL: https://webrandum.net/keyboard-maestro-darkmode/ 公開日: 2019-08-27 更新日: 2019-08-27 カテゴリー: 作業効率化 タグ: Keyboard Maestro 出典: Webrandum(著者: サイトウ マサカズ) 最近Keyboard Maestroのバージョンが9.0になって、ダークモード関連の機能が追加されました。 今回は今まで面倒だった、ダークモードによっての処理の分岐を作ってみます。 ## ダークモードによる処理の分岐が必要なマクロ 例えば、メニューバーをクリックするようなマクロのような「Click at Found Image」アクションを使っている場合に、ダークモードによる分岐処理が必要になります。 ![メニューバーをクリックするマクロサンプル](https://webrandum.net/mskz/wp-content/uploads/2019/08/image_1-24-1024x946.png) ダークモードにすると、Macのメニューバーは白黒反転してしまうので、ダークモードのときにマクロを実行しても「Click at Found Image」で画像が見つからず、マクロ失敗となってしまいます。 ![ダークモードの場合のアイコン](https://webrandum.net/mskz/wp-content/uploads/2019/08/image_2-20.png) ## ダークモードによる処理の分岐を組み込む ### ダークモードかどうかの判定 ダークモードによる処理の分岐のために、まずは現状ダークモードかライトモードか、どちらか取得する必要があります。 「Set Variable to Calculation」アクションを追加して、「Set variable」に`DARKMODE`、「to」には`DARKMODE()`と入力します。 ![Set Variable to Calculation](https://webrandum.net/mskz/wp-content/uploads/2019/08/image_3-17.png) こうすると、ダークモードかどうか判定して数字を返してくれます。 | 状態 | 返ってくる値 | | --- | --- | | ライトモード | 0 | | --- | --- | | ダークモード | 1 | | --- | --- | ### 条件分岐の設定 あとは「If Then Else」アクションを追加して条件分岐の設定です。 ![If Then Else](https://webrandum.net/mskz/wp-content/uploads/2019/08/image_4-9.png) 「Add Condition」をクリックして、「Varibale Condition」を選択します。 ![Add Condition](https://webrandum.net/mskz/wp-content/uploads/2019/08/image_5-9.png) 「The variable」には`DARKMODE`を入力して、「contains」には`0`を入力します。 これでTrueの方にはライトモードのときの設定を追加して、Falseの方にはダークモードのときの設定を追加すればOKです。 ![条件分岐の設定](https://webrandum.net/mskz/wp-content/uploads/2019/08/image_6-3.png) 今回の場合は、「Click at Found Image」の画像をそれぞれライトモードの画像とダークモードの画像に設定しなおします。 最終的に、下記のようなマクロになれば完成です。 ![完成したマクロ](https://webrandum.net/mskz/wp-content/uploads/2019/08/image_7-3-497x1024.png) ## まとめ 「Click at Found Image」を使ったマクロはダークモード時に全滅していたのですが、この方法を使えばダークモードでもライトモードでも、問題なく画像のクリックができます。 少し手間なのと、よく使うのであれば`DARKMODE()`関数は別のマクロにしてしまって、定期的に状態変更を取得するようにしても良さそうです。