Bastien Nocera wrote:
On Fri, 2011-02-04 at 08:52 +0100, Kevin Kofler wrote:
> Adam Williamson wrote:
> > it's a design feature, we are told. the intent is that applications
> > should offer the option to set themselves as the default, instead of
> > the desktop providing a central config point.
>
> To the GNOME developers (Adam, I know you are just the messenger):
>
> This is very broken. You cannot expect non-GNOME applications to support
> setting themselves as the default in GNOME. (For example, if you want to
> use, say, Konqueror as your default browser, how would you set that?
> Konqueror obviously does not support GNOME preferences.)
There's no GNOME preferences involved. Make sure Konqueror sets itself
as the handler for x-scheme-handler/http (and https) and you're done.
> Plus, we have seen where leaving this to the applications leads to on
> Window$: applications fight for being the default and the user never gets
> asked! Instead, merely running an app will change his/her file
> associations, leading to a ping-pong effect. Please do not head down that
> road!
We're talking about browsers and mailers. Browsers already do that.
KDE doesn't use x-scheme-handler for browsers at all. Instead, it has a
Default Components setting (very similar to GNOME 2's Preferred
Applications) where, for the browser, you can set it up to use the program
associated with the text/html file type (the default setting) or to use a
specific browser. (In fact, this was added in KDE 4, modeled on the GNOME 2
dialog. In KDE 3, it was hardcoded to always use the text/html file
association as a browser.)
In Fedora, the default text/html handler for KDE is set in
/usr/share/kde-settings/kde-profile/default/share/applications/defaults.list
with the following line:
text/html=kde4-konqueror.desktop;
We patch the startkde script to set XDG_DATA_DIRS so this setting is also
seen by non-KDE applications.
None of the browser packages I have installed override this setting. If I
want to change it, I have to either change the priorities for text/html in
the file associations or force a default browser in Default Components in
KDE's System Settings (or both).
See line 286 of:
http://quickgit.kde.org/?p=kdelibs.git&a=blob&h=c86a77b02f5bbcc3f...
for how this is implemented in KDE. (You'll notice that, when not running
the KDE Plasma Workspace, kdelibs will use xdg-open if installed, so GNOME's
way of handling URLs, including x-scheme-handler, will be used in that
case.)
As of KDE 4.6, KDE now supports x-scheme-handler for the things KDE's old
protocol handler scheme is used for, but that isn't quite the same thing as
what GNOME uses it for.
Kevin Kofler