Respuestas:
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.
xdg-mime query filetype <file_you_want_the_mimetype_of>
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.
var="xdg-mime query default image/jpeg" && $(${var%.desktop})
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
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).