UNIXのグルー(のりづけ)の概念はあまりにも便利。なにしろ日常のあらゆる事が簡単なシェル+UNIXコマンドで事足りてしまう。マジ手放せない。
あまりにも便利すぎるためか、UNIXにはWindowsの壁紙変更ツールみたいなのがあまり発達してない。まぁそりゃそうだ。誰でも片手間でちゃっちゃとできてしまうものをわざわざ製品にする奴は普通いないだろう。
だが、だからこそ「入門には最適」な条件が揃っている。たとえばGnomeデスクトップ用壁紙変更の記事だ。これを糊づけでなく単一言語で動かしてみる。
#!/usr/bin/ruby require 'find' require 'gconf2' if ARGV.length > 0 wtype = "centered" wtype = ARGV[1].clone if ARGV.length > 1 if test(?d,ARGV[0]) == true s = [] Find.find(ARGV[0]) {|f| if test(?f,f) == true && f =~ /\.jpg$/i s[s.length] = f.clone end } ll = s.length if ll > 0 r = rand(ll) c = GConf::Client.default c["/desktop/gnome/background/picture_options"] = wtype c["/desktop/gnome/background/picture_filename"] = s[r].clone end end end
これをたとえば、 wallpaper.rb ぬこ.jpg のように実行する。
壁紙タイプを変更したいなら、ぬこ.jpgの後に centeredとかつければいい。この部分のオプションは以下。