如何从守护程序在KDE中发送桌面通知

5
我有一个守护进程(netplugd),可以在插入或拔出电缆时执行一些操作。这些操作可以通过一个bash脚本来定义。我该如何使用bash以不同的用户身份向我的桌面发送通知,告诉我电缆的状态?
我尝试过以下方法: notify-sendknotify --passivepopup,但是守护进程显示$DISPLAY未设置。

有一点小技巧,但如果你知道你的显示器应该是什么样的,你可以设置它,例如 system("export DISPLAY=:0.0; notify-send "Hello World"")。$DISPLAY 没有被设置,因为守护进程是由进程 1(init)启动的,它与用户/图形会话等无关。一个更好的方法可能是查询系统中活动的图形会话,并确定它们的显示变量。 - Colin
2个回答

6

您也可以尝试

echo hello > /dev/pts/0

这在我使用的NixOS上的KDE Plasma中可以工作。 - luochen1990

4
你可以使用 write 命令,这个命令可以被 KDE 的 Write daemon 捕获,并在你的 KDE 桌面上的通知区域中显示。Write daemon 默认情况下是运行的;如果没有运行,你可以在「系统设置」 -> 「系统管理」 -> 「启动和关闭」 -> 「服务管理器」中更改。
默认情况下,通知会发出声音,并弹出一个大约持续四秒钟的弹出窗口。之后,你会在任务栏上找到通知的提醒。你可以在「系统设置」 -> 「常见外观和行为」 -> 「应用程序和系统通知」 -> 「管理通知」 -> 「应用程序选项卡」 -> 「事件来源:本地系统消息服务」中在一定程度上管理这个通知的行为。

5
我还发现了更适合的“wall”命令。谢谢。 - Victor Dodon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接