2014年5月6日火曜日

Puppy Linuxのdefaultfilerスクリプトをやっつけ仕事

PmountやPfindを使うと、ROX-Filerが起動するけど、環境によって使い分けたい。
XfceではThunar、KDEではDolphinを使いたいと言うだけの話。

/usr/local/bin/ に defaultfiler のスクリプトが見あたらなかったので、やっつけで作った。

#!/bin/sh

CURRENTWM="`cat /etc/windowmanager`"

case "$CURRENTWM" in
  "startxfce4") exec thunar "$1";;
  "startkde") exec dolphin "$1";;
  *) exec rox "$1";;
esac

/usr/sbin/pmount の422行目をコメントアウトして、defaultfilerで開くように編集。

#    exec rox -x /mnt/$DEVNAME -d /mnt/$DEVNAME #want this window on top.
  exec /usr/local/bin/defaultfiler /mnt/$DEVNAME

pfind は、設定を変更。


※ 追記 ※
pfind は設定の変更で良いと思ったけど、何か固まるので、
/usr/local/pfind/pfind の409行目の rox を defaultfiler に変更した。
検索結果のディレクトリを開くだけで、該当ファイルの位置までスクロールしないけど、気にしない。
(気にしろよヲイ!)

2014年5月5日月曜日

Puppy Linux でKDEを使っちゃおう

Precise Puppy 5.7.1JP にKDEのSFSを読み込ませたら、簡単に動いた。

本家(英語版)フォーラムの KDE 4.10.1, 99mo ! から kde4.10.1.sfs をダウンロードし、
読み込ませる。
「Bootマネージャ」から「起動時にどの追加SFSファイルをロードするかを選択」あるいは、
「SFS-Load オン・ザ・フライ」を使用するだけなので、超簡単。



「起動時にどの追加SFSファイルをロードするかを選択」の場合、文字通りに起動時に有効になるので、
再起動してから、一旦プロンプトに戻り、xwin startkde とする。

「SFS-Load オン・ザ・フライ」なら、再起動は必要ないので、そのままプロンプトに戻り、
xwin startkde とする。


このままでも良いのだけど、Puppy Linuxのシステムトレイを表示させるため(?)に、
/root/.xinitrc に編集を加える。

上の図のように、exec startkde の前に /usr/sbin/delayedrun & を追加。
(その上の /sbin/pup_event_frontend_d & に関してはコメントアウトの有無による違いを確認できてません。)



これで、システムトレイが表示される。
ボリュームコントロール(ミキサー)が二つになっているのはご愛嬌。片方を消せば良い。

さて、賢明なる読者諸兄に於かれましては、上のエディタ画像右側を目にして、お察しのことだろう。
今回の .xinitrc への変更は、スクリプトの前半部分に行っている。
(元々の .xinitrc がKDEに関しては、この位置に記述している。)
パネルを読み込んだり、ピンボード機能を有効にする前の段階で、exec startkde として、
デスクトップ環境を立ち上げている。

ならば、Xfceも同様に、前段階でデスクトップ環境を立ち上げてしまえば、後の諸々は必要ない
のではないか?

(やってみましたが、大丈夫そうですよ)

2014年5月4日日曜日

aho が Puppy Linux で使うパネルとは?

前回の「Puppy Linuxのプロンプトで xwin aho としたら」に引続き .xinitrc の話題。
もし、「AO_o10yanのやってることはPuppy Linuxの意図しない使い方だ」と思ってるならば、
以下は読まないでください。
/root/.xinitrc を読んで、「あれ?これってスクリプトの書き方として変じゃね?」って思った人は、
読んでも良いかもしれません。但し、既にそう思っている人には目新しい話では無いですが。

それでは、、、。

前回提示した画像を改めて見てみる。


これを見て、気付いた人もいると思う。
そう、ウィンドウマネージャはJWMなのに、画面下部に表示されてるパネルは、標準のトレイでは
ない。ここで表示されているのはLXPanelだ。
私は、Openboxを使用する際に表示するパネルとしてLXPanelを入れている。

LXPanelの表示を上にすれば見慣れたトレイが現れる。

上の画像を見れば分かる通り、標準トレイは表示されていたが、LXPanelに隠れて見えなかった、
ってこと。

これは、私がJWMのトレイとLXPanel の両方を表示させたかった訳ではなく、単純に
.xinitrc にそうなるように書かれているからに過ぎない。

#v3.95 support fbpanel tray/taskbar...
#only launch tray for w.m. without inbuilt tray...
if [ "$CURRENTWM" != "jwm" -a "$CURRENTWM" != "icewm" ];then
if [ -f /usr/bin/fbpanel ];then
#a bit of a hack: when 3builddistro runs fixmenus, which calls variconlinks,
#which populates /var/local/icons with symlinks, /usr/local/lib/X11/pixmaps
#is not yet populated (happens at first boot, from default icon theme)...
[ ! -e /var/local/icons/home48.png ] && ln -fs /usr/local/lib/X11/pixmaps/* /var/local/icons/
fbpanel &
fi
[ -f /usr/bin/lxpanel ] && lxpanel &
fi

じゃあ、それは xwin aho とした時だけの問題かって言えば、一目瞭然。

↓この画像を見てね。

Xfceで下部パネルが重なっている。

/etc/windowmanager に jwm と icewm 以外の記述があった場合、
lxpanel の存在を判定して、lxpanel があればそれを起動。

/etc/windowmanager に startxfce4 って書いてあっても同じじゃないのか?

私は取り立てて特別なことをしているつもりは無い。
パッケージマネージャからXfce4を入れているだけだ。
Presice Puppy 5.7.1から、Ubuntuのリポジトリを利用してパッケージのインストールが
できるようになったらしいので、それならば、それなりの対応をしないと駄目なんじゃないか?
と思う。
狭い範囲で、謂わば特殊な環境のみを対象にしたディストリビューションであることは、
エクスキューズに使えなくなってるんじゃないのか?との疑問を持ちつつある。




※ 余談 ※
.xinitrc の中に、下の記述を見つけた人もいるでしょう。

if [ "$CURRENTWM" = "xfwm4" ];then
if [ "`which xfce4-panel`" != "" ];then
xfwm4 --daemon #note, starts xfce-mcs-manager daemon also.
exec xfce4-panel
fi
fi

そう。単体のウィンドウマネージャとして xfwm4 を動かした場合に、xfce4-panel を
起動しておく記述。
単体で xfwm4 を動かしたことのある人なら疑問に思うでしょう。
「LXPanelが表示されないじゃん?重複しないじゃん?」って。

私も、デスクトップ起動後に端末から # lxpanel として、

tray: another systray already running

となりつつも、LXPanel が表示されることを確認したり、
試しにこのブロックを、上述の lxpanel 起動部分の下へ移動してみました。
そして、起動する順番を変更すると、パネルが重複して表示されることを確認しました。

確かなことは分かりませんが、順番と、デスクトップ環境からセッションで起動するとの違い
なのかと、感じています。(←「感じ」ってのも変ですが)