ラベル idesk の投稿を表示しています。 すべての投稿を表示
ラベル idesk の投稿を表示しています。 すべての投稿を表示

2011年9月4日日曜日

Puppy Linuxのダブルクリック(続き?)

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

実は、Puppy Linuxを使い始めた当初(ってまだ大して使い込んでる訳じゃないですけど)「ウィンドウマネージャ」って代物がデスクトップ全般を制御してると思っていた。JWMがデスクトップアイコンや壁紙をROX-Filerのピンボードに委譲しているのは、JWMに特別の事だと思っていた訳で、、、。
「じゃあ、ウィンドウマネージャを替えれば、ウィンドウマネージャの設定でダブルクリックとか統合して調整出来んじゃね?」
って事で、ROX-Filerのピンボードを切った状態で、ウィンドウマネージャを替えてみた。

IceWMを入れて、思い違いをしていたことが解った。

IceWMでも、デスクトップ(アイコン)を表示(制御)する機能は用意されていなかった。

Windowsユーザとしては、真っ黒な画面を前にして途方に暮れる訳で。せめて壁紙だけでも何とかしようと、IceWMの設定(preference)を覗いてみた。
確かに DesktopBackgroundImage="" という項目が見つかる。
そこを、いろいろ書き直してみたが、どうも設定が反映されない。
どうやら、jpegやpngの対応には別途ライブラリが必要な模様(未確認)。

そこで、IceWMについて検索しているときに出てきたIdeskってのを入れてみようと。

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

Ideskなら、壁紙の設定だけじゃなくデスクトップアイコンの表示も出来るみたいだぞ!

記述の通りに、ライブラリとIdeskのPETパッケージをインストール。
/root/.idesktop ディレクトリを新規に作成。
準備が出来たところでターミナルから、

idesk (パラメータも何も無しでこれだけ)

「壁紙用のフォルダが無い」とか「壁紙のファイルが無い」とか言われるが、、、。
うん。黒い画面に「家(ホーム)」のアイコンが表示された。
改めて、  /root/.idesktopを除いてみると「default.lnk」と言うファイルが作成されている。
 これが、「家」アイコンを表示させている。
記述例にならって、新たに「opera.link」ファイルを作成して、Operaのアイコンも設置してみる。
さっき怒られたので、.ideskrcファイルを開いて、壁紙の設定もしてみる。

再びideskを実行。

壁紙に設定した画像のサイズが合っていないためか、壁紙がタイル形式で表示された。
壁紙の設定には Background.Mode と言う項目があり、ここで表示モードを指定できるらしいが、
Center(中央表示)を指定してるのに、タイル形式になってしまった。
この設定に関しての解決は未だに出来ていない。画像ファイルのサイズをディスプレイに合わせる
ことで調整した。(因みに、画像ファイルの形式はpngでもjpegでもOK)

Operaのアイコンも表示された。
Operaのアイコンをクリックして、起動には成功したものの、なんか変だぞ。
クリックの反応が悪い!
何回かクリックを試してみて、原因が判明した。

なんと、O(アルファベットのオー)のアイコンでは、文字の中抜き(透過)された部分でクリックが効いていない!!

笑うしかないでしょう。
(アイコンに使っている画像の透過部分を埋めようかとも思ったけど、結局デスクトップアイコンを使わなくなったので、放置状態)

さて、肝心のダブルクリック間隔の調整は、.ideskrc内のClickDelay:にミリセコンドで書けば良いらしい。
実際に、2000、3000と数値を入れてみたが、体感的にそこまでのディレイは効いていない気がする。
しかし、ROX-Filerの超短いクリック間隔よりは、まだましなのでこれで良しとしよう。
(しかし、これもデスクトップアイコンを使わなくなったので放置)

現状では、X起動後にターミナルからコマンドを打って実行させているが、これではしょうがないので
起動時に自動的にIdeskが実行されるようにしたい。
検索で引っ掛かった下のページを参考にして上手く行った。

http://puppylinux.org/wikka/idesk

最終的に、デスクトップアイコンのダブルクリックはIdesk、ウィンドウのダブルクリックはウィンドウマネージャで制御する、と言う棲み分けになった。

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で参照。

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