糊づけを削り出しに変更する。

 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とかつければいい。この部分のオプションは以下。