12
9
2013
5

替换 Awesome 内建的桌面通知

本文来自依云's Blog,转载请注明。

Awesome 用户们,你们有没有觉得 Awesome 那个 naughty 组件的通知很丑?

Awesome notification

这样子是不是好一些?

Xfce notification

Linux 的桌面通知机制是使用 D-Bus 通信的。所以,要换个桌面通知的流程如下:

  1. 让旧的桌面守护进程释放对应的 D-Bus 目的地名;
  2. 运行新的桌面守护进程。

首先安装个新的通知守护进程,比如我安装的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 这样往通知上放点按钮你猜会怎么着?——

notify-osd

竟然出来个夺取窗口焦点的弹框……

Category: Linux | Tags: ubuntu awesome D-Bus 窗口管理器 | Read Count: 9059
自由建客 说:
Dec 10, 2013 02:47:24 AM

都用 awesome 了,还追求美观!

Star Brilliant 说:
Dec 10, 2013 08:27:15 PM

喜欢GNOME的桌面提醒功能。美观也不会打扰工作,更不抢焦点。
可惜不能独立于GNOME之外用。

jiazhoulvke 说:
Dec 11, 2013 11:59:31 AM

我正好在前两天回归ubuntu了……
发现如今的unity其实还不错。

Star Brilliant 说:
Dec 11, 2013 08:07:19 PM

Ubuntu本身不错,只可惜Canonicial太封闭了。
目前抨击Canonicial的决策封闭的声音很多,但是Canonicial现在新的发展路线到底能不能成功,还要看时间说话了。

test4only 说:
Dec 14, 2013 08:38:40 PM

其实 naughty 自定义还是很强大的,按钮事件还好加上,超链接是个问题。就如官方所说,那该怎么实现呢


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com