A while ago I became annoyed enough by the brokenness of this situation
to investigate it seriously. I am now attempting to improve the overall
"Preferred Applications" situation, make cleanups and patch individual
applications to honor the preferred settings. I hope to stir discussion
about further standardization of these aspects of desktop consistency.
Your suggestions would be greatly appreciated. If any new or existing
Bugzilla reports are related to anything below, please reply to let us
know of their locations.
1)
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=109738
Preferred Applications chooser in the Preferences a.k.a.
control-center's gnome-default-applications-properties sets only the
http gconf key, while there is also a https and unknown key that should
be set. htmlview uses the unknown key while Evolution honors the https key.
/desktop/gnome/url-handlers/http/command
This key is set
/desktop/gnome/url-handlers/https/command
/desktop/gnome/url-handlers/unknown/command
But these two are not set
control-center-2.4.0/capplets/default-applications
The relevant code is within this directory. Ray Strode attached a
patch that sets https, because he disagrees that "unknown" should also
be set. I believe because of the way htmlview currently acts as a
catch-all for anything that needs a web browser, that unknown should
also be set. (htmlview itself is largely broken, this is discussed
later in this message.)
2) need-terminal is the key defined in the gconf schema, but
gnome-default-applications-properties sets needs_terminal. Both Ray
Strode and I agree that this is a typo. His patch corrects this, and it
should be applied to both this package and Gnome CVS.
This means that choosing Links in the chooser as a default browser is
currently broken due to setting the wrong key name. However I have yet
to find a program that actually honors the need-terminal key...
3) On the topic of this gnome-default-applications-properties program,
the way the User Interface currently behaves is somewhat confusing to
end users. When you first launch it, all options are grayed out and
there is no indication if you are using the "Select a Web Browser" or
"Custom Web Browser" chooser. This is especially confusing when you
have set a custom web browser, close, then open it again, and the two
browsers don't match. The user interface needs to be redone in order to
reduce end-user confusion. Any takers?
4) Currently gnome-default-applications-properties's choosers have hard
coded values for options like Mozilla, Konqueror, Epiphany and other
programs. We could do a lot better than this.
I propose that we use desktop-agnostic-easy-install definitions for
Preferred Applications. We should standardize on a directory named
something like /etc/sysconfig/preferred/browser.d within which each
package can easily drop definition files. Each definition file can
contain values like Label, command, need-terminal, etc.
/etc/sysconfig/preferred/mail.d, /etc/sysconfig/preferred/editor.d,
/etc/sysconfig/preferred/terminal.d could be the same for mail clients,
text editors and terminals respectively. Then applications like
"Preferred Applications" can read all definitions from these
standardized directories and populate the chooser with all proper flag
values.
Sane?
5) This brings up the larger question of the need for desktop agnostic
configuration for Preferred Applications as KDE does not use gconf. As
individual applications are improved to honor the Preferred Applications
choice, this completely leaves out the KDE environment especially for
users of other distributions that do not unify the user experience
between Gnome and KDE like Red Hat/Fedora does. In such cases the user
may have only KDE installed, and they may not even have gconf at all,
thus the above gconf-based Preferred Applications breaks down.
This creates a disconnect where KDE development totally ignores this
standard and furthers the divide between the two camps. Otherwise
individual applications need to implement two competing standards (this
standard, plus one lack-of-standard as KDE does not currently have a
notion of Preferred browser). This is a poor situation of greater code
& effort duplication, needless added complication and more bugs.
Is it too late to go back to the drawing board and agree upon a
desktop-agnostic place to configure these things so ANY Linux desktop
software can implement it without requiring gconf? During a transition
period the Preferred Applications chooser can set BOTH the gconf like
previously, and the new standard. Eventually we will phase out all
applications that read gconf (which are currently few) and everyone will
be happy?
6) gconf /desktop/gnome/applications/browser/exec contains the value
"mozilla" by default along with needs_term, and nremote which was
probably meant to mean xremote compatible. This key is untouched by
gnome-default-applications-properties and does not seem to be used by
anything I can find. Am I correct that this is redundant?
Furthermore this lacks consistency, because
gnome-default-applications-properties's Terminal chooser sets
/desktop/gnome/applications/terminal/exec.
7) gaim Preferred Applications integration implementation
I am currently implementing a new default URL handler for gaim called
"Preferred Browser". If gaim upstream does not does not accept it as
default, Fedora's gaim package can choose this new URL handler as default.
Implementation Details:
* Due to the brokenness of xremote in all currently released
Mozilla-compatible browsers and complication with MozillaThunderbird,
some extra care and logic is necessary for proper usage of xremote.
xremote's ping() is completely broken while Thunderbird is running, thus
a workaround like this is needed from a bash script:
exec xremote args && exit 0
Rather than checking if xremote is available, it just goes ahead and to
use it. If it fails then it does not "exit 0" then goes to the next
line of the script which can launch the browser from scratch. Due to
this broken ping() problem, /usr/bin/mozilla script needs fixing. See
this Bugzilla report below comment #35.
*
https://bugzilla.fedora.us/show_bug.cgi?id=1113
The script launched from gaim would be very similar to the logic used by
fedora.us MozillaThunderbird open-browser.sh in this Bugzilla report.
8) htmlview is currently flawed, and furthermore its unknown gconf key
behavior is broken due to the above problems with the Preferred
Applications chooser.
I propose that it be rewritten to use gconf's http key by default, and
launch logic similar to the above open-browser.sh. I personally really
dislike its current attempt-to-find-any-installed-browser behavior, and
IMHO it should behave only in a defined and predictable manner by
launching only the Preferred Application.
This includes honoring the need-terminal key to launch the preferred
terminal if in X. I fully support making text-mode browsers the
definable preferred browser in X, as some users like links since it
works great with the mouse and it is very fast & lightweight.
Should we have a separately definable preferred text-mode browser too?
I really question the value of needing to launch a text-mode browser
using htmlview in a non-X terminal. I mean really... does anything
currently depend on that behavior, and would anyone miss it? Let us
please kill that off...
9) After all of the above Preferred Applications mess is cleaned up, I
propose that we make the default panel launchers Web Browser and Mail
Client to launch the chosen Preferred Applications rather than
specifically Mozilla and Evolution. It works great and more importantly
100% predictably.
10) Any other common applications that need patching to honor the
Preferred Applications? Let me know and I will attempt to do so.
11) Evolution's clipboard behavior is currently and always has been
fatally broken. Reproduce: Copy any block of text with newline
formatting from any Evolution window, then paste that into any other window.
Big frown! This alone (and the fact that it takes 3-4 minutes for
Evolution to start with my 50+ IMAP folders) are why I switched to
Thunderbird. We really need to get the clipboard behavior fixed at
least. Please find existing Bugzilla reports related to this... they
have to exist somewhere...
12) Mozilla, MozillaFirebird and MozillaThunderbird use ALT-A for
Select-All within TextAreas and TextBoxes. This is inconsistent with
the default keybindings of all other end-user GUI applications in
Windows, MacOS and even Linux where CTRL-A acts as Select-All. Even
CTRL-A works in non-Text input areas of Mozilla. This is totally
inconsistent and needs to be fixed.
Anecdotally, I do a lot of LTSP and Linux work with schools
indoctrinated by Windows and MacOS. This CTRL-A-fails-to-Select-All
behavior is hit VERY OFTEN during while classes use Mozilla. These
little annoyances everywhere in our desktop software & integration
between applications really add up to a negative feeling toward our
software. We need to strive for greater consistency with all end-user
applications in areas like keybindings, thus ALT-A for Select-All needs
to be changed.
Before the kneejerk reaction, let explain how this came to be. CTRL-A
is historically the "jump to beginning of line" keybinding in Emacs and
command line shells. Thus the Unix hackers much preferred CTRL-A in
text input in Netscape to jump to the beginning of the line.
Unfortunately this conflicts with the well understood "standard" of
CTRL-A being Select-All known by all non-Unix-hackers, and is the
standard keybinding of the vast majority of applications in Linux.
Earlier versions of Mozilla even said "CTRL-A" in the Edit menu as the
keybinding for Select-All, which did not match the behavior. When this
was pointed out by many users, somebody upstream simply changed the
string to read "ALT-A".
I complained about this several times before but was shot down as
NOTABUG by Unix hackers. I wont go as far as to claim that they were
biased. =) Fortunately, recently Christopher Blizzard confirmed that
this is indeed a bug, because Mozilla should be using gtk2's defaults
rather than its own hard coded defaults.
If you look at gtk2 applications like gedit, CTRL-A acts as Select-All.
This is true of most other gtk2 applications and all KDE applications.
Blizzard said that gtk2 has options that allow you to set this
Windows-like behavior, and there is the option to change all keybindings
to be Unix-like globally (where is this setting?). Thus Mozilla needs
to adhere to this configuration option and properly use CTRL-A for
Select-All by default. Knee-jerk reaction Unix people who liked the old
behavior can toggle the gtk2 option and get back the old behavior.
More generally we should make it a standard that all end-user
applications adhere to these common keybindings. Web browsers like
Mozilla *definitely* are end-user applications. This standard of course
does not mandate that developer applications with a tradition of a
different keybinding be changed, so of course Emacs and bash continue to
work as they do today.
Is this sane?
13) In the name of end-user application consistency, Konqueror could use
some extra key-bindings by default to make it behave like Mozilla. The
following do not conflict with current Konqueror defaults.
CTRL-W Close current tab.
CTRL-+ Larger font.
CTRL-- Smaller font.
Other common Mozilla keybindings conflict with already defined Konqueror
bindings, and I really don't feel it is worth the emotional & political
fight to ask that they change.
Any active KDE developers here? Could you please get these checked-in
so it can be in KDE 3.2? RH/Fedora will not apply this change, and we
will only have it if upstream applies it. Please confirm in a reply
when it has been submitted.
Can anyone think of other common Mozilla keybindings that could be easy
to integrate?
Thanks,
Warren Togami
warren(a)togami.com