发现ubuntu不能自定义更换背景,感觉很郁闷。于是查了点资料:
-----------------------------------------------------------------------------
ubuntu karmic的桌面背景里面有个定时切换的,名称叫做cosmos,路径位于/usr/share/backgrounds/cosmos,这个路径下面 有些壁纸以及控制更换壁纸的脚本文件:background-1.xml。 如果你想新建一个自己喜欢的壁纸, 同时让这些壁纸可以定时更换,那么就需要先建立一个目录,然后把你心仪的壁纸以及控制脚本复制到这个目录下面:
sudo mkdir -p /usr/share/backgrounds/my
sudo cp /usr/share/backgrounds/cosmos/background-1.xml /usr/share/backgrounds/my/
sudo cp /your/image /usr/share/backgrounds/my
然后编辑控制脚本:
sudo vi /usr/share/backgrounds/my/background-1.xml
将里面的路径和文件名替换成你自己的即可。 做完这些,还不能让你自己的背景图片出现在背景列表里,还需要建立一个控制gnome背景属性的脚本。
sudo cp /usr/share/gnome-background-properties/cosmos.xml /usr/share/gnome-background-properties/my.xml
再把my.xml中的background-1.xml的路径修改成你的即可。
sudo vi /usr/share/gnome-background-properties/my.xml
>>>
/usr/share/backgrounds/my/background-1.xml
小结:其中图片不一定要复制到上面所说的文件夹,只要写对路经即可
1795.0
和
5.0
使用时间和专换时间,单位为秒,默认30分钟(1800秒),如要修改为10分钟,两个数字加起来为600就是了,比如 595.0 和 5.0 或 598.0 和 2.0 。
--------------------------------------------------------------------------------------
于是写了几个小代码实现了,是用c++/shell写的,比较简单。后来发现有人。
把我的简单代码 也贴过来吧。
- #!/bin/bash
-
#功能:把src的图片软链接到dest目录下。可以递归访问图片。此程序名:copy_pic.sh
-
src="$1"
-
dest="$2"
-
-
copy_file()
-
{
-
for file in *
-
do
-
if [ -d "$file" ]
-
then
-
#echo $file is a dir
-
cd "$file"
-
copy_file
-
cd ..
-
else
-
if echo "$file"| grep 'jpg$' >/dev/null
-
then
-
echo $file
-
ln -s "$(pwd)/$file" "$dest"
-
fi
-
fi
-
done
-
}
-
-
if [ -d "$src" ]
-
then
-
cd "$src"
-
copy_file
-
fi
然后是生成xml的程序,用c++写的:generate_background_xml.cpp
- #include <iostream>
-
#include <fstream>
-
#include <string>
-
#include <assert.h>
-
using namespace std;
-
-
string path="/usr/share/backgrounds/";
-
void print_head(ofstream & ofs)
-
{
-
ofs<<""<<endl;
-
ofs<<" "<<endl;
-
ofs<<" 2009"<<endl;
-
ofs<<" 08"<<endl;
-
ofs<<" 04"<<endl;
-
ofs<<" 00"<<endl;
-
ofs<<" 00"<<endl;
-
ofs<<" 00"<<endl;
-
ofs<<" "<<endl;
-
ofs<<""<<endl;
-
return ;
-
}
-
-
void print_static(string name, ofstream &ofs)
-
{
-
// string fullpath = path+name;
-
ofs<<" "<<endl;
-
ofs<<" 1795.0"<<endl;
-
ofs<<" "+name+""<<endl;
-
ofs<<" "<<endl;
-
return ;
-
}
-
-
void print_transition(string from, string to, ofstream &ofs)
-
{
-
ofs<<" "<<endl;
-
ofs<<" 5.0"<<endl;
-
ofs<<" "+from+""<<endl;
-
ofs<<" "+to+""<<endl;
-
ofs<<" "<<endl;
-
return ;
-
}
-
-
void print_end(ofstream &ofs)
-
{
-
ofs<<"";
-
return ;
-
}
-
-
-
int main(int argc , char** argv)
-
{
-
-
assert(argc>=1);
-
ofstream ofs;
-
string pre="";
-
string now;
-
-
ofs.open(argv[1]);
-
-
print_head(ofs);
-
-
while(cin>>now)
-
{
-
if(pre != string(""))
-
{
-
print_transition(path+pre,path+ now, ofs);
-
}
-
print_static(path+now, ofs);
-
-
pre=now;
-
}
-
print_end(ofs);
-
return 0;
-
-
}
用法:sudo ./copy_pic.sh src /usr/share/backgounds/ | ./gen tem.xml
然后拷贝生成的xml就行了。
阅读(1789) | 评论(0) | 转发(0) |