คั่นหน้า: ปุ่มปิดที่แจ้งเตือน-osd?
Ref:
แนวคิดที่ได้รับการพิสูจน์แล้วว่าเป็นจริงbash
'd OSD ป๊อปอัพกราฟฟิตีแบบ "ปิดการใช้งาน" เป็นวิธีคิดและฟักเป็น:
dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "member=Notify" | \
sed -u -e 's/.*/killall notify-osd/g' | \
bash
สิ่งนี้สามารถเรียกใช้ในเทอร์มินัลหรือเป็นงานพื้นหลัง - หยุดมันและดำเนินการต่อกราฟฟิตีแบบผุดขึ้น
OP ระบุว่า "ไม่ฉันปิดใช้งานไม่ได้" หากนี่หมายความว่าระบบแจ้งเตือนไม่ควรถูกปิดการใช้งานโดยปัญหาที่ตอบยากปัญหานี้จะสอดคล้องกับสิ่งนั้น ระบบยังคงอยู่ ถ้ามันหมายถึงปัญหาที่ตอบยากไม่ทราบวิธีการทำเช่นนั้นแล้ววิธีการแก้ปัญหาที่เกี่ยวข้องอีกครั้ง
รายละเอียดอธิบายด้านล่างบรรทัด สุดยอดจะฝังทุกอย่างใน (ใน?) DBus เพื่อเรียกใช้โดยตรง
qdbus org.freedesktop.Notifications \
/org/freedesktop/Notifications \
org.freedesktop.Notifications.CloseNotification(uint id)
วิธีการแก้ปัญหาพื้นฐานมากไร้เดียงสามากที่เป็นหลักฐานเพิ่มเติมของแนวคิดมากกว่าการปฏิบัติเป็นหลัก "คนพิการ" notify-osd
(หรืออย่างน้อยผลกระทบของมัน) อย่าลืมยกเลิกเมื่อทดสอบเสร็จแล้ว! โดย ETX'ng ด้วย <ctrl> -C หรือปิดหน้าต่างเทอร์มินัล ฯลฯ มันทำงานได้ดี แต่ไม่สามารถใช้งานได้จริง! เนื่องจากโชคไม่ดีที่มีงานอื่น ๆ พยายามทำของพวกเขา ...
while true; do killall notify-osd; done
(เพื่อ "ฟัง" กิจกรรมที่เกี่ยวข้องคุณอาจต้องการ " grep
ออก"
notify-osd: no process found ....
)
ทดสอบโดยรันในหน้าต่างเทอร์มินัลและจากหน้าต่างเทอร์มินัลอื่นลองทำ:
notify-send "test 1" "now you see it not"
notify-send "test 2" "you see it not after test 1 evaporates"
notify-send "test 3" "finally after test 2 evaporates"
หยุดกระบวนการแรกแล้วลองข้อความอีกครั้ง
บางทีอาจจะเป็นnotify-osd
ตัวบ่งชี้สำหรับอาจก่อให้เกิดunity-panel-service
killall notify-osd
ปุ่มปิดจุดร้อนจะไม่อยู่ใน & (ไม่สามารถ!) ได้ในหน้าต่างการแจ้งเตือน แต่จะมีอยู่ในแผงตัวบ่งชี้ นี่เป็นแนวคิดที่คล้ายคลึงกันอย่างสมบูรณ์กับ Unity สำหรับ Windows การใช้แถบด้านบนสำหรับการปิดการแจ้งเตือนนั้นคล้ายกับวิธีที่ Unity เนรเทศเมนูหน้าต่างที่มีกล่องปิดขนาดเล็กและขนาดใหญ่ไปยังแถบเมนูด้านบน
ทางออกที่สวยงามอย่างแท้จริงจะมีตัวบ่งชี้ปรากฏขึ้นเมื่อกิจกรรม DBus สำหรับnotify-osd
รายการและหายไปเมื่อไม่มีการแจ้งเตือนที่รอดำเนินการ
นอกจากนี้ยังอาจแก้ไขปัญหาของการแจ้งเตือนแบบเรียงซ้อน - สามารถพบได้ครั้งละหนึ่งรายการเท่านั้นและหากการแจ้งเตือนหลายรายการที่รอดำเนินการแต่ละรายการจะต้องหายไปก่อนที่การแจ้งเตือนครั้งต่อไปจะปรากฏขึ้น
DBus-monitor
'ng ของnotify-osd
อินเตอร์เฟซการแจ้งเตือน แต่จะให้รับทราบทันทีที่รอการประกาศแม้ว่าจะมีหนึ่งแล้วแสดง (และถ้าkillall notify-osd
ออกทันที - โอมเพี้ยง!)
เลือกทั้งหมดลากและวางไปที่หน้าต่างเทอร์มินัลสำหรับการทดสอบต่อไปนี้:
notify-send "test 1" "now you see it"
notify-send "test 2" "you see it after test 1 evaporates"
notify-send "test 3" "finally after test 2 evaporates"
ตอนนี้ทำเช่นเดียวกันกับ p {r} oof:
notify-send "test 1" "now you don't"
notify-send "test 2" "you see it not! after test 1 evaporates"
notify-send "test 3" "NOT finally after test 2 evaporates"
killall notify-osd
notify-send "gonzo" "gone nada zip zilch"
killall notify-osd
ในการแก้ปัญหาปัญหาจะได้รับการเรียกเมื่อDBus monitor
ตรวจพบ OSD ป๊อปอัพกิจกรรมกราฟฟิตี