Okumatsu_Hiroshi Website
trash-cliを使ってroxにゴミ箱機能を実現
右クリックメニューからゴミ箱へ送るスクリプト
fluxboxには、標準のファイルマネジャーというものがありません。従って、何を使ってもいいわけですが、ファイルマネジャー にも長短様々あって、これが決定版と言うのもなかなか決められません。結局は使う人の好みによるのでしょう。
私の好きな rox-filer にはゴミ箱の機能がありません。pcmanfm にもなし。ゴミ箱の機能がある nautilus や thunar を使えば良さそうなものですが、重かったり、使い勝手が気に入らなかったり。人間は贅沢な生き物です。
そこで、trash-cli というコマンドラインアプリを使って、rox-filerの右クリックメニューに「ゴミ箱へ送る」と言うのを 追加してみようと思います。この trash-cli は、python のスクリプトで、nautilus や thunar と共通のゴミ箱を使いますので、とても便利です。 コマンドラインから、削除、リスト表示、復元、ゴミ箱を空にする、などのコマンドを実行できます。
以下で紹介するスクリプトは、削除(ゴミ箱へ送る)の機能だけを使っています。
trash-cliをインストールする
trash-cli というパッケージが Ubuntu のリポジトリからインストールできます。
$ sudo aptitude install trash-cli
シェルスクリプトをつくる
ファイルやフォルダをゴミ箱に送るとき、確認ダイアログを表示したいと思います。
以下のようなスクリプトを作ってください。
#!/bin/bash
# = Trash.sh
# version:: 10.426
# date :: 2010/4/26
# author :: okumatsu hiroshi
#
# マウスで選択したファイル(ディレクトリ)をゴミ箱へ送るスクリプト
#
IFS_BK=$IFS
IFS=,
files="$@"
message=""
script_name=`basename ${0}`
if zenity --question --title="Send to Trash" --text="このファイル(ディレクトリ)をゴミ箱に送ってもいいですか?"; then
message=`trash ${files}`
fi
if [ "${message}" != "" ]; then
message="${script_name}: Error message!\n${message}"
zenity --error --title="Error - Trash.sh" --text="$(echo ${message})"
fi
IFS=$IFS_BK
確認ダイアログでOKをクリックしたときだけ、ファイル(フォルダ)をゴミ箱に送ります。複数のファイルでも、ファイル名に 空白を含んでいても動きます。何らかのエラーがあった場合には、エラーダイアログを表示します。
このスクリプトは、マウスで選択したファイル(フォルダ)をゴミ箱に送るためのものなので、roxの右クリックメニューに 追加しないと意味がありません。
roxのメニューに追加する
~/.config/rox.sourceforge.net/SendTo を開き、この中にスクリプト本体またはシンボリックリンク
を置きます。ターミナルで操作するなら以下のように、
$ cd ~/.config/rox.sourceforge.net/SendTo $ ln -s ~/bin/Trash.sh ./.
シンボリックリンクを作り、わかりやすくリネームするといいでしょう。
$ mv ./Trash.sh ./ゴミ箱へ送る
rox-filer の右クリックメニューで、「次のクリック」=>「アプリに送る」を選ぶと、「ゴミ箱へ送る」がメニューに 現れるはずです。
trash-cliの他のコマンド
上記のスクリプトは、「ゴミ箱へ送る」しかコマンドを使えませんが、trash-cli をインストールすると、
-
list-trash: ゴミ箱内のファイルをリストで表示するrestore-trash: ゴミ箱内のファイルを復元するempty-trash: ゴミ箱を空にする
他にこれらのコマンドが利用できます。