Как команда xdg-open узнает, какое приложение использовать для открытия файла?


21

Я ожидаю, что команда xdg-open будет использовать то же приложение, которое открывается, когда я дважды щелкаю файл в файловом менеджере по умолчанию, но это не всегда так.

Например, мой DE - это XFCE, мой файловый менеджер - Thunar, а мой просмотрщик картинок по умолчанию - Ristretto. Тем не менее, xdg-open example.pngоткрывается пример файла PNG в Пинта. Почему?

Ответы:


23

xdg-open - это независимый от рабочего стола инструмент для настройки приложений пользователя по умолчанию. Многие приложения вызывают команду xdg-open для внутреннего использования. В среде рабочего стола (например, GNOME, KDE или Xfce) xdg-open просто передает аргументы в приложение для открытия файлов в этой среде рабочего стола (например, gvfs-open, kde-open или exo-open). Это означает, что ассоциации оставлены на усмотрение рабочего стола. Если среда рабочего стола не обнаружена (например, когда запускается автономный оконный менеджер, например, Openbox), xdg-open будет использовать свои собственные файлы конфигурации.

из архива

в зависимости от вашего вопроса, вы можете попробовать установить приложение по умолчанию, связанное с файлом png:

xdg-mime default <ristretto.desktop> image/png

Вам необходимо выяснить, какое именно имя рабочего стола у Ристретто. после этого вы можете проверить это следующим образом:

xdg-mime query default image/png

1
Это можно считать формальным ответом, но на самом деле это не объясняет явление, которое я упомянул.
Иван

обновлено, пожалуйста, проверьте еще раз
oxnz

Благодарю. И это очень смешно: xdg-mime query default image/pngвозвращается wine-extension-png.desktop:-)
Иван

2

@Ivan Это, вероятно, происходит, потому что вы не указали правильный тип файла при запросе приложения по умолчанию. Важно то, как xdg вызывает этот конкретный тип файла. Это можно легко узнать, запустив

xdg-mime query filetype example.png

Например, если я сделаю это с определенным png-файлом на моем компьютере, он вернется image/x-apple-ios-png. Как только вы определили фактический тип файла, вы можете запустить

xdg-mime query default <new filetype>

и получите приложение, которое используется xdg для этого конкретного типа файла. Если для этого типа файла не определено приложение, xdg-open проверяет, /etc/debian_versionдоступен ли файл , если это так, он запустится run-mailcap, что очень похоже на xdg-open, и попытается найти программу для открытия файла. ,

Только если это тоже не удастся, xdg-open попросит пользователя определить программу для открытия файла.


Разве это не то, что уже написал Oxnz ?
Джефф Шаллер

oxny только упоминает, как установить и проверить приложение на наличие известного типа файла. Ему не хватает ссылки для xdg-mime query filetype example.pngпроверки типа файла определенного файла, потому что просто допустить, что файл .png также попадает в категорию image / png, не всегда правильно. Глядя на комментарии Ивана , думаю, что его проблема еще не решена.
Любовь
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.