Re: Orca Laptop keybindings.



Hey Luke:

Well....I'm not sure I really want to say because I'm not sure it's an implementation I want to support just yet. :-) But...the idea is this:

The settings.keyBindingsMap is a auxiliary dictionary where the keys are module names and the values are instances of keybindings.KeyBindings. One can also have a "default" key to use for all scripts if no specific bindings exist in the dictionary for a script. The logic in script.py:processKeyboardEvent does this:

1) If there are custom user keybindings for a script, or if there is a "default" entry, processKeyboardEvent will attempt to use these.

2) In the event that custom user keybindings do not exist, or the custom user keybindings did not consume the event, then processKeyboardEvent will use the keybindings built into the script.

Although I put this in there, the reason I've never fully liked this is that it has a rather bizarre behavior - processKeyboardEvent is going to try to consume the event any way it can. Thus, it becomes easy for you to extend/override the keybindings as long as they consume the event, but it is difficult to say "Hey, don't consume this key stroke any more."

So...if one wants to completely redefine the keystrokes for a script, one might try writing a user script (to live in ~/.orca/orca-scripts/ *.py) that has the same name as an installed script, but just mucks with the keybindings property of the script. Unfortunately, we haven't built in the search path behavior to find the "default" script, but this could be done. One might even consider a property that defines the module name of the default script rather than hardcoding it (as it is done now).

I like to program primarily based on need rather than thought experiments, though. So...as you dig into your laptop keybindings and you have additional ideas for what would make this easier to do, please let me know. We probably could come up with something that works well, and I think it could also apply to other types of keyboard layouts as well.

Hope this helps,

Will

On Mar 31, 2006, at 12:38 AM, Luke Yelavich wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, Mar 30, 2006 at 12:31:14AM EST, Willie Walker wrote:
o Move the hardcoded "Insert" references in orca.py to settings.py,
adding a "orcaModifierKeys"/ORCA_MODIFIER_KEYS list that specifies a
list of key strings to be used as the Orca modifier.

Just looking through settings.py, and I noticed these two lines:
KEY_BINDINGS_MAP        = "keyBindingsMap"
keyBindingsMap          = {}

There is a comment above stating that this isn't documented. I have also grepped the source, and found that it is only mentioned in settings.py.
What use might this setting have?
- --
Luke Yelavich
GPG key: 0xD06320CE
         (http://www.themuso.com/themuso-gpg-key.txt)
Email & MSN: themuso themuso com
ICQ: 18444344
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFELMBHjVefwtBjIM4RAqcZAKCSbYhDUkQr4gxbmah23MR0IQab7QCgnldf
7Z8jc8ZTeM0LKTESPzpq+3M=
=1eAz
-----END PGP SIGNATURE-----
_______________________________________________
Orca-list mailing list
Orca-list gnome org
http://mail.gnome.org/mailman/listinfo/orca-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]