Okumatsu_Hiroshi Website
last update 2010/5/29
fluxboxのスタイルに壁紙を設定するスクリプト
何をするためのスクリプトか
- このスクリプトの目的は、
- Rox-filer上で画像ファイルを右クリックし、メニューを表示させる
- メニューからスクリプトを実行して
- 現在のスタイルファイルの壁紙設定を書き換える
- 選んだ画像ファイルをスタイルディレクトリにコピーする
- fbsetbgコマンドで壁紙を表示する
ざっと書くととこんな感じでしょうか。
壁紙設定は書き換えますが、以前の設定(画像を使わない設定など)は削除しないで残し、新しい設定を付け加えるように したいと思います。
また、自分で作ったスタイルをパッケージにするときに、壁紙も一緒になるよう、スタイルディレクトリにコピーする ようにします。
SetbgforStyle.sh
以下がそのスクリプトです。
#!/bin/bash # = SetbgforStyle # version :: 10.528 # author :: okumatsu hiroshi # note :: カレントスタイルに壁紙をコピーし、設定ファイルを書き換える。 background_img="$1" image_dir="pixmaps" image_name="background" # fluxboxのinitファイルからカレントスタイル情報を取得する current_style_path=$(cat ${HOME}/.fluxbox/init | grep -i 'stylefile' | awk '{print $2}') # ホームディレクトリにあるスタイルだけを対象とする if [ -f "${current_style_path}/theme.cfg" ]; then if [ -w "${current_style_path}/theme.cfg" ]; then current_image_dir=${current_style_path}/${image_dir} if [ ! -d "${current_image_dir}" ]; then mkdir ${current_image_dir} fi else echo "$(basename $0): $(basename ${current_style_path}): permission denied." exit 1 fi else echo "$(basename $0): $(basename ${current_style_path}): file or deirectory did not exist." exit 1 fi # カレントスタイルの設定を書き換える sed -i s/^[^#\!]*background\.color/#background.color/ ${current_style_path}/theme.cfg sed -i s/^[^#\!]*background\.colorTo/#background.colorTo/ ${current_style_path}/theme.cfg sed -i s/^[^#\!]*background\.modX/#background.modX/ ${current_style_path}/theme.cfg sed -i s/^[^#\!]*background\.modY/#background.modY/ ${current_style_path}/theme.cfg if grep -i "^[^#\!]*background\.pixmap.*" ${current_style_path}/theme.cfg; then sed -i s%^[^#\!]*background:.*%background:' 'fullscreen% ${current_style_path}/theme.cfg sed -i s%^[^#\!]*background\.pixmap:.*%background.pixmap:' '${current_image_dir}/${image_name}% ${current_style_path}/theme.cfg else sed -i s%^[^#\!]*background:.*%background:' 'fullscreen"\n"background.pixmap:' '${current_image_dir}/${image_name}% ${current_style_path}/theme.cfg fi # 画像をbackgroundにリネームしてスタイルのディレクトリにコピーする cp "${background_img}" "${current_image_dir}/${image_name}" # fbsetbg コマンドで壁紙を表示する fbsetbg -f ${current_image_dir}/${image_name}
Rox-filerの設定
スクリプトを保存したら、実行可能にします。
$ chmod 744 SetbgforStyle.sh
それから、Rox-filer上で画像ファイルを右クリックし、
![]()
「メニューをカスタマイズ」というところをクリックすると、もう一つファイラーが開きますので、開いたディレクトリ にスクリプトを置いてください(シンボリックリンクでも構いません)。
セットしたスクリプトは、~/.config/rox.sourceforge.net/.image_jpegの中にあります(
jpegファイルの場合。png画像は.image_pngの中に置く)。
これで、画像ファイルを右クリックしたときにメニューが現れるようになります。