LWN.net Logo

GTK+ 2.8.0 released

GTK+ 2.8.0 released

Posted Aug 15, 2005 7:26 UTC (Mon) by job (subscriber, #670)
In reply to: GTK+ 2.8.0 released by drag
Parent article: GTK+ 2.8.0 released

It is people like you who turn this into a flame war. Please refrain from posting completely if you have nothing to add but rudeness. This is LWN after all and has been pretty spared from it. I am sure he already knew about the copy-paste-functionality.

In fact, the posters in this thread pointed out some real problems with Gtk, that there are bugs (or accidental features, according to bugzilla) with the Emacs/X-style keybindings. It's there, it should work, but it doesn't. We have also learned about the bigger design problem that applications can bind accelerator keys which are the same as Gtk bound keys. It would be nice if that wasn't possible, Gtk should have precedence and the app should get an error code and not be able to bind it.

Nobody has yet commented on the horrible ineffencies of the toolkits (Gtk and Qt). Look at the paper behind NX, he's got some measurements. I can't see how X will compete with other graphical environments performance wise unless the toolkits gets cleaned up.


(Log in to post comments)

GTK+ 2.8.0 released

Posted Aug 15, 2005 8:14 UTC (Mon) by drag (subscriber, #31333) [Link]

sorry. I didn't mean to sound like a troll. But some of what people are complaining about is pretty petty.

And, realy, there are no traditional unix bindings...

But the problem is is that no matter how many people complain about GTK-bound keys not overriding application default keys you will get people complaining that application default key accels should automaticly over write GTK-set ones.

Anyways, I do acknowledge that there are problems with Gnome's theming features and there needs to be considurable polishing going on.

That's something that is a valid complaint for sure.

If you want to change some of the keybinds to suite yourself you have a few options right now.

Open up gconf-edit goto:
/apps/desktop/gnome/interface entry and change can_change_accels to '1' (you may have to uncheck it and recheck it)

Now on many gnome apps like Epiphany you can change keybindings dynamicly to suite yourself.

All you have to do is open up the menu and hover the key over the function you want to change... like "Edit --> Paste" and hit the accelerator you want to replace it with.

Not all applications support this.. I don't think it's very hard to support and I think that many GTK developers are simply unaware of this very nifty little feature. I think it would be a good idea that if the app you like doesn't support it put it in as a feature request.

The other stuff you can do that has a much more far reaching effect is to enable your own key theme.. It's easiest to use the Emacs key theme for reference.

The emacs key theme is located in /usr/share/themes/Emacs
And the file that holds the keys for the theme would be:
/usr/share/themes/Emacs/gtk-2.0-key/gtkrc

So you can modify that and make your own custom key bindings and stick them in your own home directory like:
.themes/Mine/gtk-2.0-key/gtkrc

or stick them in /usr/share/themes for system-wide access.

Next thing you do is open or create a ~/.gtkrc-2.0 file and make sure you have this line in it:
gtk-key-theme-name = "yours"

Then log out and log back in. In addition to that it may be handy to go into a gconf-editor and change gtk_key_themes in /apps/desktop/gnome/interface to whatever you named your theme in.

This, I think, then can have a wider range of effect.. even on non-to-gnome-friendly GTK-using apps like firefox.

GTK+ 2.8.0 released

Posted Aug 15, 2005 9:40 UTC (Mon) by Zarathustra (guest, #26443) [Link]

I did that over a year ago, I fail to see why should I do all that dance for every account/box I have.

I'm running Unix applications on a Unix system, it's so much to ask for a Unix behavior by default?

And no, I already have said I don't use Gnome, and no, most gtk applications are _not_ ported to non-unix systems. And using the proper default keybindings in Unix does _not_ make them less portable either.

GTK+ 2.8.0 released

Posted Aug 15, 2005 14:26 UTC (Mon) by gravious (guest, #7662) [Link]

I'm running Unix applications on a Unix system, it's so much to ask for a Unix behavior by default? My dear Zarathustra,
    For one with such a wise moniker, you seem intent on ignoring a number of posters. It has been pointed out to you, more than once, that there is no standard Unix behaviour. If you have been using Unix for any length of time, you would know this. Indeed, you probably do know it. What you want is _Emacs_ behaviour in all your apps. A small percentage of _all_ computers users know Emacs bindings, therefore for the moment, I fail to see why you shouldn't do that dance for every account/box you have.
    Having said that, if you tell GTK+ that your key preferences are such and such and then a GTK+ app ignores your choice then it should be flayed to within an inch of its life. Also, if you expect ctrl+u to to erase from the current cursor position rather than the whole line, well, fair enough, raise a bug. There appear to be workable solutions judging by what people have said, you are doing yourself no favours by causing such a stink

Very kind regards,

i Gravious

GTK+ 2.8.0 released

Posted Aug 15, 2005 15:09 UTC (Mon) by Arker (guest, #14205) [Link]

well, fair enough, raise a bug.

Like he did almost a year ago?

GTK+ 2.8.0 released

Posted Aug 15, 2005 15:32 UTC (Mon) by Zarathustra (guest, #26443) [Link]

> What you want is _Emacs_ behaviour in all your apps.

Funny, I have not used Emacs in my life, I don't even know any emacs shortcuts, because ^U and ^W, like ^H, are _not_ from Emacs, they are from Unix, and about any Unix application that supports input has implemented them for many decades.

Unix bindings

Posted Aug 16, 2005 3:47 UTC (Tue) by zblaxell (subscriber, #26385) [Link]

A quick survey:

Xaw uses ^A, ^B, ^F, ^D, ^V, M-v, ^E, ^N, ^P as Emacs bindings, ^H as delete, and has no use for ^W or ^U at all. Interestingly enough, ^S and ^R activate text search and replace, which has proven quite handy in some Xaw applications like xpostit.

Tk uses the same bindings, except that it doesn't seem to respond to M-v, ^S, or ^R.

Motif uses...none of these AFAICT--not even ^H--they all seem to insert non-printing characters.

Readline (which is *NOT* an X toolkit) uses the above bindings, except ^S and ^R are incremental searches, plus ^W (delete previous word) and ^U (delete to beginning of line).

epic (a TTY-based IRC client) responds to ^A, ^D, ^E, ^F, ^N, and ^P as in Emacs, but ^B and ^W insert special characters. ^U is delete-entire-line, not delete-to-beginning-of-line. How nice that it supports forward-character but not the symmetrical backward-character!

The Linux kernel TTY driver is usually configured to accept ^H or Del as delete, ^W as delete-previous-word (where "word" means something slightly different from Readline), ^U is delete-entire-line, and ^D is EOF. None of the other bindings mentioned so far (^A, etc) do anything other than insert themselves.

Emacs of course *defines* the meanings of ^A, ^B, ^D, ^E, ^F, ^N, ^P, ^V, etc. Emacs also has keys bound to ^W and ^U, but they mean very different things than they do in Bash, a number of other X applications, and Unix TTYs. These bindings are quite possibly older than Unix.

Several popular applications that originated on or were ported to Unix (e.g. Netscape) do support Readline-like key bindings, despite the fact that they were based on toolkits previously mentioned here (e.g. Motif).

GTK-1 applications supported mostly Bash-like key bindings, but without the search functions. In addition, GTK-1 file open/save dialogs supported filename autocompletion with Tab, which is *really* nice. Modern GTK-2 file open/save dialogs support similar completion, but needing more keystrokes. For several months in GNOME's history, the Tab key just selected the next field.

The application I am using now (Galeon) supports almost none of these bindings, even when typing text into a text widget. I'm not sure why the Galeon developers think I might want ^B to open the bookmarks editor window in the middle of this sentence, but it does.

Personally, I really miss the GTK-1 application bindings, but I'm offended by the GTK *transition* more than the actual binding set at any instant in time. GTK-1 had IMHO the best combination of useful editing primitives with default key bindings, which made GTK-1 applications very attractive to me at the time.

I used to use a lot of GNOME applications, back when GNOME 1.4 was current. For reasons I still don't understand, the GTK and/or GNOME people decided to make sweeping, backward-incompatible changes that removed features from user-visible parts of GTK/GNOME programs, and they called this forward progress. It was almost as bad as being forced to use Windows in terms of features that just disappeared one dist-upgrade. Some of those features have returned, but not all, and many are often buried behind something that looks and feels like the Windows registry editor.

Today, I no longer trust GNOME to provide usable tools as I once did. I used to simply choose from one of the several GNOME 1.4-based alternatives (usually directly from the GNOME menu), and didn't really look for other software if my immediate needs were adequately satisfied. Now it's the other way around--I look everywhere *except* GNOME and/or GTK for various applications, and I apply a small but non-zero negative bias to GNOME or GTK-based candidates where competing implementations exist.

My trust in the GNOME organization was completely destroyed by that organization's behavior in the past. For all I know, next week they'll decide that GTK/GNOME 2.x was a bad idea too, and they'll discard it like they did 1.x. It seems to me that I shouldn't waste my time with their potentially-soon-to-be-unsupported software. I don't know how long it will last, and it seems I cannot rely on the rest of the open-source community to take over if the central GNOME organization fails again.

What really baffles me is that the GNOME maintainers and their apologists don't seem to *get* this. It's not about key bindings, it's about alienating your existing users to benefit users you don't have yet. It reminds me of that fable about the dog, a bone, and the dog's reflection in the river...

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds