Re: Orca Laptop keybindings.



For laptop use, I was thinking of adding another/an alternative modifier key, due to the position of insert on many laptop keyboards not being in a useful position. I would then assign keys U I O for line navigation, J
K L for word, and N M < for character. I would then employ a control
modifier to perform other commands that are performed with insert + 1,
3, 7, 9 etc on the number pad. In a few Windows products like JAWS, as
well as Speakup, the capslock key is used as such a modifier. The only
problem with this is the fact that capslock gets turned on and off as
you use it to perform other commands, so like JAWS and speakup, it would be nice to be able to keep it turned off when being used as a modifier,
and double-tap it to turn on or off like JAWS, or use shift+ Capslock
like speakup.

Gotcha. The Capslock key is definitely a struggle because it locks/ unlocks when you press it. It was our first choice, but the locking behavior is the main reason why we chose another key.


This discussion, however, leads me to believe that we have some new requirements for Orca:

1) The key(s) to set/unset the Orca modifier needs to be customizable. The main reason for this is to provide a more convenient modifier for different keyboard layouts.

2) One should be able to override the global Orca keybindings as well as the keybindings per script. The main reason for this is to provide different layouts for desktop and laptop keyboards, if necessary. Another reason is to allow users to set up their own layouts if necessary.


This isn't easily done with the current Orca code, but I think it would be a relatively straightforward thing to do if we don't over- engineer it ;-). My initial thoughts would be:

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.

o Move the keybindings setup in orca.py:init() to settings.py - perhaps a method called setupGlobalKeybindings.

o Move the keybindings setup in default.py:__init__ to a method called default.py:setupKeybindings. One could then override/extend this method in custom scripts per user.

o Since laptop and desktop keyboards are so common, one might consider a new setting "laptopMode"/LAPTOP_MODE or something like that. This could be used in default.py:setupKeybindings method to determine which keys to use.


The limitations of this approach include:

o Not being able to specify a combination of keys to be the ORCA_MODIFIER.

o Dealing with locking modifiers, such as the Capslock key.


Luke, is this something you'd be willing to further refine and implement? I'd be happy to evaluate and incorporate a patch.

Thanks!

Will




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