Якщо ви використовуєте xdg-open
для відкриття програм, то використовуйте xdg-mime
для встановлення програми за замовчуванням для даного типу mime (як правило, встановлення xdg-utils дає вам xdg-mime та пов'язані з ними програми).
Наприклад, щоб побачити тип файлу (тип mime, якщо ви хочете) даного файлу:
$ xdg-mime query filetype tmp.txt
text/plain
$ xdg-mime query filetype foo.pdf
application/pdf
$ xdg-mime query filetype $PWD
inode/directory
Приклад зміни файлу файлів за замовчуванням для відкриття каталогів (можна вибрати caja.desktop (за замовчуванням для монетного двору), nautilus.desktop (ubuntu) тощо:
$ xdg-mime default Thunar.desktop inode/directory
А також зробити, locate -i foo.desktop
щоб переконатися, що foo.desktop
насправді існує.
Більше того, щоб побачити, що таке текстовий редактор за замовчуванням,
$ xdg-mime query default text/plain
gedit.desktop
Щоб використовувати інший текстовий редактор за замовчуванням (знову ж таки, переконавшись, що файл ".desktop" існує):
$ locate -i vim.desktop
/usr/share/applications/gvim.desktop
$ xdg-mime default gvim.desktop text/plain
Тепер або двічі клацніть "foo.txt" (у вашому файловому менеджері графічного інтерфейсу), або запущений xdg-open foo.txt
буде gvim
замість цього gedit
.
Усунення несправностей: переконайтеся, що файл ".desktop" для даної програми можна знайти, оскільки це потрібно використовувати з xdg-mime
утилітою; наприклад,
$ xdg-mime default emacs text/plain
xdg-mime: malformed argument 'emacs', expected *.desktop
Крім того, це мовчки не працює, як очікувалося, якщо файл ".desktop" не існує:
$ locate -i emacs.desktop
(none)
$ xdg-mime default emacs.desktop text/plain # won't work
Фактичний файл ".desktop" emacs (в моєму оточенні):
$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop
$ xdg-mime default emacs24.desktop text/plain # does work
Дивіться також: https://wiki.archlinux.org/index.php/xdg-open
/usr/share/applications/mimecache.info
файл, який, здається, містить список програм за замовчуванням. Це ще більше заплутано ...