поведение приложений по умолчанию в xdg-open

13

Когда у меня нет defaults.listи mimeapps.list, xdg-openоткрывается text/plainс gvim. Но когда я создаю defaults.listв /usr/share/applications/и добавьте следующие строки:

[Default Applications]
text/plain=emacs.desktop

он открывает текстовые файлы с Firefox.

Однако, если я перейду /usr/share/applications/defaults.listк ~/.local/share/applications/mimeapps.list, он откроет текстовые файлы с emacsожидаемым.

Мои вопросы:

  1. Как xdg-openопределить, какое приложение запускать при отсутствии defaults.listи mimeapps.list?
  2. Почему я xdg-openиспользую Firefox, когда я просто пишу /usr/share/applications/defaults.list?

Я использую Arch Linux.

градиент
источник
1
Я использую Openbox. Кроме того, я заметил /usr/share/applications/mimecache.infoфайл, который, кажется, перечисляет приложения по умолчанию. Это еще более запутанно ...
Градиент
1
Я нашел этот файл конфигурации в~/.config/mimeapps.list
Сэм Мейсон

Ответы:

23

При использовании 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 (по умолчанию для mint), 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

Теперь вместо двойного нажатия xdg-open foo.txtбудет использоваться двойной щелчок «foo.txt» (в вашем файловом менеджере GUI) или запуск .gvimgedit

Устранение неполадок: убедитесь, что файл «.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

Фактический файл emacs ".desktop" (в моем env):

$ 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

Майкл
источник
3
Спустя годы, но спасибо! Какой-то разработчик поставил действительно плохую шутку в Wine, он, должно быть, подумал: «Если вы действительно хотите вернуть часть этой боли Windows, у вас должно быть все это, чтобы никогда не испытывать ностальгию!» И с тех пор все X11-программы запускают клон блокнота при открытии Text-Files. Открытие файлов из приложения для меня редкость, но блокнот действительно больно. С твоей помощью я получил гвим.
флешпост