2014年6月22日日曜日

初めての zenity

Lubuntu でのダブルクリック間隔の調節用のシェルスクリプトを作ってみた。



初めて zenity を使ってみたので、例によって動作の保証はありません。

スクリプトは読むだけにして、使わないでください。

#!/bin/bash

#mouse_setting_lz01

#ユーザの確認及びパスの設定
current_user=$(whoami)
rc_path="/home/""$current_user""/.gtkrc-2.0"
ini_path="/home/""$current_user""/.config/gtk-3.0/settings.ini"

#ユーザのホームディレクトリに.gtkrc-2.0が存在するかを確認し、無ければ作成して値を書き込み
if [ ! -e "$rc_path" ];then
  echo -n > $rc_path
  echo "gtk-double-click-time=250" > $rc_path
fi

def_time_str=$(grep "gtk-double-click-time" $rc_path)
if [ "$def_time_str" = "" ];then
  echo "gtk-double-click-time=250" >> $rc_path
  def_time_str=$(grep "gtk-double-click-time" $rc_path)
fi
def_time_value=$(echo $def_time_str | cut -c 23-${#def_time_str})

#ユーザの.config/gtk-3.0ディレクトリにsettings.iniが存在するかを確認し、無ければ作成して値を書き込み
if [ ! -e "$ini_path" ];then
  echo -n > $ini_path
  echo "[Settings] " > $ini_path
  echo "gtk-double-click-time=250" >> $ini_path
fi

def_time_str_ini=$(grep "gtk-double-click-time" $ini_path)
if [ "$def_time_str_ini" = "" ];then
  echo "gtk-double-click-time=250" >> $ini_path
fi

#zenityのscaleを使って値を変更
new_time_value=$(zenity --scale --text="ダブルクリックの間隔を設定(ミリ秒)" --min-value=250 --max-value=1500 --value=$def_time_value)

#ダブルクリック間隔変更、設定
if [ "$?" = "0" ];then
  new_time_str="gtk-double-click-time=""$new_time_value"
  if [ "$def_time_str" != "$new_time_str" ];then
    sed --in-place --expression=s/$def_time_str/$new_time_str/ $rc_path
    sed --in-place --expression=s/$def_time_str/$new_time_str/ $ini_path
    zenity --info --text="設定を変更しました。再起動してください"
  else
    zenity --info --text="設定の変更はありません"
  fi
else
  zenity --info --text="キャンセルしました"
fi

0 件のコメント :

コメントを投稿