web-dev-qa-db-ja.com

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など)が起動します。


[〜#〜] edit [〜#〜]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を変更して、フェザーパッドまたは特定のアプリで不明なファイルを開くにはどうすればよいですか?言い換えれば、mimeopenが適切なアプリを見つけられない場合、デフォルトのフォールバックアプリケーションを設定したいと思います。

3
rad164

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

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

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;

File-MimeInfo に同梱されているmimeopenは、parentmimytypesを持つアプリケーションを見つけようとします。たとえば、ファイルタイプが「text /」で始まる場合、親として「text/plain」があります。そして、すべてのファイルタイプは「application/octet-stream」を継承します。

私の環境のmimeopenでは、オクテットストリームに最も「適した」アプリはVLCプレーヤーで、テキスト/プレーンには、CalibreのE-book Viewerです。そのため、これらのアプリでいくつかのファイルが開かれます。

2
rad164

_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_です(私はgnomeDEとnautilusFMを持っています)。このファイルを編集して、デフォルトのアプリケーションを起動できます。

3
Prvt_Yadav