玩转libnotify

Ubuntu 9.04一个特性就是新的通知机制Notify OSD,让人一眼看上去很酷的样子,其实只是基于libnotify的调用,别看又DBUS又OSD那么复杂,其实一点都不神秘,跟PT来:

1
2
3
4
5
6
7
8
#!/usr/bin/python
#coding:utf-8
 
import pynotify
 
pynotify.init ("PT-Title")
n = pynotify.Notification ("PT的贺电", "PT再次发来贺电")
n.show ()

没看错,就是这么几句Python,保存成文件运行试试:

哈哈,很简单吧!

如果你安装了libnotify-bin包,shell里面会有notify-send这个工具:

notify-send "PT的贺电" "PT发来贺电"

差不多的效果,我就不抓图了,自己试试!

当然除了python,libnotify还能在很多种语言的库实现,我用aptitude search libnotify搜索了一下,很明显有libinotify-ruby,libnotify-dev,libnotifymm-dev分别是ruby、C、C++方式的绑定,不过,python的pynotify是Ubuntu 9.04里面默认安装的呢……

详细的开发还是看看Ubuntu的Notification Development Guidelines吧,注意在后部分有很多example的噢!!!

文章分类 Unix/Linux 标签: , , ,
10 comments on “玩转libnotify
  1. maomaol说道:

    感谢PT牛的推荐~~~

  2. shellex说道:

    恩,可惜这个notify反而没有了以前的某些功能:
    添加按钮事件响应,直接变成弹出对话框
    添加timeout,没有任何作用。本来可以 用它来显示歌词的,现在不能了

    也许是我不会用

     import pynotify
     pynotify.init("TEst")
     n=pynotify.Notification("Title","body")
     n.add_action("bb","aa", lambda x: x+1)
     n.set_timeout(1000)
     n.show()
    • bishop说道:

      可惜这个notify反而没有了以前的某些功能:
      添加按钮事件响应,直接变成弹出对话框
      ===========================================
      上方的内容是你写下得,后面还附上了部分代码……
      我关注得是:如何实现点击桌面提醒的浮动窗口就可以强出对话框呢? 比如在pidgin中,某个好友上线了或者是来了一个消息,就会出现一个浮动的窗口在ubuntu unity桌面的右上角部分…… 如果能写一个pidgin插件或者是别的脚本实现点击这个浮动窗口就可以出现对话框就好了。 请指点一二。 另外我加了你的gtalk帐号

  3. shellex说道:

    嗯。显示歌词可以使用Update。这个确实比timeout方便。
    但是action就不行了。
    Guidelines也说了不支持action

  4. PT说道:

    呵呵,谢谢shellex的提醒~~

    感觉用notify来做歌词显示可能有点不大合适……

  5. 新手说道:

    这次想请教一个和文章内容关系不大的问题。
    我看到博主用的是IBUS输入法,我在校园网里面用IBUS的那个PPA的源实在是太慢了(显示还剩6个多小时……)。
    但是自己才学LINUX不久,自己也不会打包IBUS(搜过一些办法,但是我自己在9.04里面弄不出来,估计自己水平太烂了)在GOOGLE CODE的tar文件。
    想请问一下有没有什么办法,或者哪里能直接下载到DEB包就更好了。

  6. PT说道:

    部分ppa源在国内有cn那个服务器有镜像的,你添加这个源应该就可以很快地安装ibus了:

    deb http://archive.ubuntu.org.cn/ppa/ibus-dev/ppa/ jaunty main

    只能按上面填写,没其他发行版的,也没amd64的,不过应该够你用吧?

  7. PT说道:

    不行的话把那些deb都用软件拉下来dpkg安装

  8. 新手说道:

    我试试,非常感谢。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*