Fix magnet link openning in Xfce / Arch Linux
The current Xfce (4.10) that ships with Arch Linux has an annoying bug of not correctly opening Magnet URIs (e.g. when you click a magnet link from within Chromium). So I had to have that fixed, but doing it took longer that I expected… so I’m creating this recipe for helping you solving the problem more easily.
Chromium handles unknown URI schemes by delegating them to the xdg-open command. Which in turn, detects it’s running under the Xfce desktop and delegates the control the exo-open command. Which fails to open the magnet URIs.
In these instructions you’ll patch the exo package and re-install it with a little patch that fixes that annoying problem.
So let’s get to it! Open a terminal and issue the following commands.
Configure xdg-open
to open magnet URIs with the Transmission application:
xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
NB: this modifies the ~/.local/share/applications/mimeapps.list
file.
Get the exo
package (contains the exo-open
command):
sudo pacman -S abs sudo abs extra/exo cd /tmp cp -R /var/abs/extra/exo . cd exo
Add the patch into a file:
cat<<"EOF">fix-exo_str_looks_like_an_uri-bug-10098.patch
diff --git a/exo/exo-string.c b/exo/exo-string.c
index 33f86f9..056b36a 100644
--- a/exo/exo-string.c
+++ b/exo/exo-string.c
@@ -429,7 +429,7 @@ exo_str_looks_like_an_uri (const gchar *str)
for (++s; g_ascii_isalnum (*s) || *s == '+' || *s == '-' || *s == '.'; ++s);
/* <scheme> must be followed by ":" */
- return (*s == ':' && *(s+1) == '/');
+ return (*s == ':' && *(s+1) != '\0');
}
return FALSE;
EOF
Modify the PKGBUILD file to patch the source by adding the prepare
function above the existing build
function:
prepare() {
cd "$srcdir/$pkgname-$pkgver"
patch -p1 < "$startdir/fix-exo_str_looks_like_an_uri-bug-10098.patch"
}
NB to properly finish the package you should also add the patch file name into the source
array and its sha256 checksum into the sha256sums
array… but I’ll not bother.
And finally build and install the package:
makepkg -s sudo pacman -U *.pkg*
And that should be it! Try to click on a magnet file link now!
– RGL