Ubuntu 22.04のNautilusファイルマネージャにカスタムアクションを追加するには

公開 | 更新 
図11.Tree Dir 実行例

Ubuntu 22.04LTSで廃止された Nautilus ファイルマネージャ向け拡張ツール、Filemanager Actions の仕様を引き継ぎつつも一から作り直された Actions For Nautilus をインストールし、以前作ったカスタムアクションを全て移植しました。

Ubuntu22.04で消えたFilemanager Actions

UbuntuのファイルマネージャNautilusの右クリックで出て来るメニューに、様々な機能を追加することが出来るFilemanager Actionについては、以前記事にした通り日々愛用してきました。

Ubuntu 22.04へアップグレード後、機能検証を進めている中で、右クリックメニューに割り当てていたこうしたカスタムアクションが無くなっていることに気づき、調べてみると残念な事実を知ることとなりました。

ただ、上記スレッドの回答の中に、Filemanager Actionの仕様を引き継ぎつつも、一から開発されたActions For Nautilusと言う代替ツールの存在を知りました。

 

代替ツール Actions For Nautilusを導入

Actions For Nautilusの公式GitHubには、導入から仕様、使い方から使用例まで、全て丁寧にドキュメント化されています。

今回導入してみる環境は、Ubuntu 22.04 LTS です。

図01.ファイルマネージャについて

図01.ファイルマネージャについて

Actions For Nautilusをインストールする前に、必要な依存パッケージをaptパッケージマネージャでインストールしておきます。

GitHubで公開されているdebファイルをダウンロードの上、インストールします。

 

設定UIと使用感

アプリケーションの一覧で検索すると見つかるアイコンをクリックして設定UIを開きます。

図02.設定UIへのアイコン

図02.設定UIへのアイコン

するとブラウザが開いてびっくりするのですが、ブラウザベース( localhost:55913 )の設定UIなのだそうです。

図03.設定UI デフォルトビュー

図03.設定UI デフォルトビュー

インストール時にいくつかサンプルアクションが入っていて、それらをフォーム形式で設定できる他、生のJSONファイルを直接編集するビューも用意されています。

図04.設定UI JSONビュー

図04.設定UI JSONビュー

メニューはサブメニューで入れ子状にすることも可能。

図05.サブメニュー設定

図05.サブメニュー設定

アクションを設定したら、Nautilusを再起動して反映させます。

Nautilus上でファイルを右クリックしてみると、Filemanager Actionの時と異なり階層の一番上に列記されるので、このままではメニューが縦長になりすぎないか心配。

図06.右クリックメニューへの適用例

図06.右クリックメニューへの適用例

そこで、これから追加するカスタムアクションは、全て More Actions... というサブメニューを作って格納することにします。

サンプルアクションの1つ、 Test All Place Holders は、Actions for Nautilusで利用できる全引数の参照結果を表示してくれるもので、これには zenity というパッケージが必要です。

図07.Test All Place Holders 実行結果

図07.Test All Place Holders 実行結果

またクリップボードへファイル名やフルパスをコピーする Copy details 内のアクションは、 xclip パッケージが無いと機能しません。

 

それではここから、過去に作ったFilemanager Actionのカスタムアクションを、Actions for Nautilusへ移植していきます。

 

1.画像やPDFのメタデータ消去

PDFや画像を誰かに送る際に気になるメタデータをクリック一発で削除してくれるこのアクションは、 exiftool が別途必要です。

Filemanager Actionでの設定をまとめると以下の通り。

  • Label      : Remove Exif
  • Command    : exiftool -P -all= %f
  • Exec Mode  : In a Terminal
  • Working Dir: %d
  • Basenames  : *.png OR *.pdf OR *.jpg (Unmatch Case)

Actions for Nautilusでは、MIMEタイプを活用して次のようなアクションを組みました。

なお、 filetypes , mimetypes 各項の値は、複数でなくとも必ず鉤括弧 ["...."] で囲まないと、正しく認識してくれないようです。

実行するとメタデータの削除後、オリジナルファイルも _original という名前で複製されて残ります。

図08.Remove Exif 実行例

図08.Remove Exif 実行例

2.PDFをページ毎のPNG画像へ変換

複数ページのPDFを単ページのPNG画像へ変換出力してくれるこのアクションは、ImageMagickが必要で、さらに -alpha オプションを使うので、ポリシーファイルの改変が必要です。

Filemanager Actionでの設定は以下の通り。

  • Label      : PDF->PNG
  • Command    : convert -density 300 -alpha off %f %w.png
  • Exec Mode  : In a Terminal
  • Working Dir: %d
  • Basenames  : *.pdf

これがActions for Nautilusでは次のようになります。

実行するとPDFファイル名に連番が付与された、各ページのPNG画像が生成されます。

図09.PDF to PNG 実行例

図09.PDF to PNG 実行例

3.複数画像の結合(縦方向・横方向)

2枚の画像を縦方向・横方向に結合するこのアクションも、ImageMagickにより実現しています。

縦方向・横方向それぞれ、Filemanager Actionではこのような設定でした。

  • Label      : Append Image Horiz    #横方向
  • Label      : Append Image Vert     #縦方向
  • Command    : convert +append %F %d/%w.append.%x    #横方向
  • Command    : convert -append %F %d/%w.append.%x    #縦方向
  • Exec Mode  : In a Terminal
  • Working Dir: %d
  • Basenames  : *.png *.jpg *.gif
  • Environment: more than 1

Actions for Nautilusでは、 min_items で最小選択数を設定することで、複数選択時にしか表示されないようにしています。

実行すると結合されたファイルは、 .append と言うファイル名が付与されて生成されます。

図10.Append Image 実行結果

図10.Append Image 実行結果

4.ディレクトリ・ファイル一覧のツリー表示

treeコマンドの実行結果をテキストファイルに出力するアクションです。

  • Label      : Gen Tree File
  • Command    : tree %w -o %d/tree.txt
  • Exec Mode  : In a Terminal
  • Working Dir: %d
  • Mimetypes  : inode/directory

Actions for Nautilusでは、作例にあった zenity コマンドへ渡す仕様に変えてみました。

実行結果は、 zenity の生成したウィンドウで選択コピー可能です。

図11.Tree Dir 実行例

図11.Tree Dir 実行例

5.pdftkによるPDFファイルの結合と一括回転操作

このアクションで使うPDFtkは、 snap で予めインストールしておきます。

複数PDFファイルを結合するアクションはこのような設定にしていました。

  • Label      : Merge PDF
  • Command    : pdftk %F cat output %d/%w.merge.%x
  • Exec Mode  : In a Terminal
  • Working Dir: %d
  • Basenames  : *.pdf
  • Environment: more than 1

これが、Actions for Nautilusでは次のようになります。

 

続いてPDF内の全ページを180度回転させるアクションは、以下の要領だったのが、

  • Label      : Rotate180 PDF
  • Command    : pdftk %f cat 1-enddown output %W.rotate.%x
  • Exec Mode  : In a Terminal
  • Working Dir: %d
  • Basenames  : *.pdf

Actions for Nautilusでは次のようになります。

実行すると、結合時は.merge、回転時は.rotateという名前でファイルが生成されます。

図12.Rotate180 PDF 実行例

図12.Rotate180 PDF 実行例

 

以上、設定ファイル全体は、以下のようになりました。

 

created by Rinker
¥1,962 (2024/03/28 01:33:12時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA