การแจ้งเตือนไม่ทำงานบนตัวจัดการหน้าต่างแบบสแตนด์อโลนของ Linux (Openbox, Awesome WM และเหมือนกัน) ฉันพยายามติดตั้ง notification-daemon และ dunst แต่การส่งด้วยnotify-send "something"
ไม่ได้ทำให้หน้าต่างป๊อปอัปปรากฏขึ้น
ฉันพยายามเรียกใช้ polkit-gnome-agent และเรียกใช้ daemons การแจ้งเตือนโดยตรง แต่ก็ไม่ได้ช่วย (ในขณะที่ฉันแก้ไขปัญหาที่คล้ายกันด้วยวิธีนี้ แต่ตอนนี้มันไม่ทำอะไรเลย)
ไม่มีข้อบ่งชี้ข้อผิดพลาดใด ๆ ยกเว้นว่าฉันจะส่งการแจ้งเตือนเล็กน้อยด้วย python ดังนั้นฉันจะได้รับเฉพาะข้อความแสดงข้อผิดพลาดที่คลุมเครือ:
File "/usr/lib/python3.3/site-packages/gi/types.py", line 113, in function
return info.invoke(*args, **kwargs)
gi._glib.GError: Could not connect: Connection refused
โปรแกรม C เล็กน้อยก็ไม่แสดงผลใด ๆ (เช่นไม่มีข้อผิดพลาด)
ฉันใช้ Archlinux กับ systemd และ d-bus ฉันสงสัยว่าเป็นปัญหากับ polkit หรือ daemon บางชนิดที่ไม่ทำงานเมื่อเริ่มต้นตัวจัดการหน้าต่าง แต่ไม่มีความคิดฉันสามารถลองอะไรได้บ้างหรือฉันจะได้รับข้อความแสดงข้อผิดพลาด
แก้ไข:ฉันใช้โค้ดตัวอย่างจากที่นั่น: https://wiki.archlinux.org/index.php/Libnotify#Python
Dbus ควรรันเนื่องจาก systemd มีการพึ่งพา ฉันได้libnotify
รับการติดตั้ง - notify-send
มันเป็นแพคเกจที่ให้บริการ daemon การแจ้งเตือนควรเริ่มตามที่ต้องการ (เฉพาะเมื่อเกิดการแจ้งเตือน) โดยทำตามไฟล์เดสก์ท็อป/usr/share/dbus-1/services/org.freedesktop.Notifications.service
:
[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/bin/dunst
ฉันยังพยายามเรียกใช้ daemons โดยตรง (เพิ่งรัน) และลองส่งการแจ้งเตือน ถ้า somenone รู้ว่าฉันจะได้รับข้อมูลเพิ่มเติมได้อย่างไรโปรดอย่าลังเลที่จะแนะนำ
แก้ไข 2:ฉันพยายามเรียกใช้ภูตการแจ้งเตือนด้วย sudo: sudo notification-daemon_name &
(ในกรณีของฉันsudo dunst &
) และsudo notify-send something
จากนั้นการแจ้งเตือนทำงาน แต่เมื่อฉันพยายามกระทำใด ๆ ก่อนหน้านี้ในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ (ซึ่งเป็นสิ่งสำคัญที่โปรแกรมส่วนใหญ่ส่งการแจ้งเตือนในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ) ไม่มีอะไรแสดงให้เห็น
notification-daemon
ปฏิเสธที่จะทำงานเลยโดยไม่มีข้อผิดพลาดหรือคำเตือนใด ๆ
แก้ไข 3:เห็นได้ชัดว่ามันเป็นปัญหาสิทธิ์: ฉันไม่สามารถส่งการแจ้งเตือนโดยไม่ต้องเข้าถึงราก หลังจากรีบูตใหม่ทั้งหมด: sudo notify-send "something"
ทำงานได้โดยไม่ต้องเปิด daemons ใด ๆ ด้วยตนเองอย่างไรก็ตามสิ่งที่ฉัน (และโปรแกรมที่เปิดตัว) ควรทำเพื่อให้สามารถส่งการแจ้งเตือนโดยไม่ต้องใช้สิทธิ์รูทเนื่องจากเป็นไปได้ใน Gnome หรือสภาพแวดล้อมบนเดสก์ท็อปอื่น ๆ
libnotify
เนื่องจากมีnotify-send
คำสั่ง (ซึ่งเป็นสิ่งที่คุณต้องการ) หรือไม่?