2017年8月28日月曜日

Thunar で選択したファイル名をクリップボードへコピー

Windows 用には Clipcopy というフリーソフトを昔に作って使ってたんだけど、Ubuntu 用はないかなと物色していたところファイラー(Thunar)のアクションを設定すれば使えるらしいということで早速試してみたところうまく行ったので備忘録。


まずは普通にコマンド欄に下記を入れてみました。

コマンド(C): echo %F | xset -bi

これだけでできるのですが、ちょっと残念なことに複数ファイルを選択したときに半角スペース区切りとなってしまい、ファイル名のスペースと区切り文字のスペースの区別がつきません。そこでひと工夫

コマンド(C): echo '%F' | xset -bi

これで各ファイル名がシングルクォートでくくられるようです。おそらく、Thunarがシングルクォート区切りを吐いていて、それをさらにシングルクォートでくくっているのでそのまま出ているのではないかと思います。

これはこれで使えるのですが、複数ファイル名が欲しいときってバッチを作ったりする際だったりするのでできれば改行区切りがいいなぁと…

そこで簡単なシェルスクリプトを作成

~/bin/prm_split.sh

if [ $# -eq 1 ]; then
    echo -n "$1"
else
    for f in "$@"; do
        echo $f
    done
fi

引数の数を見ているのは、1個のファイル名を貼り付けるケースというのはコマンドラインが多く、コマンドラインでは改行が入っては不都合だからです。スペース区切りと改行区切りの2つのアクションを作るのであれば for 〜 done だけで十分です。

コマンド(C): prm_split.sh %F | xset -bi

これで期待通りの動作\(^_^)/

で、端末にファイル名を貼り付けようとしたら…張り付かない><;

ちょっといじって

コマンド(C): prm_split.sh %F | xset -pi

これだとうまく行く…
仕方がないので2回実行

コマンド(C): prm_split.sh %F | xset -bi;prm_split.sh %F | xset -pi

はいこれで期待通りの動作。

0 件のコメント: