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]