这是一个linux下的中国农历函数库,实现了农历、节气、节日、自定义纪念日等功能。
feature
liblunar
- 实现公农历转换
- 显示农历、节气、节日、纪念日、干支、八字、生肖
- 支持自定义重要纪念日功能, 自定义纪念日功能需自行修改$XDG_CONFIG_HOME/liblunar/hodiday.dat文件。
- python、vala 绑定
liblunar-gtk
- 使用preload, 支持动态切换GtkCalendar和LunarCalendar(见后面截图)
- 支持自定义节日显示颜色。
- python,vala 绑定。
安装
./configure --prefix=/usr --enable-gtk-doc make make install
FAQ
1. 如何实现gnome-panel中的clock日历小部件显示农历?
编辑文件/etc/X11/xinit/xinitrc.d/99-liblunar-preload, 在其中设置环境变量LD_PRELOAD环境变量,并加上可执行权限,然后重新登录(重启X)。文件内容如下:
$ cat /etc/X11/xinit/xinitrc.d/99-liblunar-preload #!/bin/sh LD_PRELOAD="/usr/lib/liblunar-gtk-preload.so" export LD_PRELOAD $ chmod +x /etc/X11/xinit/xinitrc.d/99-liblunar-preload
这将使得所有基于GtkCalendar的程序在运行时自动使用LunarCalendar显示农历日期,达到运行时切换。运行效果见后面截图。
2. 如果不想使用LD_PRELOAD环境变量,如何修改现在基于GtkCalendar的程序,使其支持农历显示?
将原有程序中的gtk_calendar_new()代码替换为lunar_calendar_new(); 设置GtkCalendar, 打开GTK_CALENDAR_SHOW_DETAILS。
3. 可以自已定义节日和纪念日吗?
可以,liblunar-gtk支持用户自定义节日,这里 有一份适合大陆的节日配置文件,将其下载回来放到~/.config/liblunar/目录中即可。用户也可以参照其格式,自定义自己的重要节日。
4. 可以在非中文环境下不让它显示拼音吗?
liblunar-gtk默认支持中国大陆、中国台湾、中国香港等地区的本地显示,在其它的locale环境下,将会显示拼音,如果不想在其它非中文环境下面显示拼音的话,可以设置系统环境变量LIBLUNAR_GTK_IGNORE_NON_CHINESE=1, 这样在其它locale环境下面,将不显示农历。
一些截图
almanah, gnome下的笔记本软件:
empathy,gnome的IM软件日志界面:
xfce4-panel,xfce4-panel的datetime面板插件: