[Mac][Keyboard Maestro] おやすみモードの状態を表示する
Mac のおやすみモード(Do Not Disturb)がオンになっているかオフになっているかを表示したい。最初は以下のアプリを使おうと思った。
Command Center | Cindori
https://cindori.org/commandcenter/
しかし、有料なのでなんとか自分で作れないか考えてみたところ、Keyboard Maestro を使えばできることが分かった。
シェルスクリプトは以下のようになる。
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