We very much need a new way to handle key bindings. And we also have some
conflicting requirements / desires.
For the issue of single-key (with or without modifiers), there are two
issues:
- it is getting more and more difficult to to find unused bindings.
- perhaps even worse, the key bindings used bear no resemblance to any
mnemonic for the action it triggers.
Both of these issues are exacerbated by Internationalized keyboards.
Another issue is the ability to get a map of all of the shortcut keys.
This at one point I overcame, but, the *ahem* discussion surrounding it
killed it.
I'm not a huge fan of emacs or vi keyboard bindings, but I realize why they
are practical: they allow grouping of related functionality, and the reuse
of simple keys. Being able to hit ctrl-t for time mode, then the arror or
number keys to control the time, would be good. Even better, I could hit
ctrl-e, and use the same number number keys to control eyepiece selection,
ctrl-t & number for telescope selection, ctrl-s & number for sky culture
selection, ctrl-l & number for line display, etcetera.
There will be those who would find this too cumbersome or complex. On the
one hand, this position just doesn't hold it's own well, as the shape the
keybindings are in now are no better, and probably worse. However, any
keybinding refactoring should include a UI for customizing the bindings.
yes, very much like the one I created.
On both Linux & Mac (and I assume Windows), there is a common way to do
this: you open a dialog, it shows all of the actions, it shows the bindings
associated to those actions, and allows for them to be edited. They
typically allow these schemes to be saved and loaded. This would allow for
Matthew's desire to have a different map in place while a script is
running; the scripting module would note what scheme is loaded, load a
script scheme predefined to control the running of a script, and when the
script finishes, reinstall the previous scheme.
This would need to be more complex than the one I originally created, as it
would need to handle the multi-step bindings ala emacs & vi.
It would also probably not bind the shortcut to the action the way things
are now; it would likely bind the short cut to an actions name, then
dispatch to that action upon the key press, with a key event handler.
On Fri, Apr 13, 2012 at 8:10 AM, Matthew Gates <[email protected]> wrote:
> I welcome shortcut customization. We should strive to have sane
> defaults and as much continuity as possible so as not to annoy
> experienced users.
>
> One thing I would like to point out is that at the moment we have a
> kind of alternative keyboard map which operates when scripts are
> running - the j, k and l keys change script execution speed instead of
> simulation rate as they normally do. There should also be (although
> there is not at present), a script termination shortcut. Thus I would
> like to see some mechanism in the shortcut file for identifying these
> alternative mode shortcuts. Doesn't have to be elaborate - perhaps
> just a naming convention to prefix the names of the scripting
> shortcuts with something.
>
> I'm generally against emacs-style multi-keystroke bindings (emacs has
> a terrible usability reputation, and multi-key bindings are a
> significant part of the reason), but I realize I may be alone there.
>
> I definitely want a mechanism for being able to bind the execution of
> a script to a key, or even the execution of a script in a string.
> e.g.
>
> [quick_script_1]
> name = actionExecute_Script_File
> parameter = my_script.ssc
> text = Execute script: my_script.ssc
> shortcuts = Win+1
> group = Quick Scripts
>
> [quick_script_2]
> name = actionExecute_Script_String
> parameter = core.selectObjectByName("Moon", true);
> StelMovementMgr.zoomTo(30);
> text = Find the Moon
> shortcuts = Win+2
> group = Quick Scripts
>
> Having an ini file which is editable is a nice first step for editing
> keyboard shortcuts. Ultimately we should be aiming at a GUI tool for
> that (perhaps a plugin).
>
> Well, that's my $0.02.
> M
>
>
> ------------------------------------------------------------------------------
> For Developers, A Lot Can Happen In A Second.
> Boundary is the first to Know...and Tell You.
> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
> http://p.sf.net/sfu/Boundary-d2dvs2
> _______________________________________________
> Stellarium-pubdevel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel
>
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Stellarium-pubdevel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel