本文来自依云's Blog,转载请注明。
Awesome 用户们,你们有没有觉得 Awesome 那个 naughty 组件的通知很丑?
这样子是不是好一些?
Linux 的桌面通知机制是使用 D-Bus 通信的。所以,要换个桌面通知的流程如下:
- 让旧的桌面守护进程释放对应的 D-Bus 目的地名;
- 运行新的桌面守护进程。
首先安装个新的通知守护进程,比如我安装的xfce4-notifyd
。
阅读 Awesome 的naughty.lua
代码之后,发现 Awesome 其实能够「慷慨」地释放org.freedesktop.Notifications
这个通知用的地址的:
$ awesome-client awesome#return dbus.release_name("session", "org.freedesktop.Notifications") boolean true
使用awesome-client
告诉 Awesome 执行这条语句,释放这个 D-Bus 目的地址。返回true
就表示执行成功了。如果喜欢的话,当然可以把这句写到rc.lua
里去。
其实做到这一步就可以了。在需要时 D-Bus 会自动激活 xfce4-notifyd 的进程。当然也可以手动运行:
$ /usr/lib/xfce4/notifyd/xfce4-notifyd
还可以使用xfce4-notifyd-config
命令来进行简单的配置哦。当然,这个替换对于从 Awesome 脚本里直接调用 naughty 不起效的。
从上边的图片可以看到,XFCE 的通知支持按钮的,Awesome 不支持这个。不过,它们都支持类似这种<span color="blue">蓝色文字</span>
的 Pango 文本标记语法。
要换回使用 Awesome 来显示通知的话,先关掉其它通知守护进程,然后让 Awesome 告诉 D-Bus 它要来处理这个地址上的消息:
awesome# return dbus.request_name("session", "org.freedesktop.Notifications") boolean true
最后来吐槽一下 C 公司的notify-osd
,就是 Ubuntu 上默认那个看上去不错的黑框框。它不支持 Pango 文本标记也就罢了,不能同时显示多条通知只能一个个地来也就罢了,像 fcitx 这样往通知上放点按钮你猜会怎么着?——
竟然出来个夺取窗口焦点的弹框……
Dec 10, 2013 02:47:24 AM
都用 awesome 了,还追求美观!
Dec 10, 2013 08:27:15 PM
喜欢GNOME的桌面提醒功能。美观也不会打扰工作,更不抢焦点。
可惜不能独立于GNOME之外用。
Dec 11, 2013 11:59:31 AM
我正好在前两天回归ubuntu了……
发现如今的unity其实还不错。
Dec 11, 2013 08:07:19 PM
Ubuntu本身不错,只可惜Canonicial太封闭了。
目前抨击Canonicial的决策封闭的声音很多,但是Canonicial现在新的发展路线到底能不能成功,还要看时间说话了。
Dec 14, 2013 08:38:40 PM
其实
naughty 自定义还是很强大的,按钮事件还好加上,超链接是个问题。就如官方所说,那该怎么实现呢