सूचनाओं को खारिज करने के लिए कीबोर्ड शॉर्टकट


28

मैं कीबोर्ड से सूचनाओं को खारिज करने और खोलने में सक्षम होना चाहता हूं

(अधिसूचना केंद्र खोलने / बंद करने के बारे में बात नहीं कर रहा है)

क्या यह संभव है? और यदि हां, तो कैसे?


क्या आपने वह अपडेट देखा जो आपने माँगा था?
9

जवाबों:


26

आप इस एप्सस्क्रिप्ट को चलाने के लिए ऑटोमेटर सेवा बना सकते हैं और इसे सिस्टम वरीयताएँ कीबोर्ड शॉर्टकट में कीबोर्ड शॉर्टकट दे सकते हैं

यह अलर्ट और बैनर अधिसूचना को बंद कर देगा


ऑटोमेकर में एक नई सेवा चुनें

यहां छवि विवरण दर्ज करें


एक रन Applescript कार्रवाई जोड़ें

यहां छवि विवरण दर्ज करें


और इसके साथ कोड बदलें:

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

[किसी भी आवेदन] में [सेवा प्राप्त नहीं करता है] 'सेट करें

सेवा बचाओ।


सिस्टम प्रीफ़ में कीबोर्ड शॉर्टकट खोलें और 'सेवा' के तहत अपनी सेवा के लिए सेट करें यहां छवि विवरण दर्ज करें

अब कोई भी नया लॉन्च किया गया ऐप शॉर्टकट लेगा।

(नोट: मैंने स्क्रिप्ट को संरचित करने के लिए एक त्रुटि फेंकने का सामना किया है जो तब होगा जब सूचनाएं / विंडो बंद होने लगेंगी।

कुल गणना के माध्यम से otifications / खिड़की 1 गिने जाते हैं। लेकिन जैसा कि वे स्क्रिप्ट को बंद करते हैं फिर भी पुरानी गिनती के काम करेंगे। लेकिन सिस्टम फिर से विंडोज़ के इंडेक्स को असाइन करेगा।

इसलिए जहां हम कहते हैं कि 1 -6 से शुरू होता है, स्क्रिप्ट कोशिश करेगी और विंडो 1, विंडो 2, विंडो 3 और इतने पर बंद हो जाएगी। लेकिन सिस्टम ने विंडो संख्या 1,2,3 को अंतिम शेष खिड़कियों को फिर से सौंपा है। लेकिन स्क्रिप्ट विंडो 4 को बंद करने की कोशिश करेगी और एक त्रुटि को फेंक देगी क्योंकि यह मौजूद नहीं है। स्क्रिप्ट इसे पकड़ लेगी और इससे निपट लेगी। )


यदि आप अलर्ट नोटिफिकेशन पर 'शो' बटन पर क्लिक करना चाहते हैं। आप उस बटन को बदलते हैं जिसे आप 1 से 2 तक क्लिक करते हैं।

click button 2 of this_item

बैनर सूचनाओं में बटन 2 नहीं है।

लेकिन आप सिर्फ विंडो पर क्लिक कर सकते हैं।

इसलिए इस कोड को दिखाने का ध्यान रखना चाहिए।

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

धन्यवाद, यह वास्तव में अच्छा है। एक बात जो याद आ रही है, वह यह है कि किसी नोटिफिकेशन को बंद करने की बजाए कैसे खोला जाए ... क्या वह है जिसे आप जोड़ सकते हैं, और मैं आपके उत्तर को सहर्ष स्वीकार करूंगा!
ड्रूविड

@Drewdavid ने उत्तर अपडेट किया :-)
markhunte

1
ड्रूविड: मुझे वही समस्या हो रही है, और इसे सिक्योरिटी एंड प्राइवेसी के तहत ठीक करना छोड़ दिया है और सिर्फ बेटरटचटूल के माध्यम से एक ग्लोबल हॉट-की की स्थापना की है।
बेज़ हर्मोसो

1
नोट: प्रक्रिया "अधिसूचना केंद्र" को "अधिसूचना केंद्र" के "अधिसूचना केंद्र" का नाम दिया जा सकता है। सिस्टम एप्स्क्रिप्ट के भीतर दोनों को समझेगा। AppleScript में ऐप नाम का उपयोग करना सामान्य है। इस मामले में सूचना केंद्र NotificationCenter ""। आप उपयोग कर रहे हैं एक खोल स्क्रिप्ट या यूनिक्स तो वास्तविक प्रक्रिया नाम का उपयोग करते हैं "
markhunte

1
@ क्रिस, वर्कफ़्लो को ऑटोमेकर में एक एप्लिकेशन के रूप में सहेजें। कुछ नाम जैसे "ऑल ऑल नोटिफिकेशन.app" फिर इसे एक्सेसिबिलिटी में मैन्युअल रूप से जोड़ें। फिर ऊपर वर्णित के रूप में एक सेवा बनाएं लेकिन रन एप्स्क्रिप्ट में उपयोग करें: "एप्लिकेशन को बताएं" सक्रिय करने के लिए सभी अधिसूचनाएं बंद करें "
markhunte

5

बिल्कुल नहीं जो आप पूछ रहे हैं:

आप बैनर प्रकार के लिए प्रदर्शित समय को सीमित कर सकते हैं

निम्नलिखित में टर्मिनल और पेस्ट करें

defaults write com.apple.notificationcenterui bannerTime #

# नंबर साइन के साथ उस सेकंड की मात्रा से बदल दिया गया है जिसके बारे में आप चाहते हैं कि बैनर सूचनाएं चारों ओर चिपके रहें, फिर लॉग ऑन करें और वापस जाएं।

मूल फ़ंक्शन (5 सेकंड) का उपयोग करने के लिए defaults delete com.apple.notificationcenterui bannerTime

मुझे पता है कि आपने कहा नहीं: लेकिन आप एक स्क्रिप्ट के साथ / बंद अधिसूचना को चक्रित कर सकते हैं और इसे एक कीबोर्ड को काट सकते हैं। कमांड लाइन से माउंटेन शेर में अस्थायी रूप से अधिसूचना केंद्र को अक्षम करें?


पोस्ट करने का शुक्रिया; समय सीमा भी यहाँ ध्यान देने योग्य है :)
ड्रूविदिड

क्या यह उच्च सिएरा में काम करता है? मैं इसे किसी भी प्रभाव के लिए नहीं मिल सका।
luckman212

1

मार्कशीट द्वारा मूल स्क्रिप्ट काम करती है लेकिन कुछ खिड़कियों के बाद बंद हो जाती है। हो सकता है कि खिड़कियों की सूची में वे ही शामिल हों जो वर्तमान में दिखाई दे रहे हैं। जब आपके पास बहुत सारे हैं तो यह सब बंद नहीं होगा। मैंने खिड़कियों को क्वेरी करने के लिए मुख्य लूप के बाहर एक लूप जोड़ा जब तक कि हमें शून्य की एक विंडो गणना नहीं मिलती। यहाँ कोड है:

मेरी करीबी दोस्त ()

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

अंत बंद करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.