Отримайте стан контрольного центру OS X із командного рядка


9

У ОС X 10.8 користувачі можуть вимкнути Центр сповіщень на один день. Чи є спосіб перевірити, чи він увімкнено з командного рядка ?.

Відповіді:


9

Ви дійсно можете дізнатись, чи в даний час функцію "Не турбувати" увімкнено чи вимкнено. Центр сповіщень скидає список у наступному місці, з якого ви можете прочитати значення. Виконайте наступне, щоб знайти файл плісту:

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

Насправді я написав дуже простий скрипт Автоматизатора, тому тепер я можу ввімкнути / вимкнути функцію «Не турбувати центр сповіщень» за допомогою комбінації клавіш. Дуже зручно. :)


На жаль, встановлення цього вмикання / вимкнення не працює в El Capitan.
Zsolt Szatmari

Не працює і на Йосеміті
Gianfranco P.

4

Щоб отримати статус « Не турбувати» в Йосеміті, просто введіть у свій термінал наступне:

defaults read ~/Library/Preferences/ByHost/com.apple.notificationcenterui.plist doNotDisturb

1

Мабуть, найкращий спосіб, який я можу придумати, - це встановити сповіщувач терміналу і надіслати йому повідомлення з терміналу.

Встановіть термінальний сповіщувач

Повідомлення терміналів можна встановити через Ruby Gems

Тип:

sudo gem встановити термінал-сповіщувач

Надіслати NC повідомлення

Тип:

термінал-повідомлення -повідомлення "Центр сповіщень працює" -тит "Стан NC"

Якщо працює центр сповіщень, ви отримаєте повідомлення про те, що "Центр сповіщень працює"


2
Вищезазначене добре працювало для мене, але це ручне рішення, а не програмне вказівка ​​статусу, тому я не даю йому +1 як відповідь на це питання. Однак це було дуже корисно в інших аспектах.
ClearCrescendo

1

На даний момент способи програмного взаємодії з Центром сповіщень (у тому числі за допомогою командного рядка) досить обмежені. Як зазначав InfluenceJamie, є термінал-сповіщувач , який дозволяє надсилати сповіщення з командного рядка, але надсилати сповіщення - це майже все, що програми можуть зробити на даний момент. З мого читання документації для розробників програми можуть надсилати та отримувати інформацію лише про конкретні сповіщення, які вони надсилають, відсутність інформації про стан для самого Центру повідомлень або інших сповіщень. Також немає інтерфейсу Applescript.

Тож наразі ви обмежуєтесь ручним тестуванням, чи проходить сповіщення, як запропонував InfluenceJamie , або сподіваєтесь, що хтось з'ясує приватні API Apple та зробить інтерфейс командного рядка.


У MacOS всі налаштування зберігаються у деяких файлах плістів, тому для виконання того, що я шукаю, повинно бути щось "читати за замовчуванням".
user732274

1
Що ж, це є можливість, звичайно, але типові налаштування більше стосуються постійних налаштувань - тимчасова установка може не зберігатися у налаштуваннях за замовчуванням. Однак це, мабуть, найкраща ставка, якщо пропозиція InfluenceJamie не працює для вас.
robmathers

Де це слід зберігати, якщо не в плісті?
користувач732274
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.