
仕事でもお家でも普段は Ubuntu 使うようになって十年ほど。段々、ターミナルからシェルで済んでしまう操作も増えてきました。それでも、ディレクトリーツリーを渡り歩くのはGUIの方が速いわけで、ファイルの一括処理などファイルマネージャー Nautilus 上で、シェルコマンド実行するようなこと出来ないかな思って使い始めたのが、 FileManager-Action です。
FileManager Actionsとは
以前はNautilus-Actionと言う名前だったような気がするのですが、調べてみるとなるほど名前変わったようです。まだ入っていなければ、先人さまに従い(Great Tnx!!)、PPA追加の上、まずインストールしましょう(Ubuntu 18.04LTS)。
1 2 |
$ sudo add-apt-repository ppa:daniel-marynicz/filemanager-actions $ sudo apt -y install filemanager-actions-nautilus-extension |
これでメニューなどから、FileManager Actionsと打つとアプリが出てきます。
仕事場UbuntuはもうLTSを何度かアップグレードしてきているので、このFileManager Actionsと、Nautilus Actionsアプリが共存しています。作成したActionはどちらも同じものを見ているようなので、実害は無いものの、気持ち悪いのでいずれ綺麗にしようかな。
登録するActionで使える引数はこんなにあります。これだけあれば欲しい要素は大概得られることでしょう。
Actionの登録中はこまめにセーブして挙動を確認。設定変えたのに反映されないなど、おかしいと思ったら、そのActionは一度削除して、新規作成するのが確実です。そのためにも、出来上がったActionはExport機能でバックアップしておいた方が良いと思います。
こうして出来上がったActionはNautilusの右クリックで出現するコンテキストメニューに現れます。
それでは実際に使っているActionを以下にまとめると共に、今後もここへ適宜追加したいと思います。
1. 画像やPDFのメタデータ消去
撮影情報などが含まれる画像のexifデータや、オフィス複合機でPDFを印刷する際に記録されるメタデータは、exiftoolできれいさっぱり消去することが出来ます。インストールはこのように。
1 |
$ sudo apt -y install libimage-exiftool-perl |
Actionの仕込みは以下の通り。コマンドのパラメータ項がキモで、Basenamesタブで適用したいファイル拡張子を指定します。デジカメから持ってきた画像などでは、ファイル名・拡張子が大文字の場合があるので、Match caseのチェックを外しておいた方が良いでしょう。
1 |
exiftool -P -all= %f |
2. PDFをページ毎のPNG画像へ変換
スマホアプリでよくある変換モノ、ImageMagickの convert コマンドで、PDFが複数のページから構成される場合は、末尾に連番の付与されたファイル名の画像が出力されます。ImageMagickがまだ入っていない場合はまずインストールから。
1 |
$ sudo apt -y install imagemagick |
Actionの仕込みは、 exiftool の時とほぼ同じ。コマンドパラメータの -density は解像度を意味し、好みですがあまり低いと判読出来ません。また、見た目が白背景のPDFでも実は透過が掛かっていることがあるので、 -alpha off で透過を無効にします。
1 |
convert -density 300 -alpha off %f %w.png |
なお、環境によってはこの -alpha オプションを使うと、次のようなエラーで怒られ失敗することがあります。
1 2 3 |
$ convert -density 300 -alpha off 2N2222.pdf 2N2222.png convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/421. convert-im6.q16: no images defined `2N2222.png' @ error/convert.c/ConvertImageCommand/3229. |
これはImageMagickのセキュリティポリシー設定によるものらしく、設定ファイル /etc/ImageMagick-6/policy.xml を以下の要領で変更するとエラーはなくなります。
1 2 3 4 |
編集前) <policy domain="coder" rights="none" pattern="PDF" /> 編集後) <policy domain="coder" rights="read|write" pattern="PDF" /> |