알림을 해제하는 키보드 단축키


27

키보드로 알림을 해제하고 열 수 있기를 원합니다

(알림 센터 열기 / 닫기에 대해 이야기하지 않음)

이것이 가능한가? 그렇다면 어떻게?


요청한 업데이트를 보셨습니까?
markhunte

답변:


25

Automator 서비스를 생성하여이 Applescript를 실행하고 시스템 환경 설정 키보드 단축키에서 키보드 단축키를 제공 할 수 있습니다.

경고 및 배너 알림이 닫힙니다.


Automator에서 새로운 서비스를 선택하십시오

여기에 이미지 설명을 입력하십시오


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 / windows는 총 수까지 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

@Drewdavid는 답변을 업데이트했습니다 :-)
markhunte

1
Drewdavid : 같은 문제가 발생하여 보안 및 개인 정보 보호 문제를 해결하고 BetterTouchTool을 통해 글로벌 핫키를 설정했습니다.
Bez Hermoso

1
참고 : 프로세스 "알림 센터"는 "알림 센터"의 "알림 센터"로 지정할 수 있습니다. 시스템은 Applescript 내에서 모두 이해합니다. AppleScript에서 앱 이름을 사용하는 것이 일반적입니다. 이 경우 알림 센터 "를 선택하십시오. do 쉘 스크립트 또는 유닉스를 사용하는 경우 실제 프로세스 이름"NotificationCenter "
markhunte를 사용하십시오.

1
@Chris, 워크 플로를 Automator의 응용 프로그램으로 저장하십시오. "Close All Noifications.app"와 같은 이름으로 접근성에 수동으로 추가하십시오. 그런 다음 위에서 설명한대로 서비스를 생성하되 Applescript를 실행하여 "응용 프로그램"모든 알림 닫기 "를 활성화하십시오"
markhunte

6

당신이 요구하는 것은 아닙니다.

배너 유형으로 표시되는 시간을

다음에 터미널 및 붙여 넣기

defaults write com.apple.notificationcenterui bannerTime #

# 숫자 기호를 사용하여 배너 알림을 원하는 시간 (초)으로 바꾼 다음 로그 오프했다가 다시 로그온하십시오.

원래 기능 (5 초)을 복원하려면 defaults delete com.apple.notificationcenterui bannerTime

나는 당신이 어떤 것을 알지 :하지만 당신은 할 수 사이클 스크립트와 온 / 오프 알림을과에 단축키를 할당합니다. 명령 줄에서 Mountain Lion의 알림 센터를 일시적으로 비활성화합니까?


게시 해 주셔서 감사합니다. 시간 제한도 주목할 가치가 있습니다 :)
Drewdavid

High Sierra에서 작동합니까? 나는 효과가 없었습니다.
luckman212

0

markhunte의 원본 스크립트는 작동하지만 몇 개의 창 후에 중지됩니다. 창 목록에 현재 표시된 창만 포함되어있을 수 있습니다. 너무 많으면 모두 닫히지 않습니다. 창 루프 수가 0이 될 때까지 메인 루프 외부에 루프를 추가하여 창을 쿼리했습니다. 코드는 다음과 같습니다.

closeNotif ()의 내 closeNotif ()

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

끝 닫기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.