Відповіді:
AFAIK вибір дії базується на міметиці файлу, а не на його розширенні.
Принаймні, на Ubuntu, ви повинні мати можливість використовувати query
дію, xdg-mime
щоб показати програму за замовчуванням для певного міметипу
$ xdg-mime query default image/jpeg
eog.desktop
Ви можете перевірити mimetype для певного файлу, використовуючи xdg-mime query filetype
напр
$ xdg-mime query filetype kqDRdnW.jpg
image/jpeg
або за допомогою file
команди, наприкладfile --mime-type <file>
Див. man xdg-mime
Додаткову інформацію про використання.
xdg-mime query filetype <file_you_want_the_mimetype_of>
xdg-mime query default
, не завжди спрацьовує, якщо xdg-open
просто викликати основний інструмент (наприклад pcmanfm
); приклад, який ви використовували у своїй відповіді, нічого не повертає в моїй системі LXDE.
var="xdg-mime query default image/jpeg" && $(${var%.desktop})
Для запиту типу mime, який використовується наявним файлом за допомогою xdg-utils
, він працює як:
$ xdg-mime query filetype yourfile.xxx
Ви також можете встановити новий за замовчуванням, наприклад, змінити пов'язаний запис на робочому столі, встановивши Thunar - сучасний файловий менеджер для Xfce Desktop Environment - як браузер файлів за замовчуванням, який слід ввести:
$ xdg-mime default Thunar.desktop inode/directory
Або, наприклад, для встановлення програми за замовчуванням для http(s)://
інтернет-протоколів, ви можете використовувати:
$ xdg-mime default midori.desktop x-scheme-handler/http
OR
$ xdg-mime default midori.desktop x-scheme-handler/https
rpm
системами, що базуються; це частина стандартного робочого столу і працює на Debian (наприклад). На жаль, це спосіб встановити значення за замовчуванням; не сказано, як знайти, яке значення встановлено. І xdg-mime query default
не завжди повідомляється про те, що це буде робити, якщо xdg-open
зателефонувати на базову програму настільних ПК (наприклад, pcmanfm
на LXDE).