環境なしで `xdg-open` を適切かつ簡単に設定するにはどうすればよいですか?

環境なしで `xdg-open` を適切かつ簡単に設定するにはどうすればよいですか?

私はOpenBoxウィンドウマネージャーを使用していますデスクトップ環境なしで

xdg-open動作がおかしくなります。すべてが で開きますfirefox

$ xdg-settings --list
Known properties:
  default-web-browser           Default web browser

私はシンプルなプログラムを探しています。*.desktopファイル/usr/share/applications/フォルダーを作成し、xdg 設定を自動的に設定します。

答え1

xdg 自体のユーティリティを使用しないのはなぜですか?

Thunar をデフォルトのファイル ブラウザー、つまりフォルダーを開くためのデフォルトのアプリケーションにします。

$ xdg-mime default Thunar.desktop inode/directory

xpdf をデフォルトの PDF ビューアとして使用するには:

$ xdg-mime default xpdf.desktop application/pdf

これによりエントリが作成されます

[Default Applications]
application/pdf=xpdf.desktop

ローカル MIME データベース内~/.config/mimeapps.list

これで、PDF ファイルが xpdf で開かれるはずです。

答え2

インストールして使用できますperl ファイル mimeinfoリポジトリでextraMIME タイプを管理します。

.pdfすべてのファイルを開く例apvlv:

/usr/bin/vendor_perl/mimeopen -d $file.pdf

mimeopenまたは、が に含まれていない/usr/bin/vendor_perl/が、次のいずれかのディレクトリに含まれる他の Linux ディストリビューションの場合$PATH:

mimeopen -d $file.pdf

次に、プロンプトでアプリケーションを入力します: apvlv

答え3

xdg-mimeこのようなものを使用して、各ファイルとそれらに含まれる MIME タイプに適切なコマンドを生成し.desktop、必要なコマンドを実行できます。/usr/share/applicationsサブディレクトリがある可能性があることに注意してください。

find /usr/share/applications ~/.local/share/applications -iname '*.desktop' -print0 | while IFS= read -r -d $'\0' d; do
  for m in $(grep MimeType "$d" | cut -d= -f2 | tr ";" " "); do
    echo xdg-mime default "'$d'" "'$m'"
  done
done

答え4

私のように、適切な MIME タイプを取得する方法がわからない人のためにxdg-mime:

1- 初期状況:

$ xdg-open .vscodium を開きます (この愚かなファイルの関連付けをハードコードしたのは誰ですか?) :[

2- 問題: 「.」の MIME タイプは何ですか?

$ mimetype . .: inode/directory

3- 解決策:

$ xdg-mime default thunar.desktop inode/directory

注意: 次の行は機能しませんが、エラーは報告されません:{ $ xdg-mime default Thunar.desktop inode/directory

関連情報