玩转libnotify

May 22, 2009

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的噢!!!

tags: , , ,
posted in Unix/Linux by PT

Follow comments via the RSS Feed | Leave a comment | Trackback URL

9 Responses to 玩转libnotify

  1. maomaol says:

    感谢PT牛的推荐~~~

  2. shellex says:

    恩,可惜这个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()
  3. shellex says:

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

  4. PT says:

    呵呵,谢谢shellex的提醒~~

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

  5. 新手 says:

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

  6. PT says:

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

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

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

  7. PT says:

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

  8. 新手 says:

    我试试,非常感谢。

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Page optimized by WP Minify WordPress Plugin

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org