R nowebファイルのデフォルトアプリケーションを設定しようとしていますが、これが指定されている場所が見つかりません。これは、ファイルマネージャが、 freedesktop.org (つまり、mimeapps.list、 mimeinfo.cache、defaults.list ...)
ファイルマネージャーとしてpcmanfmとthunarを試してみました。それらはファイルタイプの決定に同意しますが、xdg-mime query filetype
ユーティリティとは異なります。最小限の例と構成ファイルについては、以下を参照してください。
さらに、xdg-mime
ユーティリティはローカルのmimeapps.list
を無視しているようですが、ファイルマネージャはそれを尊重します。
質問は次のとおりです。ファイルタイプはこれらのファイルマネージャーの名前拡張子によって決定されるという私の仮定は正しいですか、関連する構成はどこにありますか?
私はAwesomeWMをウィンドウマネージャーとして使用し、pcmanfm
をデスクトップマネージャーとして使用しています。
更新:私は pcmanfmのファイル拡張子に関するこのチュートリアル を見つけましたが、私の問題はまだそのmimeタイプとpcmanfm
による推定タイプです一致しません(rnoweb.Rnw
はMIMEタイプtext/plain
、rnoweb0.Rnw
はinode/x-empty
ですが、pcmanfm
は両方をR Sweave file
としてリストします)
Update2 [解決済み]:@ mjiは、~/.local/share/mime/packages
に配置するxmlファイルを提案しました。このファイルはすでに/usr/share/mime/text/x-r-sweave.Rnw
として存在します。そのファイルの<comment>
タグを変更すると、thunarとpcmanfmの[説明]列が変更されることがわかりました。また、MIMEタイプx-r-sweave
をファイルに割り当てます。これはすでに私の質問で見つかりましたが、見落としていました(x-r-noweb
を検索しました)
最小限の例:
空のディレクトリに4つのファイルを作成しました。 2つは空、2つはサンプルコンテンツ付き:
touch plain0 rnoweb0.Rnw
cat > plain <<EOF
text
EOF
cat > rnoweb.Rnw <<EOF
<<>>=
1+1
@
EOF
これらのファイルに対してxdg-mime query filetype
とxdg-mime query default
を実行して、次の結果を取得します。
filename MIME type Default app
-------------------------------------------------
plain text/plain medit.desktop
plain0 inode/x-empty
rnoweb0.Rnw inode/x-empty
rnoweb.Rnw text/plain medit.desktop
ただし、thunar
およびpcmanfm
は、*.Rnw
ファイルのタイプを「RSweaveファイル」としてリストし、plain*
ファイルをプレーンテキストドキュメント(ドイツ語で「EinfachesTextdokument」)としてリストします。ファイルマネージャにリストされているデフォルトのアプリケーションは、*.Rnw
の場合はRStudio
、plain*
の場合はGVimです。
プレーンテキストファイルはGVimで開かれ、xdg-mime
ユーティリティに同意しませんが、ローカルの.local/share/applications/mimeapps.list
の設定に従います。
locate mimeinfo
とlocate mimeapps
に一致する私のシステム上の唯一のファイルは
/etc/xdg/mimeapps.list
/usr/share/applications/mimeinfo.cache
~/.local/share/applications/mimeapps.list
~/.local/share/applications/mimeinfo.cache
これらのファイルでgrep
(rstudio.desktop)が発生した場合のrstudio
pingは、次のようになります({...}
に要約された同様の結果)
/usr/share/applications/mimeinfo.cache
application/x-r-data=rstudio.desktop;
application/x-r-project=rstudio.desktop;
text/css=rstudio.desktop;
text/html=firefox.desktop;abiword.desktop;calibre-ebook-edit.desktop;rstudio.desktop;elinks.desktop;
text/javascript=rstudio.desktop;
text/x-R=rstudio.desktop;
text/x-markdown=rstudio.desktop;
text/x-r=rstudio.desktop;
text/x-r-{doc,markdown,history,html,presentation,profile,source,sweave}\
=rstudio.desktop;
text/x-tex=texstudio.desktop;gvim.desktop;rstudio.desktop;
xDG仕様に記載されている他のファイルには、rstudio
の出現は含まれていません。
text/plain
MIMEタイプのgrep
ping、私は以下を取得します。
/etc/xdg/mimeapps.list : text/plain=medit.desktop;
/usr/share/applications/mimeinfo.cache : text/plain=medit.desktop;libreoffice-writer.desktop;gvim.desktop;abiword.desktop;
~/.local/share/applications/mimeapps.list : text/plain=gvim.desktop
~/.local/share/applications/mimeapps.list : text/plain=gvim.desktop;
$ vi ~/.local/share/mime/packages/x-r-noweb.xml
$ cat ~/.local/share/mime/packages/x-r-noweb.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/x-r-noweb">
<comment>R noweb</comment>
<glob pattern="*.Rnw"/>
</mime-type>
</mime-info>
$ update-mime-database ~/.local/share/mime/
$ xdg-mime query filetype rnoweb0.Rnw
text/x-r-noweb
$ mimetype -d rnoweb0.Rnw
rnoweb0.Rnw: R noweb
$ mimetype rnoweb0.Rnw
rnoweb0.Rnw: text/x-r-noweb
$ xdg-mime default Nice-app.desktop text/x-r-noweb
# (or edit ~/.local/share/applications/mimeapps.list)
$ xdg-mime query default text/x-r-noweb
Nice-app.desktop