ฉันต้องการยกเลิกและเปิดการแจ้งเตือนด้วยแป้นพิมพ์
(ไม่ได้พูดเกี่ยวกับการเปิด / ปิดศูนย์การแจ้งเตือน)
เป็นไปได้ไหม และถ้าเป็นเช่นนั้นได้อย่างไร
ฉันต้องการยกเลิกและเปิดการแจ้งเตือนด้วยแป้นพิมพ์
(ไม่ได้พูดเกี่ยวกับการเปิด / ปิดศูนย์การแจ้งเตือน)
เป็นไปได้ไหม และถ้าเป็นเช่นนั้นได้อย่างไร
คำตอบ:
คุณสามารถสร้างบริการ Automator เพื่อเรียกใช้ Applescript นี้และกำหนดแป้นพิมพ์ลัดในแป้นพิมพ์ลัดของ System Preferences
สิ่งนี้จะปิด Alert และ banners Notification
ใน Automator เลือกบริการใหม่
เพิ่มคำสั่ง Run 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
ตั้งค่า 'บริการได้รับ [ไม่มีอินพุต] ใน [แอปพลิเคชันใด ๆ ]'
บันทึกการบริการ
เปิดแป้นพิมพ์ลัดในการตั้งค่าระบบและตั้งค่าสำหรับบริการของคุณภายใต้ 'บริการ'
ตอนนี้แอปที่เพิ่งเปิดตัวใหม่จะเลือกทางลัด
(หมายเหตุ: ฉันจัดโครงสร้างสคริปต์เพื่อตอบโต้การโยนข้อผิดพลาดที่จะเกิดขึ้นเมื่อการแจ้งเตือน / หน้าต่างเริ่มปิด
การเรียงข้อมูล / หน้าต่างจะมีหมายเลข 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
ไม่ใช่สิ่งที่คุณขอ:
คุณสามารถ จำกัด เวลาที่แสดงสำหรับประเภทแบนเนอร์ด้วย
เทอร์มินัลและวางในต่อไปนี้
defaults write com.apple.notificationcenterui bannerTime #
ด้วยเครื่องหมาย # number ถูกแทนที่ด้วยจำนวนวินาทีที่คุณต้องการให้การแจ้งเตือนแบนเนอร์ติดอยู่จากนั้นออกจากระบบแล้วเปิดใหม่
ในการกู้คืนฟังก์ชั่นดั้งเดิม (5 วินาที) ให้ใช้ defaults delete com.apple.notificationcenterui bannerTime
ฉันรู้ว่าคุณกล่าวว่าไม่มี แต่คุณสามารถวงจรประกาศเปิด / ปิดด้วยสคริปต์และกำหนดแป้นพิมพ์ลัดให้กับมัน ปิดใช้งานศูนย์การแจ้งเตือนใน Mountain Lion ชั่วคราวจากบรรทัดคำสั่งหรือไม่
สคริปต์ต้นฉบับโดย markhunte ทำงานได้ แต่หยุดหลังจากผ่านไปสองสามหน้าต่าง อาจเป็นได้ว่ารายการของหน้าต่างมีเฉพาะหน้าต่างที่มองเห็นได้ในปัจจุบันเท่านั้น เมื่อคุณมีมากเกินไปสิ่งนี้จะไม่ปิดทั้งหมด ฉันเพิ่มลูปนอกลูปหลักเพื่อเคียวรีหน้าต่างจนกว่าเราจะได้จำนวนหน้าต่างเป็นศูนย์ นี่คือรหัส:
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
ปิดท้ายหมายเหตุ