2014年2月3日月曜日

壁紙チェンジャー改良

前回のスクリプトから、さらに機能追加して、壁紙ディレクトリを選択できるように改良した。 (しかもGUIで可能!)
$ vi /usr/local/bin/wpchange
#!/bin/bash
# wallpaper changer
# 2014.01.25 ver 1.0 watari
#   とりあえず作成
# 2014.02.03 ver 2.0 watari
#   壁紙ディレクトリの指定機能を追加
# 2014.03.25 ver 2.1 watari
#   ディレクトリ選択時にキャンセルした場合の処理を追加
# crontab指定
# --- ココカラ ---
# # 壁紙チェンジャー
# */15 * * * * /usr/local/bin/wpchange -c > /dev/null 2>&1
# --- ココマデ ---
# ここの時間指定で変更タイミングを修正する。

# お約束
## 更新対象(壁紙ディレクトリ)
PCMANDIR="${HOME}/.config/pcmanfm/LXDE"
WPCONF="${PCMANDIR}/pcmanfm.conf"
DIRCONF="${PCMANDIR}/pictdir.conf"

# お仕事開始
## オプションによる機能選択
case $1 in
    --selectdir | -s)
        ## お約束
        PICTDIR=`zenity --file-selection --title "壁紙ディレクトリの選択" --directory`
        if [ $? -eq 0 ]; then
            ## ディレクトリ設定ファイルの存在確認
            if [ ! -f ${DIRCONF} ]; then
                touch ${DIRCONF}
            fi
            ## 指定されたディレクトリを設定ファイルへ書き込む
            echo ${PICTDIR} > ${DIRCONF}
            ## GUIにて設定完了のお知らせ
            zenity --info --title="設定完了のお知らせ" --text="壁紙ディレクトリに ${PICTDIR} を指定しました。"
            ## おしまい
            exit 0
        else
            ## メッセージなしに終了
            exit 0
        fi
        ;;
    --changepict | -c)
        WPDIR=`cat ${DIRCONF}`
        ##ファイル一覧
        WPLST=($(ls ${WPDIR}))
        ## 要素数
        i=${#WPLST[@]}
        ## 現在の壁紙
        NOWWP=`grep "wallpaper=" ${WPCONF} | awk -F"=" '{ print $2 }'`
        ## 変更予定の壁紙
        RAND=$(((RANDOM % ${i})+1))
        NEXTWP=${WPLST[${RAND}]}
        if [ ${NOWWP} == ${NEXTWP} ]; then
          RAND2=$(((RANDOM % ${i})+1))
          NEXTWP=${WPLST[${RAND2}]}
        fi

        pcmanfm -w ${WPDIR}/${NEXTWP}

        exit 0
        ;;
    *)
        if [ ! ${DISPLAY} == "" ]; then
            zenity --warning --text="利用できるオプションは、--selectdir または -s と、--changepict または -c の2種類です。"
            exit 1
        else
            echo "Usage: $0 Option Failed."
            echo "  MUST with --selectdir(-s) or --changepict(-c)."
            exit 1
        fi
        ;;
esac

exit 0
これ1つでオプション指定によって2つの機能が利用できる。

0 件のコメント:

コメントを投稿

DNS named.root 更新確認スクリプト

#!/bin/bash # DNSのnamed.rootファイルの更新確認スクリプト # 最新版のnamed.rootファイルを取得し、差分を確認する。 # 更新履歴 # 2014.02.07 watari # お約束 export LANG=C ## 実行ディレクトリ #PR...