Nhận trạng thái Trung tâm thông báo OS X từ dòng lệnh


Câu trả lời:


8

Bạn thực sự có thể tìm hiểu xem Do Not Disturb hiện đang được bật hay tắt. Trung tâm thông báo thả một số nguyên ở vị trí sau mà bạn có thể đọc giá trị của. Chạy phần sau để tìm tệp plist:

ls ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist

Bây giờ, bạn có thể đọc giá trị từ số nguyên bạn vừa tìm thấy bằng cách sử dụng:

defaults read ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist

LƯU Ý: tên tệp thực tế của bạn có thể khác với tên tôi đã liệt kê ở trên.

Bạn sẽ thấy một khóa có tên là "doNotDisturb" và nó sẽ có giá trị là 1 hoặc 0 (được bật hoặc tắt)

Bạn cũng có thể thay đổi trạng thái của nó bằng cách thực hiện:

defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist doNotDisturb 1

hoặc là:

defaults write ~/Library/Preferences/ByHost/com.apple.notificationcenterui.8D3EA20D-8D7F-52E2-9F99-BC17A13A3F0E.plist doNotDisturb 0

Để thay đổi có hiệu lực, bạn sẽ cần khởi động lại Trung tâm thông báo bằng cách nhập:

killall NotificationCenter

Tôi thực sự đã viết một tập lệnh Automator rất đơn giản để bây giờ tôi có thể bật / tắt Không làm phiền cho Trung tâm thông báo bằng phím tắt. Rất tiện dụng. :)


Thật không may, cài đặt bật / tắt này không hoạt động trên El Capitan.
Zsolt Szatmari

Không hoạt động trên Yosemite
Gianfranco P.

Điều này sẽ không làm việc. 1. UUID này là dành riêng cho bạn. 2. killall NotificationCentersẽ đặt lại cài đặt về mặc định nhưng không tải lại cài đặt.
Simba

4

Để có trạng thái Không làm phiền trong Yosemite, chỉ cần nhập thông tin sau vào thiết bị đầu cuối của bạn:

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

1

Có lẽ cách tốt nhất tôi có thể nghĩ đến là cài đặt trình thông báo đầu cuối và gửi tin nhắn từ thiết bị đầu cuối.

Cài đặt trình thông báo đầu cuối

Trình thông báo đầu cuối có thể được cài đặt thông qua Ruby Gems

Kiểu:

sudo gem cài đặt trình thông báo đầu cuối

Gửi tin nhắn cho NC

Kiểu:

trình thông báo đầu cuối -message "Trung tâm thông báo đang chạy" -title "Trạng thái NC"

Nếu trung tâm thông báo đang chạy, bạn sẽ nhận được thông báo "Trung tâm thông báo đang chạy"


2
Những điều trên hoạt động tốt với tôi nhưng đó là một giải pháp thủ công thay vì chỉ dẫn trạng thái lập trình nên tôi không đưa ra +1 như một câu trả lời cho câu hỏi này. Tuy nhiên, nó rất hữu ích trong các khía cạnh khác.
ClearCrescendo

Đưa ra một upvote này không giống như chọn câu trả lời là chính xác. Nếu câu trả lời giúp bạn nhưng không trả lời được câu hỏi, bạn có thể đưa ra câu trả lời. nếu nó trả lời câu hỏi của bạn thì nhấp vào biểu tượng dấu ở bên trái.
jmh

1

Hiện tại, các cách để tương tác với Trung tâm thông báo theo chương trình (bao gồm cả thông qua dòng lệnh) là khá hạn chế. Như InfluenceJamie đã lưu ý, có trình thông báo đầu cuối , cho phép bạn gửi thông báo từ dòng lệnh, nhưng gửi thông báo là khá nhiều chương trình có thể làm vào lúc này. Từ việc tôi đọc tài liệu dành cho nhà phát triển , các chương trình chỉ có thể gửi và nhận thông tin về các thông báo cụ thể mà họ gửi, không có thông tin trạng thái nào cho chính Trung tâm thông báo hoặc các thông báo khác. Cũng không có giao diện Applescript.

Vì vậy, hiện tại, bạn bị giới hạn kiểm tra thủ công xem có thông báo nào không, như InfluenceJamie đã đề xuất hoặc hy vọng ai đó tìm ra API riêng của Apple và tạo giao diện dòng lệnh.


Trong MacOS, mọi ưu tiên được lưu trữ trong một số tệp plist, do đó phải có một số nội dung "mặc định đọc" để thực hiện những gì tôi đang tìm kiếm.
user732274

1
Chà, đó là một khả năng tất nhiên, nhưng mặc định là nhiều hơn cho các tùy chọn vĩnh viễn - một cài đặt tạm thời có thể không được lưu trữ trong các mặc định. Tuy nhiên, đó có lẽ là lựa chọn tốt nhất của bạn nếu đề xuất của InfluenceJamie không phù hợp với bạn.
kẻ cướp

Điều này nên được lưu trữ ở đâu nếu không trong một plist?
user732274

1

Cài đặt của Trung tâm thông báo được lưu trong ~/Library/Preferences/ByHostthư mục, có nghĩa là đó là cài đặt dành riêng cho máy.

Bạn có thể sử dụng defaults -currentHostlệnh để đọc các cài đặt bên trong. -currentHostđược sử dụng để chỉ định ByHostcài đặt không phải là người dùng chung được lưu trữ trong ~/Library/Preferences.

defaults -currentHost read com.apple.notificationcenterui doNotDisturb

Giá trị đầu ra 1có nghĩa là nó được kích hoạt, 0cho người khuyết tật.

Trong thực tế, lệnh trên là đọc các tùy chọn từ ~/Library/Preferences/ByHost/com.apple.notificationcenterui.<your-UUID>.plisttệp.

Hãy cẩn thận : Cài đặt ByHosttùy chọn defaults -currentHost writekhông hoạt động. Các tùy chọn thực sự được ghi vào tệp, nhưng nó không được tải lại bởi trình nền tương ứng. Tôi đoán đây là một lỗi.

Người giới thiệu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.