+ -
当前位置:首页 → 问答吧 → 在linux下显示农历 [成功使用]

在linux下显示农历 [成功使用]

时间:2009-09-29

来源:互联网

http://li2z.cn/2009/09/29/liblunar/ 这是骨头上的BLOG介绍
http://code.google.com/p/liblunar/ liblunar官方项目地址
http://code.google.com/p/lunar-applet/ lunar-applet项目地址

在aur上已经有人提交了pkgbuild了,可以直接使用

作者: axlrose   发布时间: 2009-09-29

mark

aur上的liblunar有问题,嗯,错误的地方如下
代码:
checking pkg-config is at least version 0.9.0... yes
configure: error: You need to have gtk-doc >= 1.0 installed to build gtk-doc
==> 错误: 创建失败。
 正在放弃...
Error: Makepkg was unable to build liblunar package.
我觉得makedepends应该加上gtk-doc

作者: jqxl0205   发布时间: 2009-09-29

可以到aur上提交这个问题
还有就是 --disable-gtk-doc算了
1. --enable-gtk-doc 加gtk-doc依赖
2. --disable-gtk-doc 不想要文档的做法

我这lunar-applet还没编译通过,晚上回去再看看

作者: axlrose   发布时间: 2009-09-29

有QT版的就更好了。。。

作者: ashmer   发布时间: 2009-09-30

编译成功打包上传
http://code.google.com/p/lunar-apple...es/detail?id=8
http://code.google.com/u/yetist/ 这是yetist的googlecode所有项目网址

里面提到的gnome-panel-2.26.3-with-lunar.patch 看样子要给gnome-panel打补丁才行
我现在上传的包能编译通过,目前使用的是gnome-panel, xfce4-panel(使用xfce4-xfapplet-plugin) 来添加lunar-applet插件,不过无法显示农历,看样子非要打补丁不可,在liblunar目录下有个test.py,是从骨头的BLOG上抄的,安好liblunar后可以运行测试一下,
代码:
这是官方提供的

Python binding 用法:

>>> import liblunar

>>> import locale

>>> locale.setlocale(locale.LC_ALL, "")

>>> l=liblunar.Date()

>>> l.set_solar_date(2009,10,1,0)

>>> print l.strftime("%(NIAN)年%(YUE)月%(RI)日%(SHI)时 %(Y60)年%(M60)月%(D60)日%(H60)时 生肖属%(shengxiao) 节日%(jieri)")

己丑年八月十三日子时 己丑年癸酉月己卯日子时 生肖属牛 节日国庆节

>>>
编译
lunar.c:2202: error: ‘LUNAR_CALENDAR_SHOW_WEEK_NUMBERS’ undeclared (first
use in this function)

这个错误,需要安装 libgcl库,打包中已提供了这个包的PKGBUILD


===========
补充
代码:
原来AUR上有了这个PKGBUILD了,但编译无法通过,需要修改如下
 #gnome-autogen.sh --enable-liblunar
 ./configure --enable-liblunar \

但编译安装后,还是无法达到 项目主页显示的效果

作者: axlrose   发布时间: 2009-09-30

http://code.google.com/p/lunar-applet/有介绍


1. 如何实现gnome-panel中的clock日历小部件显示农历?

首先安装http://liblunar.googlecode.com 项目的liblunar和liblunar-gtk的最新版本

然后编辑文件/etc/X11/xinit/xinitrc.d/99-liblunar-preload, 在其中设置环境变量LD_PRELOAD环境变量,并加上可执行权限,文件内容如下:
$ 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环境下面,将不显示农历。

作者: chenwenjin   发布时间: 2009-09-30

安装liblunar-gtk 新版好像不能用这个方法了
代码:
$ pacman -Ql liblunar-gtk|grep so
liblunar-gtk /usr/lib/liblunar-gtk.so
liblunar-gtk /usr/lib/liblunar-gtk.so.0
liblunar-gtk /usr/lib/liblunar-gtk.so.0.0.0
liblunar-gtk /usr/lib/python2.6/site-packages/gtk-2.0/liblunar/_lunarcalendar.so
有没有安装成功的网友分享一下方法

引用官方提示
代码:
注:本项目已停止,后续开发及维护请关注http://liblunar.googlecode.com

作者: axlrose   发布时间: 2009-09-30

我安装成功了。
~$yaourt -Ql liblunar-gtk|grep so
liblunar-gtk /usr/lib/liblunar-gtk-preload.so
liblunar-gtk /usr/lib/liblunar-gtk-preload.so.0
liblunar-gtk /usr/lib/liblunar-gtk-preload.so.0.201.1
liblunar-gtk /usr/lib/liblunar-gtk.so
liblunar-gtk /usr/lib/liblunar-gtk.so.0
liblunar-gtk /usr/lib/liblunar-gtk.so.0.201.1
liblunar-gtk /usr/lib/python2.6/site-packages/gtk-2.0/liblunar/_lunarcalendar.so
~$

作者: chenwenjin   发布时间: 2009-09-30

原来问题出在用的是 liblunar-gtk-2.2.1.tar.gz 新版是2.2.2
重新打包上传

代码:
3. 可以自已定义节日和纪念日吗?

可以,liblunar-gtk支持用户自定义节日,这里 有一份相对较全的节日配置文件,将其下载回来放到~/.config/liblunar/目录中即可。用户也可以参照其格式,自定义自己的重要节日。
我已加在安装提示里面了
上传的附件
lunar.tar.gz (3.7 KB, 7 次查看)

作者: axlrose   发布时间: 2009-09-30

引用:
作者: ashmer
有QT版的就更好了。。。
原作者好像正在折腾QT的呢。拆包以后,就比较好折腾了。

作者: bones7456   发布时间: 2009-10-01

新版本2.2.4发布,请使用以下命令安装:
yaourt -S liblunar
yaourt -S liblunar-gtk

然后编辑文件/etc/X11/xinit/xinitrc.d/99-liblunar-preload, 在其中设置环境变量LD_PRELOAD环境变量,并加上可执行权限。

$ 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显示农历日期,达到运行时切换。

作者: yetist   发布时间: 2009-10-03

哇。不知道xfce4的orage是不是使用GtkCalendar,貌似可以和谐和谐

作者: jarryson   发布时间: 2009-10-03

aur上liblunar-gtk这个程序的PKGBUILD打的太不粗糙了吧!

缺少依赖了,望作者work harder。

/etc/X11/xinit/xinitrc.d/99-liblunar-preload希望在PKGBUILD中提供,不要让用户自己生成。

作者: jqxl0205   发布时间: 2009-10-03

嗯,安装后,clock-applet 的内存占用也太大了吧!
上传的图像
Screenshot-系统监视器.png (49.9 KB, 67 次查看)

作者: jqxl0205   发布时间: 2009-10-03

11楼方法可行。

成功,初次打开,占内存不高,16M。但多点击几次日历里面的内容,就会发现内存猛增,就会出现楼上的情形,内存就有可能占用到1G甚至更多,影响本本的运行。

作者: jr0501   发布时间: 2010-05-26

我也会去试一下

作者: nareh   发布时间: 2010-05-26

我只是用ccal在命令行下看看农历。。。

作者: 沈觅仁   发布时间: 2010-05-26

偶一般用这个, 不占任何资源, 需要时看看!
http://www.time.ac.cn/calendar/calendar.htm

作者: sw2wolf   发布时间: 2010-05-26

一直用aur里的ccal,毕竟看农历很少

作者: smileoa   发布时间: 2010-05-26

一直在emacs下看农历。
其实kde和gnome3都很容易实现这个的:可以直接把网上的js万年历直接往桌面拖

作者: jobinson99   发布时间: 2010-05-26

引用:
作者: jobinson99
一直在emacs下看农历。
其实kde和gnome3都很容易实现这个的:可以直接把网上的js万年历直接往桌面拖
强力求细节!!

作者: 沈觅仁   发布时间: 2010-05-26

特别是添加了自定义节日后,占用内存飞速爬升,占用过高,这个方法不行。

还是ccal可以,简单明了。只是怎么把它设置到启动器里呢?可以直接点启动器图标启动,就更方便了。

作者: jr0501   发布时间: 2010-05-27

ccal要求啥locale哦?俺这里咋乱码呢?要求gb2312?

作者: yafeng   发布时间: 2010-05-27

ccal -u 2010

作者: jr0501   发布时间: 2010-05-27

ccal结合imagemagick直接把日历画到桌面上,
再用crontab每两小时更新一次,
多好啊。
上传的图像
Desktop0-2010-05-22-21时09分32秒.jpg (199.9 KB, 33 次查看)

作者: realasking   发布时间: 2010-05-27

请教:这个是什么桌面?用的哪个WM?

作者: withwind   发布时间: 2010-05-27

引用:
作者: withwind
请教:这个是什么桌面?用的哪个WM?
是问的我那个回复么?如果是,wm是用的fvwm,就在默认的方案上稍微改动了一些地方。

作者: realasking   发布时间: 2010-05-27

引用:
作者: realasking
ccal结合imagemagick直接把日历画到桌面上,
再用crontab每两小时更新一次,
多好啊。
那么为什么不使用conky呢~

作者: jqxl0205   发布时间: 2010-05-28

引用:
作者: jqxl0205
那么为什么不使用conky呢~
我也用了conky的,右边的就是。
之所以用imagemagick,是因为我用conky画ccal的输出的时候,
显示的字体排列老是错乱的,对不整齐,
而且字体的显示样式和我的.fonts.conf中设置的也不一致,
也没能做出立体效果,
而用imagemagick画,没有遇到这些问题。

作者: realasking   发布时间: 2010-05-28

引用:
作者: 沈觅仁
强力求细节!!
其实还可以更简单,假设在kde桌面
1、新添加一个plasma浏览器在桌面
2、网上拉一个万年历页面回来,放硬盘里
3、在plasma浏览器里面输入地址,访问之……

自建模块的话,请参考相关文档(就一个部件外壳+导入的js,实在没啥好说的)。

作者: jobinson99   发布时间: 2010-05-28

LXDE的日历是可以用的
不过确实内存泄露太严重……
上传的图像
2010-05-28-163538_800x600_scrot.jpg (50.4 KB, 20 次查看)

作者: yafeng   发布时间: 2010-05-28

引用:
作者: yafeng
LXDE的日历是可以用的
如果不装lxde,能单独用这个程序吗?程序名字是啥?

作者: crazyrain   发布时间: 2010-05-28

引用:
作者: crazyrain
如果不装lxde,能单独用这个程序吗?程序名字是啥?
就是那个liblunar-gtk
声明下:
export LD_PRELOAD="/usr/lib/liblunar-gtk-preload.so"
就可以了

作者: yafeng   发布时间: 2010-05-28

这是根据liblunar主页上作者给出的补丁改的pkgbuild
内存泄露解决了,不过用上后lxpanel感觉到有点闪烁……
上传的附件
liblunar-gtk.tar.gz (1.4 KB, 2 次查看)
liblunar.tar.gz (1.8 KB, 3 次查看)

作者: yafeng   发布时间: 2010-05-29

引用:
作者: yafeng
这是根据liblunar主页上作者给出的补丁改的pkgbuild
内存泄露解决了,不过用上后lxpanel感觉到有点闪烁……
那只好等liblunar稳定后再试一试了~

作者: jqxl0205   发布时间: 2010-05-29

内存占用是个大问题,已经达到了500m,并有增加趋势……

作者: delectate   发布时间: 2010-06-18

刚试了下,ccal 用conky输出的话,确实排列错乱````

作者: Havanna   发布时间: 2010-06-18

引用:
作者: sw2wolf
偶一般用这个, 不占任何资源, 需要时看看!
http://www.time.ac.cn/calendar/calendar.htm
这个网页跳出来时是不是会把浏览器窗口的大小重置一下?能不能改了?

作者: fanqo   发布时间: 2010-06-18