Bildirimleri kapatmak için klavye kısayolu


27

Klavye ile bildirimleri kapatmak ve açmak mümkün olmak istiyorum

(Bildirim merkezinin açılması / kapatılması hakkında konuşmamak)

Mümkün mü? Ve eğer öyleyse, nasıl?


İstediğiniz güncellemeyi gördünüz mü?
saat

Yanıtlar:


25

Bu Applescript'i çalıştırmak ve Sistem Tercihleri ​​Klavye kısayollarında klavye kısayolu vermek için Automator servisi oluşturabilirsiniz.

Bu, Uyarıyı ve pankartları kapatacak


Automator'da yeni bir servis seçin

görüntü tanımını buraya girin


Bir Run Applescript Eylemi Ekleyin

görüntü tanımını buraya girin


ve onun kodu ile değiştirin:

my closeNotif()
on closeNotif()

    tell application "System Events"
        tell process "Notification Center"
            set theWindows to every window
            repeat with i from 1 to number of items in theWindows
                set this_item to item i of theWindows
                try
                    click button 1 of this_item
                on error

                    my closeNotif()
                end try
            end repeat
        end tell
    end tell

end closeNotif

'Hizmet [herhangi bir uygulamada] [giriş yok] alır'

Servisi kaydet.


Sistem tercihlerinde Klavye kısayollarını açın ve servisinizi 'Servisler' altında ayarlayın görüntü tanımını buraya girin

Şimdi yeni başlatılan herhangi bir uygulama kısayolu açacaktır.

(Not: Betiği, bildirimler / pencereler kapanmaya başladığında ortaya çıkacak bir hatayı atmak üzere yapılandırdım.

Sazlanma / pencere toplam sayıma 1'den 1'e kadar numaralandırılır. Ancak senaryoyu kapattıkça eski sayı üzerinde çalışıyor olabilir. Ancak sistem pencerelerin indeksini yeniden atayacak.

Öyleyse, 1-6'da başladığımızda senaryo, pencere 1, pencere 2, pencere 3 ve benzerlerini kapatmaya çalışacak. Ancak, sistem son kalan pencerelere 1,2,3 penceresini vermiştir. Ancak komut dosyası 4. pencereyi kapatmayı deneyecek ve mevcut olmadığı için bir hata atacak. Senaryo bunu yakalar ve onunla ilgilenir. )


Uyarı Bildirimi'ndeki 'Göster'i tıklayın. tıklattığınız düğmeyi 1'den 2'ye değiştirirsiniz.

click button 2 of this_item

Afiş bildirimlerinin bir düğmesi 2 yoktur.

Ama sadece pencereye tıklayabilirsiniz.

Bu yüzden bu kod Gösterme ile ilgilenmelidir.

my closeNotif()
on closeNotif()

    tell application "System Events"
        tell process "Notification Center"
            set theWindows to every window
            repeat with i from 1 to number of items in theWindows
                set this_item to item i of theWindows
                set cnt to count buttons of this_item
                try
                    if cnt > 1 then

                        click button 2 of this_item
                    else
                        click this_item
                    end if
                on error

                    closeNotif()
                end try
            end repeat
        end tell
    end tell

end closeNotif

Teşekkürler, bu gerçekten harika. Eksik olan bir şey de kapatmak yerine bir bildirimin nasıl açılacağı ... ekleyebileceğiniz bir şey ve memnuniyetle cevabınızı kabul edeceğim!
Drewdavid

@Drewdavid yanıtını güncelledi :-)
markhunte

1
Drewdavid: Aynı sorunu yaşıyorum ve Güvenlik ve Gizlilik altında düzeltmekten vazgeçtim ve BetterTouchTool aracılığıyla genel bir kısayol tuşu oluşturdum.
Bez Hermoso,

1
Not: "Notification Center" işlemi "NotificationCenter" uygulamasından "Notification Center" olarak adlandırılabilir. Sistem Applescript içinde her ikisini de anlayacaktır. Uygulama adını AppleScript'te kullanmak normaldir. Bu durumda Notification Center ". Eğer bir do shell betiği veya unix kullanıyorsanız, o zaman" NotificationCenter "asıl işlem adını kullanın
markhunte 10:17 '

1
@Chris, iş akışını Automator uygulamasında bir Uygulama olarak kaydedin. "Tüm Noifications.app Dosyalarını Kapat" Daha sonra yukarıda açıklandığı gibi bir hizmet oluşturun ancak Applescript kullanımında: "etkinleştirmek için" Tüm Bildirimleri Kapat "uygulamasına söyle
markhunte 20:18 '

6

İstediğin şey tam olarak değil:

Afiş türü için görüntülenen süreyi,

Terminal ve aşağıdaki yapıştırın

defaults write com.apple.notificationcenterui bannerTime #

# sayı işareti yerine, banner bildirimlerinin takılmasını istediğiniz saniye miktarını kullanın, ardından oturumu kapatın ve tekrar açın.

Orijinal işlevi geri yüklemek için (5 saniye) defaults delete com.apple.notificationcenterui bannerTime

Ben hayır dedim biliyorum: ama sen yapabilirsin döngü bir komut dosyası ile kapalı / 'üzerinde Bildirimi ve buna bir klavye kestirme atayın. Mountain Lion'daki Notification Center komut satırından geçici olarak devre dışı bırakılsın mı?


Gönderdiğiniz için teşekkür ederiz; zaman sınırı burada da
kayda

Bu High Sierra'da mı çalışıyor? Herhangi bir etkisi olması için onu alamadım.
luckman212

0

Markhunte'nin orjinal senaryosu işe yarıyor ancak birkaç pencereden sonra duruyor. Pencerelerin listesi sadece şu anda görünür olanları içerebilir. Çok fazla kişi varken bu kapanmaz. Sıfır pencere sayısı elde edinceye kadar pencereleri sorgulamak için ana döngünün dışına bir döngü ekledim. İşte kod:

closeNotif () closeNotif () üzerinde

tell application "System Events"
    tell process "Notification Center"
        set theWindows to every window
        set nWindows to number of items in theWindows
        repeat until nWindows is 0
            repeat with i from 1 to number of items in theWindows
                set this_item to item i of theWindows
                try
                    click button 1 of this_item
                    delay 0.2
                on error

                    my closeNotif()
                end try
            end repeat
            set theWindows to every window
            set nWindows to number of items in theWindows
        end repeat
    end tell
end tell

son closeNotif

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.