[Mac][Keyboard Maestro] おやすみモードの状態を表示する

Mac のおやすみモード(Do Not Disturb)がオンになっているかオフになっているかを表示したい。最初は以下のアプリを使おうと思った。

Command Center | Cindori
https://cindori.org/commandcenter/

しかし、有料なのでなんとか自分で作れないか考えてみたところ、Keyboard Maestro を使えばできることが分かった。

CapturFiles-20170209_124017

シェルスクリプトは以下のようになる。

 1if [ -e "$HOME/.path" ]
 2then
 3  source "$HOME/.path"
 4else
 5  PATH=/usr/local/scripts:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
 6fi
 7
 8#####
 9
10OSX_DND_RAW=`defaults -currentHost read "$HOME/Library/Preferences/ByHost/com.apple.notificationcenterui" doNotDisturb 2>/dev/null`
11
12if [[ "$OSX_DND_RAW" = "1" ]]
13then
14  IS_OSX_DND='yes'
15else
16  IS_OSX_DND='no'
17fi
18
19#####
20
21if [ "$IS_OSX_DND" = 'yes' ]
22then
23    echo "DND mode"
24elif [ "$IS_OSX_DND" = 'no' ]
25then
26    echo "Notification mode."
27fi
28
29# EXIT = 1 means that something is NOT paused
30# EXIT = 0 means that both ARE paused
31exit 1
32
33#
34#EOF

シェルスクリプトの結果を一旦変数に書き出しているのは、後々いろいろマクロを拡張できるようにしているから。

参考:
"DND Macros" – Toggle (or check status of) Growl and OS X Notifications (and mute/unmute) – macro – Keyboard Maestro Discourse
https://forum.keyboardmaestro.com/t/dnd-macros-toggle-or-check-status-of-growl-and-os-x-notifications-and-mute-unmute/2260