xdg-open/mimeopenで不明なファイルのデフォルトアプリケーションを設定するには?

xdg-open/mimeopenで不明なファイルのデフォルトアプリケーションを設定するには?

私のLubuntu(18.10)では、xdg-openファイルがどのアプリケーションにも関連付けられていない場合、VLCプレーヤーが起動します。

$ xdg-mime query filetype jquery.js
application/javascript
$ xdg-mime query default application/javascript # no output
$ xdg-open jquery.js
Error: no "view" mailcap rules found for type "application/javascript"
Opening "/tmp/jquery.js" with VLC media player  (application/javascript)

一部のファイルでは、Calibreの電子ブックビューア(.rbなど)が実行されます。


編集するより深く掘り下げて、xdg-open次のコマンドを実行することを発見しました。

  1. xdg-mime query filename "$file"ファイル形式の使用と確認xdg-mime query default $filetype
  2. run-mailcap --action=view "$file"
  3. mimeopen -L -n "$file"

問題はmimeopenにあります。

それでは、mimeopenをどのように変更して開くことができますか?不明なファイルFeatherPadを使用していますか、または特定のアプリを使用していますか?つまり、mimeopenが適切なアプリケーションを見つけることができない場合は、デフォルトの代替アプリケーションを設定したいと思います。

答え1

mimeopen不明なファイルをまたはとしてtext/plain扱いますapplication/octet-stream

デフォルトのアプリケーションを設定するには、-dオプションを使用してmimeopenを実行します。 MIME形式を指定するオプションが見つからないため、まずダミーファイルを作成する必要があります。

touch text.txt # for text/plain
mimeopen -d text.txt # and choose your favorite app

echo -e \\0 > data.dat # for application/octet-stream
mimeopen -d -M data.dat

または、「~/.config/mimeapps.list」を編集してください。

[Default Applications]
text/plain=featherpad.desktop;  
application/octet-stream=firefox.desktop;

mimeopen、付随的ファイル - MimeInfo、アプリを探すまね。たとえば、ファイル形式が「text /」で始まる場合、その親ファイル形式は「text / plain」です。すべてのファイル形式は「application/octet-stream」を継承します。

私の環境のmimeopenでは、オクテットストリーミングに最適な「適切な」アプリケーションはVLCプレーヤーであり、テキスト/一般の場合はCalibreのebookビューアです。これがこれらのアプリケーションを使用して特定のファイルを開く理由です。

答え2

man xdg-mimeオプションがあります:デフォルトのxdg-mime default application mimetype(s)アプリケーション設定。あなたはそれを使用することができます

xdg-mime default featherpad.desktop application/javascript

featherpad.desktopを開くには、デフォルトエディタに設定しますapplication/javascript

/usr/share/applications/default.listまたは、ファイルマネージャに応じて、私のようにディレクトリ内のファイルを見つけることができますgnome-mimeapps.list(私はgnome DEとnautilus FMを使います)。このファイルを編集してデフォルトのアプリケーションを起動できます。

関連情報