How can I make Firefox open magnet-links in Transmission?

Open up Firefox and its preferences window. Go to the "Applications" tab and you should see "magnet" on the list. Click on "Always ask" and if Transmission does not appear as an option then click on "Use other" and navigate to /usr/bin on your file system. Look for "transmission" or "transmission-gtk" and click that.

Update: Firefox has changed so the above no longer works. Instead, when you click on a magnet link, a "Launch Application" window will appear, from which you can choose to always associate an application (make sure to check the checkbox at the bottom to always use the chosen app). To find the torrent app, choose "file system" on the left side, and then navigate to /usr/bin as described above.


How to set default apps in Chromium / Chrome / Firefox / Ubuntu Linux

Situation: You hate the default app that opens when you double click a file or when you open it with chromium browser and you want to change it.

  1. In Unity (and probably Gnome 3 Shell), some default apps can be changed through gnome-control-center: System settings > System info > Default applications

  2. You can also right-click on a file > select Properties > Open with. See what applications/programs are listed there. You can also add them and set them as default.

  3. If none of the above work, you can use xdg-utils (xdg-mime) to set a default application for a specific Mime Type

First, you have to figure out what text string to use as a "mime type". An easy way to find it is to look into the default application's desktop file.

Example: Chromium opens magnet links and bittorrent files with transmission-gtk by default. You want to use deluge. The .desktop files are usually in folder /usr/share/applications/. We use the cat command to look into the file /usr/share/applications/transmission-gtk (a line that starts with "MimeType"):

$ grep 'MimeType' /usr/share/applications/transmission-gtk.desktop
MimeType=application/x-bittorrent;x-scheme-handler/magnet;

Bingo! x-scheme-handler/magnet and application/x-bittorrent are the mime types we're after.

How to use the xdg-mime command? Simple: xdg-mime default myapp.desktop mymimetype

..where we substitute myapp.desktop and mymimetype with the values from above.

Following the example above, we want magnet links and bittorrent files to open with Deluge (deluge-gtk) application. First you have to install the deluge-gtk package (otherwise the .desktop file won't exist). Then you have to execute:

xdg-mime default deluge.desktop x-scheme-handler/magnet
xdg-mime default deluge.desktop application/x-bittorrent
grep -i deluge ~/.local/share/applications/*

The last command (grep) should return "application/x-bittorrent=deluge.desktop" and the other mime type for magnet. Otherwise, something went wrong (maybe the desktop file didn't exist?).

And that's about it! Close and open chromium-browser again (or logout/login).

For the sake of documentation, the files that have to do with mime types and default apps are:

~/.local/share/applications/defaults.list
~/.local/share/applications/mimeapps.list
~/.local/share/applications/mimeinfo.cache
/usr/share/applications/mimeinfo.cache
/usr/share/applications/mimeapps.list
/usr/share/applications/defaults.list