Encuentra la aplicación predeterminada para una determinada extensión

12

Dado xdg-open y una extensión, ¿hay alguna forma de obtener la aplicación para la que xdg-open está configurada para esa extensión en particular?

Por ejemplo dado xdg-openy .jpgel resultado es eog.

sjsam
fuente
1
¿Qué sistema operativo estás usando?
heemayl
Esto es Ubuntu Trusty.
sjsam

Respuestas:

13

AFAIK la elección de la acción se basa en el tipo MIME del archivo en lugar de su extensión.

Al menos en Ubuntu, debería poder usar la queryacción de xdg-mimemostrar la aplicación predeterminada para un tipo MIME específico

$ xdg-mime query default image/jpeg
eog.desktop

Puede verificar el tipo MIME para un archivo en particular usando, xdg-mime query filetypepor ejemplo,

$ xdg-mime query filetype kqDRdnW.jpg
image/jpeg

o usando el filecomando egfile --mime-type <file>

Consulte man xdg-mimepara obtener más información sobre el uso.

conductor de acero
fuente
Probablemente valga la pena mencionar al OP que la forma en que obtienes el tipo mime para el tipo de archivo jpeg esxdg-mime query filetype <file_you_want_the_mimetype_of>
the_velour_fog
@the_velour_fog buen punto - agregado
steeldriver
Desafortunadamente xdg-mime query default, no siempre funciona si xdg-opensolo llama a una herramienta subyacente (por ejemplo pcmanfm); el ejemplo que usó en su respuesta no devuelve nada en mi sistema LXDE.
Stephen Harris
Gracias, iría primera opción aquí,var="xdg-mime query default image/jpeg" && $(${var%.desktop})
sjsam
5

Para consultar el tipo mime utilizado por un archivo existente utilizando xdg-utils, funciona como:

$ xdg-mime query filetype yourfile.xxx

También puede establecer un nuevo valor predeterminado, por ejemplo, para cambiar una entrada de escritorio asociada configurando Thunar , un administrador de archivos moderno para el entorno de escritorio Xfce , como el navegador de archivos predeterminado que debe ingresar:

$ xdg-mime default Thunar.desktop inode/directory

O, por ejemplo, para configurar la aplicación predeterminada para http(s)://los protocolos de Internet, puede usar:

$ xdg-mime default midori.desktop x-scheme-handler/http

OR

$ xdg-mime default midori.desktop x-scheme-handler/https
FarazX
fuente
Esto no se limita a los rpmsistemas basados; Es parte del escritorio estándar y funciona en Debian (por ejemplo). Lamentablemente, esta es la forma de establecer un valor predeterminado; no dice cómo encontrar qué valor se establece. Y xdg-mime query defaultno siempre informa qué hará si xdg-openllama a un programa de escritorio subyacente (por ejemplo, pcmanfmen LXDE).
Stephen Harris
@StephenHarris Pensé que las opciones podrían ser diferentes. Gracias por decirme.
FarazX
Esta debería ser la respuesta aceptada.
navigaid