DnD tools

DND toolsはファイルをあいこんにドラッグあんどドロップすることで 実行させるような, しぇるすくりぷとをかく際に便利なコマンドを提供します.

背景

GnomeやKDEなんかでは, あるファイル(たとえば, /home/foo/bar.txt)のあいこんを なにか実行権限のあるすくりぷと(例えばhoge.sh)のあいこんにDnDすると, hoge.sh /home/foo/bar.txtの様な感じで 第一引数としてファイルのパス名としてすくりぷとが実行されます. ですので, 第一引数を読んでファイルあるでぃれくとりにcdしてから 作業をする様なすくりぷとをかいておけば, fileをDnDすることで結果が得られるようになるわけです.

DnD toolsにふくまれるものとその説明

DnD toolsは全述の背景を踏まえ, 第一引数を読んでファイルあるでぃれくとりにcdしてから 作業をする様なすくりぷとの作成の際便利だと思われる 小さなプログラムです.

dnd.sh

なにが出来るのかというと, 例えば,

#!/bin/bash
dnd.sh $1 -w 'cat $DNDFILE | nkf -e > $DNDFILEBODY.euc.$DNDFILEEXT'
みたいなしぇるすくりぷとをかいて どっかにおいておきます. このすくりぷとは第1ひきすうに絶対パスが与えられたら, そのでぃれくとりにcdして後ろの方のコマンドを実行します. このしぇるをデスクとっぷにでもおいておけば つかんでぽいできて便利です.

最後のひきすうには次が使えます.

$DNDDIR
(たぶん)第一引数のでぃれくとり
$DNDFILE
(たぶん)第一引数のファイルネーム
$DNDFILEBODY
(たぶん)第一引数のファイルネームの拡張子をぬいたもの
$DNDFILEEXT
(たぶん)第一引数のファイルネームの拡張子
最後のひきすうでは$DNDFILEなどがすぐ解釈されないよう, 'でくおーとするのがみそです.

-wを指定すると実行後キー入力があるまで待ちます. なければまちません.

dnd-icon-button

lxdeというかpcmanというファイルまねーじゃの挙動をみると, DnDすると, なんでもコピーしようとして, でぃれくとりじゃないからむり とエラーがでているようなので, どうしたものかと. とりあえず, なんちゃってプログラムをかいてしまったというのがこれ. Pythonが必要. pygtk使ってかいてます.

dnd-icon-buttonは 非常に雑にかかれたLauncherみたいなものです. 例えばdnd-icon-button -e "hoge %s" という形で起動したときに開かれるwindowのぼたんに, /foo/varをDnDすると lxterminalをひらき, hoge /foo/var を実行します. dnd.shとくみあわせると, どらっぐあんどどろっぷで 作業ができる環境をつくることができると思います.

こうしておけば hoge.shをくりっくして起動して立ち上がるものに DnDすればよい環境になります. ただし, このままでは, 直接, hoge.shにDnDしてもうまくいきません.

#!/bin/bash
if [ $# -ge 1 ]; then
 ~/hoge/test.sh %s
 exit
fi
dnd-icon-button -e "~/hoge/test.sh %s"
くらいにしておけば少し嬉しいかもしれない.

オプションについて

雑にかいたので, 設定ファイルはありません. そのかわりこまんどらいんおぷしょんでほとんど設定可能になっています. ラベルに表示するテキストまで設定可能なので, localizationは容易だとおもいます. オプションは以下のとおり. 因みに -terminal="hoge"とやるとだめで, -terminal "hoge"のようにやらないとうまくいってくれません.

-e
実行するこまんど. "hoge %s"みたいにかく. %sにはDnDされたふぁいるのふるぱすがくる. 必ず設定したほうがいい.
-message
だいあろぐに表示されるめっせーじ. "Drag and drop a file into the button." なにを行うのかかいておく. 必ず設定したほうがいい.
-execbutton-image
実行ぼたんの画像のふるぱす. Noneとするか""とすることで非表示. まぁ設定しておいてもいいかも
-execbutton-label
実行ぼたんに表示するテキスト. デフォルトは"". まぁ設定しておいてもいいかも
-teminal
ターミナルで実行するためのコマンドをかく. デフォルトは "lxterm -e %s"であり lxterminalで実行する. たーみなるで実行するコマンドをくおーとする時は-quote-commandおぷしょんも指定する. 代表的なたーみなるならこれよりも -tをつかってかくほうが便利. そちらなら-quote-commandオプションの面倒も見てくれる.
-t
ターミナルで実行するためのコマンドをせっていする. lxdelxterminall だとlxterminal. gnomegnome-terminalgなんかだと gnome-terminal. ほかには, kde,konsole,xfce,Teminal,xf,kterm,xterm,xなんかが指定できる。 使いたいターミナルがあるならせっていするけど, デフォルトのままでもいいと思う.
-showoptional
もう一度実行するためのぼたんを始めからひょうじするときはこのおぷしょん.
-againbutton-name
もう一度実行するためのぼたんに表示されるテキスト. デフォルトは"again"
-window-title
ひらくwindowのたいとる. デフォルトは""
-width
windowのサイズ デフォルトは100
-height
windowのサイズ デフォルトははばと同じ
-dialog-title
実行するぼたんをくりっくしたときに開くだいあろぐのたいとる. Defaultは"note"
-message-title
だいあろぐに表示されるめっせーじのたいとる. デフォルトはNOTE
-toggleoptional-label
だいあろぐ内にある `もう一度実行するぼたんを表示するか'というチェックぼっくすに表示するテキスト. デフォルトは, "Show optional button."
-togglequote-label
だいあろぐ内にある `実行こまんどをくおーとするか'というチェックぼっくすに表示するテキスト. デフォルトは, "quote"
-terminalentry-label
だいあろぐ内にある `ターミナルで実行するためのこまんど'を入力するためのテキストぼっくすのとなりにあるラベルにひょうじするテキスト. デフォルトは, "Command to rum terminal: "
-commandentry-label
だいあろぐ内にある `実行するこまんど'を入力するためのテキストぼっくすのとなりにあるラベルにひょうじするテキスト. デフォルトは, "Command to execute: "
-lastexecutedcommand
最後に実行したこまんどの初期値. Historyみたいな機能を(前回起動したときに最後に実行したコマンドを覚えておくような機能を)自分でかくならせってしてもいいけど, 普通は設定しない. 標準出力にログが垂れ流しなので, tailを使えば作れると思います.

dnd-icon-dock

dnd-icon-dockは標準入力からの入力に応じてあいこんを表示してそこにDnDすると 適当にコマンドを実行するようなプログラムです. 何をいっているか自分でも良くわからないのでもう少し説明します.

標準入力は各行毎に評価されます. [で始まる行を区切りとするブロックごとにあいこんを加えます. ブロック内では次が設定されます:

Comment=?
?をツールちっぷとして表示します
Icon=?
?をあいこんとして表示するよう努力します
Command=?
?を実行します
%u %U %f %F %sなどはDnDしたファイル(のふるぱすor URi)で置き換えられます.
Terminal=?
?がFalseとなっているときは, 直接実行します. そうでないときはterminalのなかで実行します.
ブロック内で同じ要素が設定された場合は上書きされます. デフォルト値はTerminalはTrueその他は""です.

キーワードはdesktopふぁいると同じなので cat *.desktop|dnd-icon-dock のようにすることが多分できます.

コマンドラインからのオプションで幾つか設定ができます.

-lang
-lang jaとやると Comment[ja]= または Comment=をつーるちっぷに表示します.
-icon-path
あいこんの画像買いるへのぱすを設定します. 複数せっていすることも可能で, -icon-path /path/a -icon-path /path/b のように設定すると, /path/bをさーちしてから/path/aをさーちし そのあとでかれんとをさーちします. 設定しなかったばあいはかれんとのみをさーちします
-window-title
ひらくwindowのたいとる. デフォルトは""
-width
windowのサイズ デフォルトは100
-height
windowのサイズ デフォルトははばと同じ
-teminal
ターミナルで実行するためのコマンドをかく. デフォルトは "lxterm -e %s"であり lxterminalで実行する. たーみなるで実行するコマンドをくおーとする時は-quote-commandおぷしょんも指定する. 代表的なたーみなるならこれよりも -tをつかってかくほうが便利. そちらなら-quote-commandオプションの面倒も見てくれる.
-t
ターミナルで実行するためのコマンドをせっていする. lxdelxterminall だとlxterminal. gnomegnome-terminalgなんかだと gnome-terminal. ほかには, kde,konsole,xfce,Teminal,xf,kterm,xterm,xなんかが指定できる。 使いたいターミナルがあるならせっていするけど, デフォルトのままでもいいと思う.

最新版

最新版(開発版)はこちらからダウンろーどしてください.

また, debian packageをKNOPPIXで作りました. Aptでいんすとーるすることもできます. こちら に方法をかいてあるようにsouces.listをかいて apt-get install dndtools ではいります. こちら から手でダウンろーどしてもよいとおもいます.


[もどる]