Estou tentando definir o aplicativo padrão para os arquivos R noweb, mas não consigo encontrar o local onde isso é especificado. A razão para isso é que meus gerenciadores de arquivos parecem determinar o tipo de arquivo por extensão de nome de arquivo (.Rnw) em vez de ou além do esquema especificado por freedesktop.org (isto é: mimeapps.list, mimeinfo.cache, defaults.list ...)
Eu tentei pcmanfm e thunar como gerenciadores de arquivos. Eles concordam na determinação do tipo de arquivo, mas diferem do utilitário xdg-mime query filetype . Veja abaixo exemplos mínimos e arquivos de configuração.
Além disso, o utilitário xdg-mime parece ignorar o local mimeapps.list , mas o gerenciador de arquivos o honra.
A pergunta é: A minha suposição é a de que os tipos de arquivo são determinados pela extensão de nome nesses gerenciadores de arquivos e onde eu encontro a configuração associada?
Eu uso o Awesome WM como gerenciador de janelas como pcmanfm como gerenciador de área de trabalho.
Atualização: encontrei este tutorial sobre extensões de arquivo em pcmanfm , mas meu problema ainda é o tipo mime e o tipo inferido por pcmanfm não correspondem ( rnoweb.Rnw é tipo MIME text/plain , rnoweb0.Rnw is inode/x-empty , ainda pcmanfm lista ambos como R Sweave file )
Update2 [RESOLVIDO]:
@mji propôs um arquivo xml para ser colocado em ~/.local/share/mime/packages . Este arquivo já existe como /usr/share/mime/text/x-r-sweave.Rnw . Acontece que a alteração da tag <comment> nesse arquivo altera a coluna Descrição no thunar e no pcmanfm. Ele também atribui o tipo MIME x-r-sweave aos arquivos. Eu encontrei isso já na minha pergunta, mas esqueci isso (eu procurei por x-r-noweb )
Exemplo mínimo:
Eu criei quatro arquivos em um diretório vazio. Dois vazios, dois com conteúdo de amostra:
touch plain0 rnoweb0.Rnw
cat > plain <<EOF
text
EOF
cat > rnoweb.Rnw <<EOF
<<>>=
1+1
@
EOF
Eu corro xdg-mime query filetype e xdg-mime query default nesses arquivos para obter os seguintes resultados:
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
No entanto, thunar e pcmanfm listam o tipo dos arquivos *.Rnw como "Arquivo R Sweave" e os arquivos plain* como documento de texto simples ("Einfaches Textdokument" em alemão). O aplicativo padrão listado nos gerenciadores de arquivos é RStudio para *.Rnw e GVim para plain* .
Arquivos de texto simples são abertos com o GVim, discordando do utilitário xdg-mime , mas de acordo com as configurações do meu local .local/share/applications/mimeapps.list
Os únicos arquivos no meu sistema que correspondem a locate mimeinfo e locate mimeapps são
/etc/xdg/mimeapps.list
/usr/share/applications/mimeinfo.cache
~/.local/share/applications/mimeapps.list
~/.local/share/applications/mimeinfo.cache
grep ping para a ocorrência de rstudio (rstudio.desktop) nesses arquivos resulta (resultados semelhantes resumidos em {...} )
/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;
nenhum outro arquivo mencionado na especificação XDG contém qualquer ocorrência de rstudio .
grep ping para o tipo text/plain MIME, obtenho:
/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;