ないときはdefaults.list
およびmimeapps.list
、xdg-open
が開くtext/plain
with gvim
。しかし、私が作成するときdefaults.list
/usr/share/applications/
と次の行を追加します。
[Default Applications]
text/plain=emacs.desktop
firefoxでテキストファイルを開きます。
ただし、移動すると/usr/share/applications/defaults.list
から~/.local/share/applications/mimeapps.list
、期待どおりにemacs
でテキストファイルを開きます。
私の質問:
xdg-open
がない場合に起動するアプリケーションを決定しますdefaults.list
およびmimeapps.list
?xdg-open
書くときにFirefoxを使う/usr/share/applications/defaults.list
?Arch Linuxを使用しています。
xdg-open
を使用してアプリケーションを開く場合は、xdg-mime
を使用して特定のMIMEタイプのデフォルトアプリケーションを設定します(通常、xdg-utilsをインストールすると、xdg-mimeおよび関連プログラムが提供されます)。
たとえば、指定されたファイルの「ファイルタイプ」(もしあればMIMEタイプ)を表示するには:
$ xdg-mime query filetype tmp.txt
text/plain
$ xdg-mime query filetype foo.pdf
application/pdf
$ xdg-mime query filetype $PWD
inode/directory
ディレクトリを開くためのデフォルトのファイルマネージャーを変更する例(caja.desktop(mintのデフォルト)、nautilus.desktop(ubuntu)などを選択できます):
$ xdg-mime default Thunar.desktop inode/directory
また、locate -i foo.desktop
を実行して、foo.desktop
が実際に存在することを確認します。
さらに、デフォルトのテキストエディタが何であるかを確認するために、
$ xdg-mime query default text/plain
gedit.desktop
別のデフォルトのテキストエディターを使用するには(ここでも、「。desktop」ファイルが存在することを確認します):
$ locate -i vim.desktop
/usr/share/applications/gvim.desktop
$ xdg-mime default gvim.desktop text/plain
これで、(GUIファイルマネージャで) "foo.txt"をダブルクリックするか、xdg-open foo.txt
を実行すると、gvim
ではなくgedit
が使用されます。
トラブルシューティング:xdg-mime
ユーティリティで使用する必要があるため、特定のアプリケーションの「.desktop」ファイルが見つかることを確認してください。例えば。、
$ xdg-mime default emacs text/plain
xdg-mime: malformed argument 'emacs', expected *.desktop
さらに、「。desktop」ファイルが存在しない場合、これは期待どおりに機能しません。
$ locate -i emacs.desktop
(none)
$ xdg-mime default emacs.desktop text/plain # won't work
実際のemacs ".desktop"ファイル(私の環境内):
$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop
$ xdg-mime default emacs24.desktop text/plain # does work
#!/bin/sh
FILETYPE=$(xdg-mime query filetype $1)
APP=$( find /usr/share -type f -name "*.desktop" -printf "%p\n" | rofi -threads 0 -dmenu -i -p "select default app")
APP=$(basename -- $APP)
xdg-mime default "$APP" "$FILETYPE"
echo "$APP set as default application to open $FILETYPE"
このスクリプトをファイルで使用すると、このファイルタイプに使用するデフォルトのアプリを選択するように求められます。
私はrofi
を使用していますが、選択したファジーファインダーに合わせて調整できます。その後、xdg-open
を使用してファイルを開くことができます。