2014年6月22日日曜日

初めての zenity

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



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

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

  1. #!/bin/bash
  2.  
  3. #mouse_setting_lz01
  4.  
  5. #ユーザの確認及びパスの設定
  6. current_user=$(whoami)
  7. rc_path="/home/""$current_user""/.gtkrc-2.0"
  8. ini_path="/home/""$current_user""/.config/gtk-3.0/settings.ini"
  9.  
  10. #ユーザのホームディレクトリに.gtkrc-2.0が存在するかを確認し、無ければ作成して値を書き込み
  11. if [ ! -e "$rc_path" ];then
  12. echo -n > $rc_path
  13. echo "gtk-double-click-time=250" > $rc_path
  14. fi
  15.  
  16. def_time_str=$(grep "gtk-double-click-time" $rc_path)
  17. if [ "$def_time_str" = "" ];then
  18. echo "gtk-double-click-time=250" >> $rc_path
  19. def_time_str=$(grep "gtk-double-click-time" $rc_path)
  20. fi
  21. def_time_value=$(echo $def_time_str | cut -c 23-${#def_time_str})
  22.  
  23. #ユーザの.config/gtk-3.0ディレクトリにsettings.iniが存在するかを確認し、無ければ作成して値を書き込み
  24. if [ ! -e "$ini_path" ];then
  25. echo -n > $ini_path
  26. echo "[Settings] " > $ini_path
  27. echo "gtk-double-click-time=250" >> $ini_path
  28. fi
  29.  
  30. def_time_str_ini=$(grep "gtk-double-click-time" $ini_path)
  31. if [ "$def_time_str_ini" = "" ];then
  32. echo "gtk-double-click-time=250" >> $ini_path
  33. fi
  34.  
  35. #zenityのscaleを使って値を変更
  36. new_time_value=$(zenity --scale --text="ダブルクリックの間隔を設定(ミリ秒)" --min-value=250 --max-value=1500 --value=$def_time_value)
  37.  
  38. #ダブルクリック間隔変更、設定
  39. if [ "$?" = "0" ];then
  40. new_time_str="gtk-double-click-time=""$new_time_value"
  41. if [ "$def_time_str" != "$new_time_str" ];then
  42. sed --in-place --expression=s/$def_time_str/$new_time_str/ $rc_path
  43. sed --in-place --expression=s/$def_time_str/$new_time_str/ $ini_path
  44. zenity --info --text="設定を変更しました。再起動してください"
  45. else
  46. zenity --info --text="設定の変更はありません"
  47. fi
  48. else
  49. zenity --info --text="キャンセルしました"
  50. fi

0 件のコメント :

コメントを投稿