24/01/2012
open magnet URLs with xdg-open
Browsers on Linux should use xdg-open to open URLs. From xdg-open’s description:
xdg-open opens a file or URL in the user’s preferred application. If a URL is
provided the URL will be opened in the user’s preferred web browser. If a file
is provided the file will be opened in the preferred application for files of
that type. xdg-open supports file, ftp, http and https URLs.
Magnet is a new type of URLs that’s currently not supported by xdg-open. It’s very easy to add a quick hack to support it though. Just copy xdg-open to a local binary path (e.g /usr/local/bin or preferably $HOME/bin) and apply the following patch. Change deluge with your preferred torrent application.
--- /usr/bin/xdg-open 2010-09-15 14:08:29.000000000 +0300 +++ bin/xdg-open 2012-01-24 22:05:03.935338593 +0200 @@ -437,6 +437,11 @@ exit_success fi fi + elif (echo "$1" | grep -q '^magnet:'); then + deluge "$1" + if [ $? -eq 0 ]; then + exit_success + fi fi sensible-browser "$1"
For those who don’t know how to patch a file, here it is in full: patched xdg-open to open magnet URLs
Works fine on my Debian using Chrome which properly uses xdg-open to handle URLs. Firefox after version 3.5 became a piece of bloatware and it’s not possible to open magnet links using about:config settings or xdg-open. For Opera just go to Settings->Preferences->Programs and add new protocol with name magnet. At Open with other application, use the path that you saved the patched xdg-open.
Now go download some creative commons licensed files.
*UPDATE*
Patch for latest xdg-utils (since some people complained that previous patch does not apply):
--- xdg-open 2012-02-18 14:22:48.058497027 +0200 +++ xdg-open 2012-02-18 14:24:04.326875223 +0200 @@ -440,6 +440,11 @@ exit_success fi fi + elif (echo "$1" | grep -q '^magnet:'); then + deluge "$1" + if [ $? -eq 0 ]; then + exit_success + fi fi IFS=":"
*UPDATE 2*
For Firefox/Iceweasel one can do the following:
go to about:config and right-click. Then click on New->Boolean->network.protocol-handler.expose.magnet -> Value -> false
Upon the next click Firefox/Iceweasel will ask you to choose a program to open magnet links, choose the patched xdg-open posted above.
Filed by kargig at 23:39 under Internet,Linux
Tags: bash, chrome, debian, deluge, firefox, iceweasel, Linux, magnet, opera, torrent, xdg
14 Comments | 70,244 views