Оригинал: www.welinux.ru
Магнет-ссылки предназначены для указания на ресурсы, доступные к загрузке через p2p сети. Такие ссылки в основном идентифицируют файлы не по их расположению или имени, а по содержанию, точнее, по хеш-коду.
При клике по такой ссылке google chrome передаёт эту ссылку утилите xdg-open, которая в свою очередь передаёт ссылку конечной программе. Но вряд ли xdg-open точно знает какая программа должна обрабатывать magnet-ссылку и у меня, например, xdg-open передавала ссылку x-www-browser, коим в моей системе является google-chrome. Сейчас я расскажу вам как научить xdg-open открывать magnet-ссылки тем, чем нужно.
Для этого открываем его для редактирования
sudo gedit /usr/bin/xdg-open |
Далее идем в самый конец файла и видим строки:
case "$DE" in kde) open_kde "$url" ;; gnome) open_gnome "$url" ;; xfce) open_xfce "$url" ;; generic) open_generic "$url" ;; *) exit_failure_operation_impossible "no method available for opening '$url'" ;; esac |
Понятно, что для open_xfce соответствует то, что команда будет выполняться в xfce, для open_kde то, что в kde и т.д. При необходимости ненужные DE можно стереть. Теперь нужно добавить условие, которое будет выполняться, если переданная ссылка magnet. Ниже приведен пример для всех DE и torrent клиента deluge.
case "$DE" in kde) if (echo $url | grep '^magnet') then deluge "$url" else open_kde "$url" fi ;; gnome) if (echo $url | grep '^magnet') then deluge "$url" else open_gnome "$url" fi ;; xfce) if (echo $url | grep '^magnet') then deluge "$url" else open_xfce "$url" fi ;; generic) if (echo $url | grep '^magnet') then deluge "$url" else open_generic "$url" fi ;; *) exit_failure_operation_impossible "no method available for opening '$url'" ;; esac |
Естественно, что вместо deluge вы можете подставить любую программу.
Как я уже сказал ненужные DE можно удалить и для openbox вышепреведённый код можно заменить на:
if (echo $url | grep '^magnet') then deluge "$url" else open_generic "$url" fi |
Вот и всё, теперь можете попробовать покликать magnet-ссылки.