Day by Day, Site by Site

Open source, Some Code, Troubleshooting, Good Links

Отладка неправильного поведения утилиты xdg-open

   opensource debug

Проблема началась с того что после монтирования контейнера Veracrypt, перестал открываться нормально файловый менеджер. Он открывался, но параллельно открывался браузер. Ранее такого поведения не было.

Я начал расследование этой ситуации. Помнится, уже когда то возился с утилитами xdg-utils куда входит утилита xdg-open:

открытие каталога ассоциированным приложением

xdg-open ~/Downloads/

просмотр файлового типа ассоциации для файла

xdg-mime query filetype ~/Downloads/

установка приложения по по умолчанию для файловой ассоциации

xdg-mime default nemo.desktop inode/directory

Я начал пробовать смотреть как настроены ассоциации через утилиты командной строки. Натолкнулся на то что утилита xdg-open открывает путь до точки монтирования не корректно:

xdg-open /run/media/dp/test

Воспроизвелась ситуация когда открывается ОДНОВРЕМЕННО браузер и файловый менеджер.

Начал смотреть в эту сторону xdg-open. После того как я сделал изменения зафиксированные здесь, поведение была исправлено. Но ментейнер проекта отказался принимать изменения пока не докопается до причины такого поведения. В целом согласимся, так как это правильно)

Побочным эффектом явилось то, что ментейнер предложил обходное решение в виде в файл конфигурации ассоциаций ~/.config/mimeapps.list

inode/directory=nemo.desktop
inode/mount-point=nemo.desktop

Здесь можно прописать ваши ассоциации.

Причиной проблем явился баг в утилите mimetype пакета perl-file-mimeinfo. Пакет perl-file-mimeinfo являеется зависимостью пакета xdg-utils, куда входит утилита xdg-open. Утилита mimetype используется в скрипте xdg-open.

На момент разбора, в коде утилиты mimetype производился безусловный выход с кодом ошибки. Было сформирован MR c исправлением.

Ждем когда исправления будут доставлены в дистрибутивы.