随机更换壁纸的脚本,能凑合用

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

随机更换壁纸的脚本,能凑合用

#1

帖子 c\nc » 2008-09-17 14:59

代码: 全选

#!/bin/bash
WD="${HOME}/picture/Wallpaper/random 0" # 壁纸目录(目前不能包含中文)
INTERVAL=1 # 更换时间间隔(秒)
DELAY=0 # 第一次更换壁纸前的暂停时间(秒)
TYPES=":image/jpeg:image/jpg:image/png:image/x-ms-bmp:image/gif:" # 文件类型
# -----------------------------------------------------------------------------
HISTORY=$HOME/.swp_history
# 此处是个死循环 @@
(export IFS=$'\n'
while sleep $DELAY; do	
	# 获取文件列表
	files="$(for f in "$WD"/*; do
			if [[ $TYPES =~ :$(file -bi "$f"): ]]; then 				
				echo "$f" && let "i++"
			fi
		done)"
	# 将文件列表和已经更换过的壁纸历史对照,得到剩余壁纸序列	
	que=(`echo "$files" | cat - "$HISTORY" 2>/dev/null | sort | uniq -u`) 
	ub=$((${#que[@]} - 1))
	# 如果已经没有壁纸可显示,清空历史重来
	if [ $ub -lt 0 ]; then
	 	: > "$HISTORY"
		continue;
	fi
	# 随机取出一张壁纸,更换成功后写入历史
	if [ $ub -eq 0 ]; then x=0; else let "x = $RANDOM % ub + 1"; fi
	path="${que[$x]}"	
	gconftool-2 --set "/desktop/gnome/background/picture_filename" \
		    --type "string" "$path"
	[[ $? -eq 0 ]] && echo "$path" >> "$HISTORY"
	sleep $INTERVAL
done)
exit 0
:shock: :x
上次由 c\nc 在 2008-09-17 22:17,总共编辑 1 次。
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

#2

帖子 solcomo » 2008-09-17 15:09

:shock: :x
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

#3

帖子 c\nc » 2008-09-17 20:35

楼上的,象棋能走了?
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

#4

帖子 solcomo » 2008-09-17 21:12

早就能走了...
就是想走哪走哪
viewtopic.php?t=136903&highlight=
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
sinyadvan
帖子: 724
注册时间: 2008-04-02 15:36
来自: O_O

#5

帖子 sinyadvan » 2008-09-17 22:19

不错,顶之,记得有个用python写的
^o^ && O_O && ^_^
One World|One Dream|One Piece
愛 ^_^ 這個 美麗的世界O_O

本公司专治各种不服、不爽、谩骂、挑衅。
头像
goodluck1982
帖子: 171
注册时间: 2007-07-05 2:48

Re: 随机更换壁纸的脚本,能凑合用

#6

帖子 goodluck1982 » 2008-10-18 0:20

我是用 cron 定时执行一个随机设定墙纸的脚本的
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 随机更换壁纸的脚本,能凑合用

#7

帖子 delectate » 2008-10-19 13:25

这个不错

改下,可以弄成显示时间的壁纸啦!
回复