Як команда xdg-open знає, яку програму використовувати для відкриття файлу?


21

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

Наприклад, мій DE - XFCE, мій менеджер файлів - Thunar, а переглядачем зображень за замовчуванням - Ristretto. Однак xdg-open example.pngвідкриває приклад PNG-файл у Pinta. Чому?

Відповіді:


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

вам потрібно дізнатися, що саме назва файлу на робочому столі Ristretto. згодом ви можете перевірити це:

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, не завжди є правильним. Переглядаючи коментарі Івана , я думаю, що його питання ще не було вирішено.
lauve
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.