2011年7月28日木曜日

Puppy Linuxのダブルクリック

※ダブルクリック間隔の調節については、2014/03/13のブログを見てください
  http://aoo10yan.blogspot.jp/2014/03/blog-post.html


Windowsから移って来て、一番に戸惑うのはデスクトップアイコン等のアクションが、標準ではシングルクリックになっている事だと思う。

シングルクリックをダブルクリックに変更する方法は「Puppy Linux ダブルクリック」で検索すれば沢山出てくるので、それについて書くつもりは無い。
じゃあ、その先は、、、。って事を書こうと思う。

Puppy LinuxのデスクトップアイコンはROX-Filerのピンボード機能が制御していて、これをダブルクリックに変更しても、まだROX-Filerの制御下にある事に変わりは無い。
このROX-Filerのダブルクリックを認識する間隔が非常に短い!!
シングルクリックでは間違って2重起動してしまう。ダブルクリックでは「気合い」を入れて素早クリックしないと起動してくれない。
年を取って来ると、皆さんが思っている以上に身体が言うことを聞かないんですよ。
なので、ダブルクリックに変更したからには、その間隔の調整もしたいと思うのが人情。でしょ?
同じように思う人が他にもいるようで(英語は苦手なので雰囲気で)。

http://www.murga-linux.com/puppy/viewtopic.php?t=2162

ここで書かれているように、 ウィンドウマネージャの方でダブルクリックの間隔を変更しても、それはROX-Filerのピンボードの挙動にまで影響を及ぼさない。
ウィンドウマネージャでの設定では、ウィンドウのタイトルバーでダブルクリックする時の間隔までの様子。

ならば、ROX-Filerの方でそれなりの機能を用意してんじゃないの?と、調べてみると、以下のページが見つかった。

http://roscidus.com/desktop/Mouse

しかし、入れ方が解らない。
解らないならピンボードを切ってしまえ 、って短絡的に考えてしまった。
コマンドで「rox -p=」とすると、デスクトップの壁紙もアイコンも綺麗に消えて、真っ黒な画面になった。
真っ黒でもメニューからソフトを起動できるし、、、。
この段階になってウィンドウマネージャの範疇が何となく解った気がした。

「ウィンドウマネージャが動いていれば、デスクトップの見た目は機能的にはそれ程重要じゃ無いんじゃね?」

結局、ダブルクリックの調整はどうでも良くなって、デスクトップアイコンは要らない、って思うようになって来た。
WindowsからPuppy Linuxに移って来て最初の戸惑いは、何時しか別の地平を見る事になったのだ(嘘)
(その後、Ideskを入れるようになった経緯は別に書くかも。書かないかも)

追記(2011/9/3)
続き書きました

2011年7月23日土曜日

Idesk用壁紙変更ツールを、少しだけ実用的に

「はじめてのおつかい」でお店の前まで行って帰って来ちゃっていたので、もう一度お店へ行くことにw

前回まで画像ファイルが /usr/share/backgrounds/ ディレクトリにあることが大前提のスクリプトだった。
今回は、その縛りを外した。
更に、前回の修正で「現在使用中のファイル名」を第3引数で渡した為に、ダイアログを出したまま連続して壁紙の変更が出来なくなってしまったので、それを元に戻した。

(本当は、'onchange' と '$temp_str' は引数で渡す必要がないんだけど、戒めの為にそのまま残しておく)
#!/bin/bash

def_str=`grep 'Background.File' /root/.ideskrc`
def_length=${#def_str}
temp_str=`echo $def_str | cut -c 18-$def_length`

export MAIN_DIALOG='
<window title="idesk_bg_changer">
  <vbox>
    <text><label>idesk用壁紙変更ツール(AO_o10yan)</label></text>

      <frame ファイル選択で壁紙変更>
        <hbox>
          <entry accept="filename">
            <label>Select an Existing File</label>
            <variable>FILE_FILENAME</variable>
            <default>'$temp_str'</default> 
            <action>"./desktop_bg_function3.sh 'onchange' $FILE_FILENAME '$temp_str' &"</action>
          </entry>
          <button>
            <input file stock="gtk-open"></input>
            <variable>FILE_BROWSE_FILENAME</variable>
            <action type="fileselect">FILE_FILENAME</action>
          </button>
        </hbox>
      </frame>

    <hbox>
      <button cancel></button>
    </hbox>
  </vbox>
</window>
'
gtkdialog3 --center --program=MAIN_DIALOG

上のスクリプトから desktop_bg_function3.sh として下のスクリプトを呼び出す。
#!/bin/bash

def_str=`grep 'Background.File' /root/.ideskrc`
def_length=${#def_str}
temp_str=`echo $def_str | cut -c 18-$def_length`

new_str=$2

sed --in-place=.bak --expression=s:$temp_str:$new_str: /root/.ideskrc

idesk
うーん、随分スッキリ。
当たり前だけど、ファイル名をフルパスで指定するので、regular expression 区切り文字のスラッシュとディレクトリの区切りが重複してしまうので、regular expression の方の区切り文字を変更した。

Puppy LinuxでJWM、IceWM、FluxboxとWMを切り替えても、壁紙の表示はIdeskが共通して受け持っているので、壁紙変更ツールもこれを共通して使うことができる。って、あまり意味ないけど、、、。

※ 追記(2014/05/24)※
MAIN_DIALOGを表示するスクリプトの17行目、
default値の余分なパスを削除

2011年7月18日月曜日

Puppy Linuxの見た目

Puppy Linux4.3.1のウィンドウマネージャをFluxboxにしてみた。標準のJWMや、後から入れたIceWM同様に軽量WMということらしい。
3つのWMを使ってみたが、どれが軽い・重いを体感できる程の差は無いように思う。
あとは、見ための好みや、操作性が自分にしっくり来るかどうかの問題か、、、。

Fluxboxはシンプルで、ツールバーにアプリケーション起動用のアイコンを置いてランチャににすることが出来ない(らしい)。アプリを起動するにはメニューから選択することになる。なかなか潔いWMだ。デスクトップアイコンの設置もFluxbox自体の機能としては見当たらない。尤も、JWMにしろIceWMにしろ、今まで試しているWMにもデスクトップアイコンを設置する機能は無かったので、特筆すべき事ではないのかもしれない(つまり、それはWMの仕事ではない。って事?)。
従って、デスクトップアイコンを置きたければ、その機能を持つソフトなりを使うことになる。Puppy Linuxでは、ROX-Filerのピンボードを使ってデスクトップアイコンや壁紙を表示させているので、それをそのまま使うのも一つの方法だろう。
但し、私の場合ROX-Filerのピンボードが好きではないので、その機能を切ってIdeskを使っている。画像の壁紙もIdeskに表示させている。
せっかく、Fluxboxがシンプルになっているので、デスクトップアイコンも置くことなくメニューからの選択で行くことにする。
FluxboxにWbarと言うランチャを組み合わせている例も見受けるが、ランチャも使わない。
導入直後なので、システム状況をモニタする為にConkyだけ入れることにした。
そうして、出来上がったのが画像の通り。

Linuxディストリビューションの紹介文等に、スクリーンショットが表示されていることがあるが、それってどの程度の意味があるんだろうか。(って書きながら、自分のデスクトップ画像を晒しているんだけどw)
確かに、画像を見ることで雰囲気を掴むことが出きるし、重要な情報の一つだと思う。
でも、この画像のように元の見た目は変更が可能で、デフォルトのデスクトップがディストリビューションその物を表す指針にはならないんじゃないだろうか。

Puppy Linuxについても「アイコンがいっぱい並んでいて、ゴチャゴチャしてる」「デザインが可愛い過ぎ」とか書かれているのを目にする。
それは自分で変更できるし、自分に合わせて設定するのが楽しいんだよ、って呟きたくなるよね?

今回入れたのは、全てPETパッケージがあるので、導入は結構簡単♪
提供してくださった方々に感謝。

◇Fluxbox
http://sakurapup.browserloadofcoolness.com/viewtopic.php?f=25&t=1477&p=10597&hilit=fluxbox#p10597 
◇Idesk
http://www.murga-linux.com/puppy/viewtopic.php?t=54458
◇Conky
http://distro.ibiblio.org/pub/linux/distributions/puppylinux/pet_packages-4/

2011年7月14日木曜日

修正メモ

#!/bin/bash
def_str=`grep 'Background.File' /root/.ideskrc`
def_length=${#def_str}
temp_str=`echo $def_str | cut -c 41-$def_length`

export MAIN_DIALOG='
<window title="idesk_bg_changer">
  <vbox>
    <text><label>idesk用壁紙変更ツール(AO_o10yan)</label></text>
    <frame ファイル名入力 OKで壁紙変更>
      <hbox>
        <text>
          <label>ファイル名:</label>
        </text>
        <entry><variable>FILENAME</variable>
          <default>'$temp_str'</default>
        </entry>
      </hbox>
      <hbox>
        <button ok>
          <action>"./desktop_bg_function2.sh 'onclick' $FILENAME '$temp_str' &"</action>
        </button>
      </hbox>
    </frame>

    <frame ファイル選択で壁紙変更>
      <hbox>
        <entry accept="filename">
          <label>Select an Existing File</label>
          <variable>FILE_FILENAME</variable>
          <default>/usr/share/backgrounds/'$temp_str'</default> 
          <action>"./desktop_bg_function2.sh 'onchange' $FILE_FILENAME '$temp_str' &"</action>
        </entry>
        <button>
          <input file stock="gtk-open"></input>
          <variable>FILE_BROWSE_FILENAME</variable>
          <action type="fileselect">FILE_FILENAME</action>
        </button>
      </hbox>
    </frame>

    <hbox>
      <button cancel></button>
    </hbox>
  </vbox>
</window>
'
gtkdialog3 --center --program=MAIN_DIALOG
#!/bin/bash
new_str=$2

if [ $1 = 'onchange' ];then
  new_str=`basename ${new_str}`
fi  

sed --in-place=.bak --expression=s/$3/$new_str/ /root/.ideskrc

idesk
選択されたファイル名を basename で取り出す。
使用中のファイル名を第3引数で渡し、$3で参照。

話は前後する

先にシェルスクリプトのことを書いてしまってけど、ここで使っているLinuxの紹介。
10年以上前のPCでも比較的軽快に動くディストリビューションとして、Puppy Linuxを 使っている。
PentiumⅡ 266MHz メモリ128MBのデスクトップPCにPuppy Linux 4.3.1日本語版
Cerelon 433MHz メモリ192MBのノートPCにWary Puppy 5.1.1日本語版を入れている。
2機共にハードディスクへFull install。
(実は、デスクトップの方はもう一つPuppy Linuxが入ってる。それはPuppy Linuxの特徴でもあるFrugal installしたPuppy Linux 4.3.1日本語版。同じ機種で2つのインストール方法を並行して使ってみたが、どうもこの環境ではFull installの方が軽快に動いてくれる印象を持っている。
が、Puppy Linuxを存分に使うならばFrugal installがお勧め。
特に手探りで使い始める初心者ならば、って自分ですが、、、。
個人保存ファイルをバックアップしておけば、以前の状態に戻すのが簡単。
更に、開発環境のdevx_XXX.sfsを使うのも簡単にできる。
ちなみに、Full installでの開発環境の入れ方は↓こっちで、、、。
http://aoo10yan.blogspot.com/2011/09/command-not-found.html

ウィンドウマネージャは、標準のJWMからIceWMへ変更。(単に好みの問題)
デスクトップはROX-Filerのピンボードを切って、Ideskを使用。
(と言っても、デスクトップアイコンを置かず、壁紙の表示だけに使ってる感じ)
ファイラーをWindowsのエクスプローラ風なXfeに変更。

以上が、現在使っているLinuxの状況。

2011年7月13日水曜日

Idesk用壁紙変更ツールをシェルスクリプトで書いてみた

Puppy Linuxでは、標準でROX-Filerのピンボードを使って、デスクトップアイコンや壁紙を表示している。
ピンボードの挙動(デフォルトがアイコンのシングルクリックで起動。設定をダブルクリックにしても、クリック間隔 の調整が「簡単には」できない)があまり好きでないので、切ってしまった。

替わりに、Ideskってのを使う事にした。

標準ならば壁紙変更ツールがあって、GUIでの操作が可能だけど、Ideskで壁紙を変更するには、設定ファイルを 開いて、手動で書き換えないといけない。
面倒なので、Idesk用の壁紙変更ツールを作ってみた。

Linuxでのシェルスクリプトは「はじめての、おつかい」状態なので。細かい事は置いといて、「動く事」が目的。
で、作ったスクリプトが下のコード
#!/bin/bash

def_str=`grep 'Background.File' /root/.ideskrc`
def_length=${#def_str}
temp_str=`echo $def_str | cut -c 41-$def_length`

export MAIN_DIALOG='
<window title="idesk_bg_changer">
  <vbox>
    <text><label>idesk用壁紙変更ツール(AO_o10yan)</label></text>
    <frame ファイル名入力  OKで壁紙変更>
      <hbox>
        <text>
          <label>ファイル名:</label>
        </text>
        <entry><variable>FILENAME</variable>
          <default>'$temp_str'</default> 
        </entry>
      </hbox>
      <hbox>
        <button ok>
          <action>"./idesk_bg_function.sh 'onclick' $FILENAME &"</action>
        </button>
      </hbox>
    </frame>

    <frame ファイル選択で壁紙変更>
      <hbox>
        <entry accept="filename">
          <label>Select an Existing File</label>
          <variable>FILE_FILENAME</variable>
          <default>/usr/share/backgrounds/'$temp_str'</default>
          <action>"./idesk_bg_function.sh 'onchange' $FILE_FILENAME &"</action>
        </entry>
        <button>
          <input file stock="gtk-open"></input>
          <variable>FILE_BROWSE_FILENAME</variable>
          <action type="fileselect">FILE_FILENAME</action>
          <default>/usr/share/backgrounds/'$temp_str'</default>
        </button>
      </hbox>
    </frame>

    <hbox>
      <button cancel></button>
    </hbox>
  </vbox>
</window>
'
gtkdialog3 --center --program=MAIN_DIALOG
最初に #!/bin/bash でbushを使う事を明示。
次の3行は、Ideskの設定ファイルから現在壁紙に指定されている画像ファイルのファイル名を抜き出しているだけ。
あとは、Gtkdialogの生成。

肝は、<action></action>で、別途スクリプトファイルを、引数を渡しながら呼び出している事


上のスクリプトから idesk_bg_function.sh として呼ばれるのが下のスクリプト
#!/bin/bash
new_str=$2

if [ $1 = 'onchange' ];then
  new_length=${#new_str}
  new_str=`echo $new_str | cut -c 24-$new_length`
fi

def_str=`grep 'Background.File' /root/.ideskrc`
def_length=${#def_str}
temp_str=`echo $def_str | cut -c 41-$def_length`
sed --in-place=.bak --expression=s/$temp_str/$new_str/ /root/.ideskrc

idesk

2011年7月12日火曜日

ボチボチ

ここには、古いPC(使用機種参照)にLinuxを入れて、アレコレやっていく様を
書いて行こうと思う。

古い機種でも使えるディストリビューションを探したり、Windowsユーザが
Linuxのデスクトップ環境を使う上で戸惑った事など、気が向いた時に
書いて行く。

多分Twitterでのつぶやきの方が中心で、それを纏めた形になると思う。