xdg-open неправильно обрабатывает xdg-mime? РЕШЕНО

Автор I-Jurij, 06 октября 2015, 00:03:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

I-Jurij

Debian Sid, mc 3:4.8.13-3, xdg 1.1.0~rc3+git20150922-1, openbox 3.6.1-1

Все началось с мс:
при окрытии *.mp3 запускается vlc, а хотелось бы какой-нибудь audacious, deadbeef.
Начинаем разбор с настроек, получаем, что файлы с данными для обработки mime в мс идентичны: /etc/mc/mc.ext = ~/.config/mc/mc.ext

mc.ext отправляет нас в sound.sh:

shell/i/.mp3
Open=/usr/lib/mc/ext.d/sound.sh open mp3
View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view mp3


В sound.sh:

[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" ...
do_open_action() {
    filetype=$1
    case "${filetype}" in
    common)
        if [ -n "$DISPLAY" ]; then
            (xmms  "${MC_EXT_FILENAME}" >/dev/null 2>&1 &)
        else
            play "${MC_EXT_FILENAME}"
        fi
        ;;
   ...
    mp3)
        if [ -n "$DISPLAY" ]; then
            (xmms "${MC_EXT_FILENAME}" >/dev/null 2>&1 &)
        else
            mpg123 "${MC_EXT_FILENAME}"
        fi
        ;;...
case "${action}" in...
open)
    "${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" 2>/dev/null || \
        do_open_action "${filetype}"
    ;;
*)
    ;;
esac


sound.sh при запущенных X mp3 направляет в xdg-open, ну или в xmmx, который не установлен, поэтому все равно не запустится.

Далее проверим, кто назначен для mp3:

$ xdg-mime query default audio/mp3
audacious.desktop


Так почему тогда:

$ xdg-open 1.mp3
VLC media player 2.2.1 Terry Pratchett (Weatherwax) (revision 2.2.1-0-ga425c42)
[09f20918] core libvlc: Запуск vlc с интерфейсом по умолчанию. Используйте 'cvlc' для запуска vlc без интерфейса.


Если perl-mime-info не установлен, в файлах ~/.config/mimeapps.list, /home/my/.local/share/applications/mimeapps.list упоминаний vlc нет, usercreated.desktop файлов c mime-ассоциями нет.

C чем еще может работать xdg-open?

Malaheenee

Тут обнова вышла как раз с этим фиксом, пробуйте.
Все мы где-то, когда-то и в чем-то были новичками.

I-Jurij

Ответ был таков:
audacious был установлен после vlc, поэтому оказался в /etc/mailcap ниже чем vlc.
xdg-mime добравшись до первого совпадения mimetype подавал знак vlc - пора работать.
Соответственно переместив выше по тексту все связанное с audacious - начал запускаться он.
А вот почему xdg-open смотрел туда, а не в стандартные mime-файлы - вопрос.

PS:
Нашел точку отсчета только здесь, читать нужно внимательно.