Or, "Why 2014 will NOT be the year of Linux in the desktop".
So, it happens that my mum (66 yo) has been a Debian user for over a year now. With highs and lows, she manages to do what she needs; sometimes I need to intervene.
Today I thought I could send her a quick email explaining how to download using BitTorrent, because of reasons. So, as I was writing, I realised that in many torrent sites, you only get a magnet link these days. No problem! Click on the magnet link, at it should work automagically.
Then I remembered: it works on my computer, because I've spent a couple of hours some time ago researching how to make FireFox work with magnet links, creating a custom script, etc. I hoped that by now this must have been solved, at least in Debian unstable.
Wrong again. I created a new user in my computer, launched IceWeasel/FireFox and boom: I get a dialog asking me to select a program, not from a list of desktop applications, taken from one of the gazillion sources where applications are defined, but just from any place on the file system! (At least, now you don't need to go tweaking with the hidden FireFox configuration editor).
I was very angry at the brainiac at Mozilla who thought it was a great idea to ignore the host system and do their own MIMEtype handling. And then, tried Chromium to see what would happen... And I get first a scary message telling me that it is going to use the super-obscure xdg-open
program to open my link, and that it could harm my computer! It was followed by another very helpful dialog telling me something like:
Unable to detect the URI-scheme of "magnet:?xt=urn:btih:diePh6iengei4quaep4shai8ahshahnae9 oolahtetheir2bohmu1eelaChui1ohdahruegh4wief6PusahDae4ho oshahjoogai7bae9shuvei9shufeX4boog8neichi3OoDee5ei9Uori c6aingairepon9gok8Mee7uRahphah4EucoopheiYin4xe4lahn0goh"
Then the real fun started...
I starting looking around to understand how this is supposed to work, I wanted to provide a patch! So, it turns out that if you add some values to GConf this should work.
So, try to find where would that be. Read about GConf schemas, default and mandatory values, and their 10 possible locations. Find that Azureus provides an schema, use that to create one for Transmission. Then find that in fact, Transmission was providing defaults, which are not the same but work the same, and that they had an error there: yes, problem found! (#741069)
No! It turns out that the Gnome desktop does not use that any more, and now they scan the .desktop
(who knows in which of the 100 directory tress where .destop
files are present) files for MIME handlers, and the transmission-gtk.desktop
file had that correctly. So why does it not work?
Well, it turns out that if I used gvfs-open
instead of xdg-open
, it did work! The thing is, I am running XFCE here, which is GTK based, but it is not Gnome: instead of gvfs-open
, I was getting exo-open
, which is it's brain-dead cousin, and can't do anything but files, email and web.
It is fecking 2014, and we still don't have a sensible, unified way to select preferred applications. We still have incompatible, duplicated, incomplete, competing implementations. We have FreeDesktop doing one thing to try and unify criteria, which is then ignored or mis-implemented up and down by some desktops and applications.
Some days I get really angry at the Free Software world.
PS: I guess I will tell mum to copy&paste the links from the browser to the torrent client, but not today. I have already lost 4 hours of sleep on this.
...seems to just work
Here pasting the URL in konqueror opens transmission and is ready to start.
I am not recommending though to replace iceweasel with konqueror for all tasks.
Rainer
There is a two fold problem: one of course is application vendors not interested in Free Software desktops and thus not even attempting minimal efforts for good user experience. In this case Mozilla not even using xdg-open.
Might be something the Iceweasel packagers could work around though. Not ideal to have an uncooperative upstream, but not unsolvable.
The other thing, exo-open not being able to handle the URL, is of course unfortunate. I don't think the problem there is missing effort, just that transitions involving multiple parties take time. My guess would be that exo-open will again automatically follow the GIO capabilities once XFCE has also move to version 3 stack.
Though it makes one wonder if the GIO version 2 stack would not already be capable of handling URIs and probably something missing outside of the control of XFCE
Ray, I know how to do that. I've done it in the past, but it is still an unacceptable option! If we are talking about desktop users, I want that as as soon as I install a BitTorrent client, the thing just works.
Rdorsch, I believe you.. But, would it work if I were using Konqueror from XFCE, for example?