На OS X 10.8 пользователи могут отключить Центр уведомлений на один день. Есть ли способ проверить, включен ли он из командной строки?
На OS X 10.8 пользователи могут отключить Центр уведомлений на один день. Есть ли способ проверить, включен ли он из командной строки?
Ответы:
Вы действительно можете узнать, включен ли режим «Не беспокоить» или нет. Центр уведомлений удаляет список в следующем месте, где вы можете прочитать значение. Запустите следующее, чтобы найти файл plist:
ls ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist
Теперь вы можете прочитать значение из только что найденного списка, используя:
defaults read ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist
ПРИМЕЧАНИЕ: ваше фактическое имя файла может отличаться от того, что я перечислил выше.
Вы увидите ключ с именем «doNotDisturb», который будет иметь значение 1 или 0 (включено или отключено).
Вы также можете изменить его статус, выполнив:
defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist doNotDisturb 1
или:
defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist doNotDisturb 0
Чтобы изменения вступили в силу, вам нужно перезапустить Центр уведомлений, набрав:
killall NotificationCenter
На самом деле я написал очень простой скрипт Automator, поэтому теперь я могу включать / отключать функцию «Не беспокоить» для Центра уведомлений с помощью сочетания клавиш. Очень кстати. :)
killall NotificationCenter
сбросит настройки по умолчанию, но не перезагрузит настройки.
Вероятно, лучший способ, который я могу придумать, - это установить уведомитель терминала и отправить ему сообщение с терминала.
Терминальный уведомитель может быть установлен через Ruby Gems
Тип:
sudo gem установить терминал-уведомитель
Тип:
Terminal-Notifier -message "Центр уведомлений работает" -титл "NC Status"
Если центр уведомлений запущен, вы получите сообщение «Центр уведомлений запущен»
На данный момент способы программного взаимодействия с Центром уведомлений (в том числе через командную строку) довольно ограничены. Как отметил InfluenceJamie, есть терминал-уведомитель , который позволяет отправлять уведомления из командной строки, но отправка уведомлений - это почти все, что могут сделать программы в настоящий момент. Из моего прочтения документации для разработчиков программы могут только отправлять и получать информацию о конкретных уведомлениях, которые они отправляют, никакой информации о состоянии для самого Центра уведомлений или других уведомлений. Там также нет интерфейса Applescript.
Таким образом, на данный момент вы ограничены ручным тестированием, проходит ли уведомление, как предложил InfluenceJamie , или надеетесь, что кто-то выяснит частные API Apple и создаст интерфейс командной строки.
Настройки Центра уведомлений хранятся в ~/Library/Preferences/ByHost
папке, что означает, что это специфичные для машины настройки.
Вы можете использовать defaults -currentHost
команду для чтения настроек внутри. -currentHost
используется для указания ByHost
параметра, а не обычного пользовательского параметра, который хранится в ~/Library/Preferences
.
defaults -currentHost read com.apple.notificationcenterui doNotDisturb
Выходное значение 1
означает, что он активирован, 0
для отключен.
Фактически, вышеупомянутая команда читает параметры из ~/Library/Preferences/ByHost/com.apple.notificationcenterui.<your-UUID>.plist
файла.
Предостережения : установка ByHost
параметров с помощью defaults -currentHost write
не работает. Опции действительно записываются в файл, но не перезагружаются соответствующим демоном. Я думаю, это ошибка.