I am LAZY bones? AN ancient AND boring SITE

在linux下显示农历

看到标题,很多熟悉linux的朋友估计都会想到曾经的 lunar-applet ,我之前也用过这款软件。
不过lunar-applet其实是基于gnome-panel的clock这个applet的代码做的,只是替换了原来显示日历的控件而已,这样,如果成为单独一个软件的话,得同步上游的代码,维护起来比较累。
所以,最近软件的作者 yetist 再次发力,把lunar-applet拆成了2个包外加一个patch。
具体就是:

  • 只依赖 glib-2.0 的liblunar,这个只提供了计算农历信息的核心的算法;
  • 依赖 gtk库 和 liblunar 的 liblunar-gtk 这个提供一套基于 gtk 的 widget;
  • 然后是给 gnome-panel 的一个 patch,这个patch调用 liblunar-gtk 的 widget,替换掉 clock 的日历显示。

这样虽然描述起来比较费力,但是显然比较合理和易于维护,所以lunar-applet本身也就停止维护了。
现在貌似还没有deb/rpm的包,不过如果你用的也是gentoo的话,可以试试我传到gentoo-china-overlay的ebuild。如果你已经加了这个overlay的话,现在就可以给 gnome-panel 加上 lunar 这个USE,然后重新emerge一下 gnome-panel,就可以看到效果了。
我这里的截图,已经被传到项目主页里去了:
lunar-applet

另外,值得一提的是,liblunar 还自带 python 的绑定哦,你要在python里使用的话,也是相当方便的,给个例子:

>>> import locale, time, liblunar
>>> locale.setlocale(locale.LC_ALL, "")
'zh_CN.UTF-8'
>>> t = time.localtime()
>>> l = liblunar.Date()
>>> l.set_solar_date(t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour)
>>> format = "\n公历:%(YEAR)年%(MONTH)月%(DAY)日\n农历:%(NIAN)年%(YUE)月%(RI)日\n干支:%(Y60)年%(M60)月%(D60)日\n生肖:%(shengxiao)\n"
>>> print l.strftime(format)
 
公历:二○○九年九月二十九日
农历:己丑年八月十一日
干支:己丑年癸酉月丁丑日
生肖:牛
 
>>>

更多信息,还可以在项目主页里挖到。

最后修改时间: 2009年09月29日 12:55

本文章发表于: 2009年09月29日 12:50 | 所属分类:gentoo, GUI软件. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

3 个评论 关于: “在linux下显示农历”

  1. GunsNRose 在 2009年09月29日 16:23 说:回复

    非常棒,赞一个

  2. GunsNRose 在 2009年09月30日 00:05 说:回复

    骨头 提交ebuild到gentoo-china-overlay吧
    在archlinux下试着安装打过补丁的 gnome-panel-liblunar,但还是没有显示农历

    • bones7456 在 2009年09月30日 08:31 说:回复

      写这个文章的时候,已经提交了啊。

发表评论