2014年3月21日金曜日

或いは、もう一つの覚書

Puppy Linuxのバージョンによっては、gtkdialogが古くてスライダーが使えなかったので、
単純に数値を入力するタイプを作ってみた。

※ 注意 ※
0)Precise Puppy 5.7.1JPとPuppy Linux 4.3.1JPでしか動作確認していません。
1)動作の保証はしません。
2)隠しファイル(.gtkrc.mine)の操作をしています。
3)ダブルクリックの設定は隠しファイル(.gtkrc-2.0)と競合しています。
4)設定を反映させるには、再起動が必要です。
5)最悪の場合、Puppy Linux自体の不具合が起こります。


よって、スクリプトは読むだけにしてください

以上宜しくお願いします。


  1. #! /bin/bash
  2.  
  3. if test ! -e /root/.gtkrc.mine;then
  4. touch /root/.gtkrc.mine
  5. echo "gtk-double-click-time=250" > /root/.gtkrc.mine
  6. echo "gtk-double-click-distance=5" >> /root/.gtkrc.mine
  7. fi
  8.  
  9. def_time_str=`grep 'gtk-double-click-time' /root/.gtkrc.mine`
  10. if [ "$def_time_str" = "" ]; then
  11. echo "gtk-double-click-time=250" >> /root/.gtkrc.mine
  12. def_time_str=`grep 'gtk-double-click-time' /root/.gtkrc.mine`
  13. fi
  14. def_time_value=`echo $def_time_str | cut -c 23-${#def_time_str}`
  15. def_time_tag="<default>"$def_time_value"</default>"
  16.  
  17. def_distance_str=`grep 'gtk-double-click-distance' /root/.gtkrc.mine`
  18. if [ "$def_distance_str" = "" ]; then
  19. echo "gtk-double-click-distance=5" >> /root/.gtkrc.mine
  20. def_distance_str=`grep 'gtk-double-click-distance' /root/.gtkrc.mine`
  21. fi
  22. def_distance_value=`echo $def_distance_str | cut -c 27-${#def_distance_str}`
  23. def_distance_tag="<default>"$def_distance_value"</default>"
  24.  
  25. export ok_action='
  26. new_time_str="gtk-double-click-time="$TIME
  27. new_distance_str="gtk-double-click-distance="$DISTANCE
  28.  
  29. if [ '$def_time_str' = "$new_time_str" -a '$def_distance_str' = "$new_distance_str" ];then
  30. mes0="設定が変更されていません"
  31. mes1="何もせずに終了します"
  32. else
  33. sed --in-place --expression=s/'$def_time_str'/$new_time_str/ /root/.gtkrc.mine
  34. sed --in-place --expression=s/'$def_distance_str'/$new_distance_str/ /root/.gtkrc.mine
  35.  
  36. mes0="設定ファイル.gtkrc.mineを書き換えました"
  37. mes1="Xサーバをリスタートして効果を確認してください"
  38. fi
  39.  
  40. export SUB_DIALOG="
  41. <window title=\"Double Click Adjust std\" width_request=\"300\" height_request=\"200\">
  42. <vbox>
  43. <text height-request=\"50\">
  44. <label>"$mes0"</label>
  45. </text>
  46. <text height-request=\"50\">
  47. <label>"$mes1"</label>
  48. </text>
  49. <button height-request=\"80\"><label>閉じる</label>
  50. <action type=\"exit\">exit</action>
  51. </button>
  52. </vbox>
  53. </window>"
  54.  
  55. gtkdialog3 -c --program SUB_DIALOG
  56. '
  57.  
  58. export MAIN_DIALOG='
  59. <window title="Double Click Adjust std" width_request="300" height_request="200">
  60. <vbox>
  61. <text>
  62. <label>ダブルクリック調整用</label>
  63. </text>
  64. <frame 間隔(ミリ秒)>
  65. <hbox>
  66. <text>
  67. <label>数値を入力(推奨値:250〜1000)</label>
  68. </text>
  69. <entry>
  70. '$def_time_tag'
  71. <variable>TIME</variable>
  72. </entry>
  73. </hbox>
  74. </frame>
  75. <frame 距離(ピクセル)>
  76. <hbox>
  77. <text>
  78. <label>数値を入力(推奨値:5〜30)  </label>
  79. </text>
  80. <entry>
  81. '$def_distance_tag'
  82. <variable>DISTANCE</variable>
  83. </entry>
  84. </hbox>
  85. </frame>
  86. <hbox>
  87. <button ok>
  88. <action>bash -c "$ok_action"</action>
  89. <action type="exit">exit</action>
  90. </button>
  91. <button cancel></button>
  92. </hbox>
  93. </vbox>
  94. </window>'
  95.  
  96. gtkdialog3 -c --program MAIN_DIALOG

3 件のコメント :

  1. >Puppy Linuxでダブルクリックの調整方法が分かったので、それをGUIでやってみたいと思った。
    ありがとう御座います 探していたものが見つかりました
    ところで 上 と 下 どちらが新しいものですか?

    他のlinux に移植したいのですが puppy ではrootスル−ですが他のlinuxでは権限が拒否されて
     うまくできません
    どのようにすれば良いのでしょうか?




     

    返信削除
    返信
    1. コメント有難うございます。

      >上と下どちらが新しいものですか?
      済みません、「上と下」が何を指しているのか分かりません。
      ここにある「数値入力型」はgtkdialogのスライダーが使えないバージョン用です。
      スライダーが使えるならば、http://aoo10yan.blogspot.jp/2014/03/blog-post_21.html 
      こちらが使えると思います。

      このスクリプトはPuppy Linux用に作ってあります。
      他のディストリビューションでは、使用しているデスクトップ環境によって
      マウス設定専用のアプリケーションが用意されていると思います。それらを使うのが得策でしょう。
      ただ、そういったアプリケーションが用意されていなければ、スクリプトの使用を考えるのも良いかもしれません。
      通常、そのデスクトップでGTKを使用しているならば、ログインユーザのhomeに".gtkrc.mine"に相当するファイルが
      あるはずです。

      Puppy Linuxで言うところの、rootユーザをログインユーザに置き換えることで、可能になるかもしれません。
      (実際にやっていないので推測だけです。済みません)

      例えば、http://aoo10yan.blogspot.jp/2014/06/zenity.html では、Lubuntuで標準で使用できるzenityにて
      GUIを表現しています。
      この辺は、それぞれの環境によってまちまちなので、色々考えてみるのも楽しいと思います。

      削除
  2. >色々考えてみるのも楽しいと思います。
    ありがとう ございます 試してみます
    「rootユーザをログインユーザに置き換えること」 まず これから トライしま〜す

     

    返信削除