Opened 8 years ago

Closed 8 years ago

#538 closed task (fixed)

Nicotine+ and external programs

Reported by: quinox Owned by: quinox
Priority: normal Milestone: Release 1.2.14
Component: nicotine Version: 1.2.14
Keywords: Cc:



by default, Nicotine+ calls the following external programs:

  • xmms to play audio files,
  • rox to open a file manager.

Note that no handler for http/https is set by default. But users may be disappointed by the fact that these settings don't correspond to their favorite applications, even if they could change it in the settings.

Under Linux, the Freedesktop team had defined a set of tools, xdg-utils, to handle in a transparent way files or URLs in the user's preferred application. These tools are a defacto standard, installed by default on most of the Linux distributions (see and for more details). So all the previous external programs called by Nicotine+ could be replaced by default by xdg-open, and so audio files or folders opened by the user's default application, whatever its desktop environment. And then developers can rely on xdg-open to provide a better integration of Nicotine+ whatever the environment.

The attached patch sets xdg-open as the default handler for audio files and folders. It sets also xdg-open as the default handler to manage http/https protocols.

diff -up nicotine+-1.2.14/pynicotine/ nicotine+-1.2.14/pynicotine/
--- nicotine+-1.2.14/pynicotine/  2010-01-01 17:50:43.106168257 +0100
+++ nicotine+-1.2.14/pynicotine/       2010-01-01 17:54:11.147042575 +0100
@@ -290,7 +290,7 @@ class Config:
        "soundenabled": 1, \
        "soundtheme": "", \
        "soundcommand": "play -q", \
-       "filemanager": "rox $", \
+       "filemanager": "xdg-open $", \
        "enabletrans": 0, \
        "speechenabled": 0, \
        "speechprivate": "%(user)s told you.. %(message)s", \
@@ -312,7 +312,7 @@ class Config:
        "urlcatching":1, \
-       "protocols":{"http":"", "https":""}, \
+       "protocols":{"http":"xdg-open \"%s\"", "https":"xdg-open \"%s\""}, \
        "humanizeurls":1, \
        }, \
@@ -328,7 +328,7 @@ class Config:
        }, \
 "players": { \
-       "default": "xmms -e $", \
+       "default": "xdg-open $", \
        "npothercommand": "", \
        "npplayer": "infopipe", \
        "npformatlist": [], \

Change History (2)

comment:1 Changed 8 years ago by quinox

Actually, we don't set the HTTP/HTTPS handlers for a reason: Because the http/https keys are inserted in the dictionary they turn into clickable links, and because they are empty python will call the default-configured browser to open them.

comment:2 Changed 8 years ago by quinox

Resolution: fixed
Status: newclosed

Yup you're totally right, xdg-open works like a charm and isn't application specific. Applied with r1354, thanks for the input :)

Note: See TracTickets for help on using tickets.