Xdg-open и pcmanfm

Довольно давно, я использую torrent клиент deluge. Всем замечательная качалка торрентов, но вот постоянно меня раздражало то, что когда пытаешься из него открыть папку, она открывалась в браузере вместо pcmanfm например. В gnome\kde\xfce с этим проще, в них не используется xdg-open, там свои утилиты. Та же ситуация была и с dropbox, и думаю ещё с многими программами. Долго я мучился с этим. Пока в один день, не вспомнил что nixtrian, не так давно решал схожую проблему. С ним мы довольно быстро нашли решение, которое оказалось весьма тривиальным.

Открываем файл /usr/bin/xdg-open и находим следующие строки:

open_generic()
{
    IFS=":"
    for browser in $BROWSER; do
        if [ x"$browser" != x"" ]; then

            IFS=' '
            browser_with_arg=${browser//'%s'/"$1"}

            if [ x"$browser_with_arg" = x"$browser" ]; then "$browser" "$1";
            else $browser_with_arg;
            fi

            if [ $? -eq 0 ]; then exit_success;
            fi
        fi
    done

    exit_failure_operation_impossible "no method available for opening '$1'"
}

Нам нужно добавить в самом начале одну функцию, которая собственно и будет открывать ссылки на файлы в pcmanfm.

if [ -d "$1" ]; then
   pcmanfm $1
   exit
fi

После добавления, будет выглядеть примерно так:

open_generic()
{
    if [ -d "$1" ]; then
       pcmanfm $1
       exit
    fi
    IFS=":"
    for browser in $BROWSER; do
        if [ x"$browser" != x"" ]; then

            IFS=' '
            browser_with_arg=${browser//'%s'/"$1"}

            if [ x"$browser_with_arg" = x"$browser" ]; then "$browser" "$1";
            else $browser_with_arg;
            fi

            if [ $? -eq 0 ]; then exit_success;
            fi
        fi
    done

    exit_failure_operation_impossible "no method available for opening '$1'"
}

Pcmanfm можно заменить на любой другой файловый менеджер по вкусу. Всё бы было гораздо проще, если бы была хоть какая либо вменяемая документация по xdg-open. Хотя, возможно, я её просто не нашёл. Зато, в процессе поиска, была найдена одна приятная команда:

xdg-open $(ls . | dmenu)


Понравилась статья? Поделись с друзьями!




Комментарии на этом сайте требуют включенного Javascript в вашем браузере. Вероятно, ваш браузер не поддерживает Javascript, или он был отключен по каким-то причинам. Если вы хотите прокомментировать пост, или просто почитать комментарии, то пожалуйста, включите Javascript или попробуйте открыть эту страницу другим браузером.