I think I have come up with a solution to the issues that folks are bringing up with regard to Geany's default keyboard shortcuts. Nick had good points, and I hope to address them below.
The issues:
* Using Ctrl-Alt vs. Shift-Alt * Shift-Ctrl-U and unicode * Possible clashes with desktop manager key combos * Ctrl-Up/Down and window scrolling * Being able to operate Geany easily without a mouse
Points about Geany, as Nick as noted:
* It's a *programmer's* editor * Symmetry and consistency is good * Multi-part key combos are not really preferred, but they're there if you need them.
Some observations:
* The Alt keys are used for dealing with menus and menu items. * Shift gets used a lot to select text (holding it down while moving). * Having many different keyboard shortcut modifiers (prefixes) can *possibly* be confusing.
Here's my proposed solution then:
Geany is a powerful GUI programmer's editor. As such, we should be taking advantage of the key bindings available. This means using Ctrl-Alt ... as well as Shift-Alt.
Having lots of keyboard shortcut modifiers can lead to a complex interface though. To combat that complexity, you can clearly specify what type of action the given modifiers are meant for. Geany is already using Ctrl-foo and Shift-Ctrl-foo keys -- where Shift-Ctrl-foo often means an extended or opposite version of Ctrl-foo. Ok. In fact, Nick's ideas for combos for extending cut/copy to lines seem to fit pretty well here:
* Shift-Ctrl-X -- cut the current line (was Shift-Ctrl-K) * Shift-Ctrl-C -- copy the current line (was Shift-Alt-K)
(He's right -- those do look pretty easy to remember.)
Now, Geany is also using Alt keys to deal with gui elements (including the Alt-1 and Alt-0 combos), and the Shift key to deal with selecting text (holding it down while navigating). I propose then, that Shift-Alt be specifically used for commands that either have to do with the GUI, or else with selecting text. That is, continue to use Shift-Alt-{W,L,P} to select word, line, and paragraph, and add to this list:
* Shift-Alt-J to vertically center ("jump") the window view on the current line (was Shift-Ctrl-L) * Shift-Alt-{Up,Down} to scroll the window up- and down-by-line.
For now, Ctrl-{Up,Down} can be left as is, until such time that someone wants to take the time to change that to up-/down-by-paragraph. Until then, users will probably be fine with using Ctrl-[ and Ctrl-].
Currently, the F-keys are used the way I'm proposing Shift-Alt be used. This is fine, and some users who really want certain F-key commands really at their fingertips may want to re-assign them to unused Shift-Alt key combos. :)
Finally then, this leaves us with the Ctrl-Alt modifier. I propose this be used for how Shift-Alt has previously been used: for special, possibly-less-used or advanced features. This would include:
* Ctrl-Alt-D to insert the date
And possibly these, having to do with changing case:
* Ctrl-Alt-U (think "all *U*pper or lowercase") to toggle selection between all upper and lowercase. * Ctrl-Alt-C ('c' for "capitalize") to make the current word start with a capital letter and then move the cursor to the end of that word * Ctrl-Alt-L ('l' for "lowercase") to make the current word start with a lowercase letter and then move the cursor to the end of that word
One last problem is possible key combo collisions with desktop managers. Geany cannot possibly sidestep collisions with all desktops. Since Geany (conveniently) uses Ctrl-Alt combos for lesser-used or advanced features, it can probably be best left to the user what they want to do. I know, for example, that I never use the Gnome Ctrl-Alt-{L,D} combos, and so will simply unmap them so Geany sees them. If someone else uses them, then they'll probably want to change Geany's defaults anyway.
---John