我正在使用 Ubuntu Gnome 13.10(Gnome Shell 3.8)。
当我通过热键或键盘上的音量 +/- 按钮更改音量或亮度时,我没有收到屏幕中间的通知。
其他通知(屏幕底部)有效。
我如何再次启用通知?
答案1
负责弹出音量和亮度通知的程序是notify-osd。它由dbus服务以名称org.freedesktop
.Notifications调用,并通过命令执行Exec=<path to notification program of your choice>
。
就我而言,我安装了 Xfce,然后其中有两个文件/usr/share/dbus-1/services/<naming scheme foreign to me>.service
名为org.freedesktop.Notifications
。我通过 grepping 并计算非唯一结果的结果来检查整个文件夹Name=
,发现该目录中的每个命名空间都是唯一的,除了我的通知命名空间。
这使我想到了一个解决方案,即将执行 Xfce 通知的文件重命名为,service.disabled
这使得 dbus 无法读取该文件,然后重新启动后,我的音量和亮度通知就恢复了。
因此,对于多个用户来说,解决此问题的更通用的抽象方法可能涉及org.freedesktop.Notifications
在文件夹中进行 grepping /usr/share/dbus-1/services
,然后将任何有问题的条目重命名为任何不会最终.service
只留下您想要加载的实际可执行文件的路径(如果不可用)。
您可以使用下面的模板创建一个,作为添加所需通知服务的指南。理论上,也可以调用 bash 并在 dbus 服务文件中使用条件,因为它允许这样做,您还可以使用环境变量对布尔检查进行检查,以根据您的桌面环境选择所需的通知程序,但我还没有完成这项工作。我很高兴我的音量和亮度指示器恢复了。
无论如何,这是代码:这是针对我的 64 位 Ubuntu 的。根据您的环境,会有一些细微的修改。此外,如果尚未安装,请确保您已安装通知 OSD。我尝试寻找一种更新替代方案类型的方法来切换它,但这是我目前能想到的最好的方法。
此方法将允许您保留您安装的任何其他禁用它的程序。我发现其他方法只是通过彻底清除替代它的程序来强制解决问题,但如果您想保留这些程序,那么这种方法适合您。
grep org.freedesktop.Notifications /usr/share/dbus-1/services/*
sudo mv <offending entries to same filename>.service.disabled
gksu gedit /usr/share/dbus-1/services/org.freedesktop.Notifications.service
添加以下内容:
[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/x86_64-linux-gnu/notify-osd
希望对您有所帮助。请原谅我编辑不当,请随意改进我的演示,使其更易于阅读。