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