Written by Primož Papič the 14 May 08 at 13:05.
Category: Accessibility.
Related project:
Nothing/Others.
Status: New
Rationale
Priority: High
Realisation: Easy to medium
-----------------
The idea is fairly simple. There are many hotkeys that you discover by trial and fail method. This should be made easy with manager where the user could see which are the hotkeys in use and could change them. Off course that means that some how these hotkeys should be recognised as such by the manager.
One thing that I would really like to do is use SUPER (win key) to open my application menu. This would be also good to see what some key combination does not that some newbie presses ctrl-alt-F2 and starts to panic (just press ctrl-altF7), or not knowing how to get to system activities or any thing like that.
You can now set your super key to open the menu. Via system > prefs > keyb shortcuts. The item is called desktop > show panel menu.
Setting custom hotkeys is a b*tch at the moment, agreed. You can do it using gconf-editor > apps > metacity. (you must separately define the key press and the command...) You can use the command line tool xev to identify key names. (the key name is in the parentheses with the keysym) This all is very clumsy and unintuitive.
That would really helped if I would use GNOME, but I use KDE.
maybe I should still try to find that... But still Thanks
And my idea was aimed at all Ubuntu flavours.
I found this function in KDE, but it also does not have all hotkeys; but just some (mainly for Konqueror)
You can find this under system configuration->advaced->input actions (you can add your actions but I haven't tried that)
Yeah, I would up the difficulty for this to more like medium to hard. It would be really nice in theory, but in order to do it we need a standard hotkey api, and all system programs would be required to inform a central database of their (often mode-dependent) hotkeys.
Anything handled by the window manger or X though, those should be readily available. KDE handles this well, but I think Gnome has a ways to go.
As for me, I use Fluxbox, because all I have to do is edit the .fluxbox/keys file. It's the simplest thing I've seen. Just
Mod4 f : Exec firefox
(Win key + f starts firefox)
Which is scary for a newbie, but if you're desperate to have a proper hotkey manager, I'd recommend it. Both KDE and Gnome's settings are just buggy.
I think integrating the control to Gnome environment would be good enough for me. I really want to control all the Compiz hotkey + gnome default hotkeys + GnomeDo hotkeys + SCIM hotkeys in one single place!!!
(etc. I really want to use Super+D for the desktop hotkey)
In addition, it would be lovely if it can be one single setting file that could be import / export. I really don't want to tweak everything all over when I install a new ubuntu.
big +1 from me.
Especially the lack of an option in "System > Preferences > Shortcuts" to define a "execute command when xyz is pressed" is annoying!
The built-in shortcut manager of gnome is in fact very restrict(ed/ing). Usability - as it is a priority of gnome - does not necessarily restrict your freedom to configure something so it works just like _you_ want it to.
I often wonder why there's not sometimes a "Advanced" button to make gnome applications more flexible. I don't want to believe that the developers are just too lazy to add an extra dialog/tab/section.
(Maybe, I'll collect a few examples for gnome applications which have the potential to do everything you want but lack the proper checkbox for it and create a new idea for this topic. Your invited to just send me a few examples/suggestions for the task if you have the time and if you understood what I was just writing ;))
> I often wonder why there's not sometimes a "Advanced" button to make gnome applications more flexible. I don't want to believe that the developers are just too lazy to add an extra dialog/tab/section.
It's because they [for them being Havoc Pennington] are deeply opposed to flexibility, and think that either sane defaults are good enough 100% of the time or that a combinatorial explosion of different programs is better than a combinatorial explosion of different possible configurations.
Read his justification of the metacity design choices. You'll see that I'm being accurate...
> UPDATE: KDE4 has a universal hotkey manager, but it has only core KDE programs and no other programs. But still this is semi done.
Well, what exactly do you want to do? Have a list for *all* programs? For *all packaged* programs?
It's feasible to do (but laborious to convert to) for a reasonably narrow fixed set of programs, i.e. all of KDE, or all of GNOME plus a parser for inittab, plus a parser for /etc/event.d/* (and look for "start on control-alt-delete"), plus for the console keymap [I think move-one-tty-left is a console-keySym], plus for xbindkeys, plus for some other things. But you'd have to keep the parser updated, and you'd have to have a writer, and keep that updated.
And this of course is less useful when you change window manager to openbox, or use a non-SCIM ime, or....
And either you'd need to update every program in your list to read from the same configuration kind-of-storage (i.e. fixed-path file), or you'd need to understand how to merge keybinding configuration information into config for all types of config files for the set of programs you support. For a single deskenv that's probably not so bad, because you can compel all the apps to do the same kinda thing (or they already do that). But for all apps?
Next, there's data type incongruency. In KDE you map from a finite set of actions to O(1)-length key sequences [I think at most four key combos]. In GNOME you map from a finite set of actions to single keys. In most FPS games, you map key strokes (up+down), presses (down) or releases (up) to actions from an infinite set [sauerbraten has a small lisp dialect you can use as part of commands]. One of the actions you can perform is to rebind keys. [The FPS case can be neatly transplanted to the non-game case by way of xbindkeys and shell scripts that respawn xbindkeys with a new config file].
How do you present a reasonably comprehensible and uniform user interface to that?
The idea is great [meaning: if it was implemented, it would create great value], but I think it won't be implemented within the next 10 years. I would say forever, but forever is long time.
@jonaskoelker: You have a point and I'll not try to disprove it.
But I am sad to hear this, as this really "rains on my parade".
I thought that every program has hotkeys so there would be a program that "asks" that program "about hotkeys" and save it into its settings... But I didn't realised the extent of programming that this would require.
But thanks for insight, at least now we know, why this isn't implemented yet.
There should just be a general 'mapper' for key-presses with special keys in it. This should sit between the actual keyboard and the regular program. Depending on which program is in focus, the mapper should translate the user's key-presses into program specific key-presses. This way programs with uncustomizable shortcuts can also be customized. As an illustration:
Prog. 1 considers Ctrl+Q as quit command, but not Ctrl+Esc.
Prog. 2 considers Ctrl+Esc as quit command but not Ctrl+Q.
I like Ctrl+Q for quit. I should be able to use the mapper and create a rule in it that says that when Prog. 2 is in keyboard focus, when I press Ctrl+Q, the mapper should translate it to the pre-specified Ctrl+Esc so that Prog 2 thinks that Ctrl+Esc was pressed. This should happen only when Prog 2 is in keyboard focus.
The mapper should be totally transparent and should pass key-presses with no matching rules directly to the program without changing them.
This approach will make it possible to create individually customisable keyboard shortcuts that work uniformly with every program installed on a computer.
I might have misunderstood your solution. I thought you were suggesting an app that would be created for ubuntu specifically without input from third parties, specifically the KDE team. Since my suggestion got some votes too, it appears I'm not the only one who misunderstood it. I'll add my vote to it now, it would be helpful if you clarified your solution too :)
the "make it ubuntu specific" title is what made me think you'd prefer it to be a solution specific to ubuntu and gnome, and not a unification effort for all of the hotkeys.
Sorry for that...
I'll change the title. I just wanted to annotate that it would be done for Gnome too. As it seems that idea gets more votes if your idea includes gnome in it...
A question to mods, is it possible to merge solutions??