前几天做了一个windows下面使用国家地理图片更换壁纸的小东东,叫它BGChanger吧。
现在想弄一个linux下面的。找了一下资料,KDE下面可以使用DCOP(Desktop COmmunication Protocol)。Gnome下面应该可以使用Bonobo,但是没有实践过。DCOP 是一个轻量级进程间和软件模块间通信系统,其目的是让程序能够交互,共享复杂任务,它是基于X Window System的Inter-Client Exchange协议。不过好像现在KDE用的比较多,维基上说现在每一个KDE程序都支持DCOP接口,但是没有提到Gnome如何。我用kdcop查看,发现有一些API返回值有QStringList这样的类型,可能用QT实现的?(DCOP的官方主页上说它依赖QT,但是其他就没关系了,可能这是Gnome不用的原因?)
用DCOP更换壁纸还是很方便的,它提供了API:void setWallpaper(int desk, QString wallpaper, int mode)和void setWallpaper(QString wallpaper, int mode),而在命令行下面,只用dcop kdesktop KBackgroundIface setWallpaper wallpaper mode即可,例如:
dcop kdesktop KBackgroundIface setWallpaper /home/marvel/2007-9-28.jpg 6
这里的6表示将图片拉伸,其他参数没有查到,如果有查到的朋友不妨告诉我:-D