Xdg-open и pcmanfm

Январь 24, 2010

Довольно давно, я использую 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)

Похожие записи:

  1. Браузер по умолчанию в linux
  2. Укорачиваем ссылки из консоли

Тэги: , ,
В категориях: tips & tricks by bosha

6 Комментариев к "Xdg-open и pcmanfm"

  1. Max написал:

    Спасибо за статью. Еще бы заставить Deluge файлы открывать не через Firefox

    [Ответить]

    bosha Отвечает:

    Всегда пожалуйста.

    Это поможет и в этом случае (во всяком случае у меня deluge теперь в pcmanfm файлы открывает).

    [Ответить]

  2. MyFreeWeb написал:

    прикинь, я этот пост в гугле случайно нашел! (:
    Спасибо за совет :) pcmanfm заменить надо на pcmanfm2

    [Ответить]

    bosha Отвечает:

    А что в этом удивительного? :)

    А что за pcmanfm2? Форк или новая версия?

    [Ответить]

    MyFreeWeb Отвечает:

    нови, свежи
    yaourt -S pcmanfm-git

    [Ответить]

    bosha Отвечает:

    Эм.. yaourt - это не ко мне. Вот emerge другое дело ;)

    Cпасибо. Гляну на changelog'и, может правда стоит сделать ebuild и использовать версию из git ☺

    [Ответить]

Оставить комментарий