Shortcuts for Pointer Devices in KDE
Rick Stockton
rickstockton at reno-computerhelp.com
Tue May 15 17:02:04 UTC 2012
On Tue, 05/15/2012 at 08:39:17 +0200, todd rme <toddrme2178 at gmail.com>
wrote:
> On Mon, May 14, 2012 at 8:55 PM, Rick Stockton
> <rickstockton at reno-computerhelp.com> wrote:
>>
>> Todd, we_could_ attempt other devices at the same time. But these other
>> devices must be analogous to a keypad-like "keyboard" (although they'd be
>> much easier to support than THE keyboard, because there aren't i10n and
>> layout issues). The Best example is a TV remote control....
> 2 things:
>
> First, I was specifically referring to buttons, not axes (or other
> analog devices). Although having classes that allow for
> general-purpose axis devices would be nice, it is obviously outside
> the scope of shortcuts.
Thanks for clarification! (I assumed otherwise, thinking of Wii
controllers and etc.)
> Second, I was not really suggesting we implement support for other
> devices now. My point is that we should make the system flexible
> enough that third parties could write their own backends that provide
> button events (remote control buttons, joystick buttons, etc.) or
> button-like events (speech recognition, gestures, network signals from
> a smartphone).....
Gestures and Speech recognition are not like buttons. Button Events are
instantaneous singletons, while Gestures and Speech are recognized over
a period of time. (Gestures are already present and fairly easy to use
in Qt 5.0, of course.) Speech would need to be implemented like
Gestures, and the scope of work is large.
> So as long as the event could be treated as a single,
> discrete, instantaneous event, someone could write a backend that
> provides that event as a shortcut.
If the interface of the Device can be fit into QPA (Qt Platform
Abstraction Layer), then I will personally take responsibility for those
interfaces. But QPA is Internal to Qt, it's not public API... and so,
such code goes through the Qt Contributor Process. "Issue", which I will
worry about: Wayland is primitive, VERY primitive, and XCB adds another
layer to the structure on Linux/X11. I'll almost certainly have to
submit code for 2-3 products underneath Qt. LIRC isn't a very active
project; in order to use it, I'd need to do significant API work to help
it enumerate non-mouse devices and use non-mouse interrupts/events.
> There are already groups working on remote controls (kremotecontrol)
> and speech recognition (simon), even someone working on KDE
> integration with android devices over the network.
Even if Simon is suitable as a "platform" plugin for
frameworks/shortcuts, it's out of scope for my strategy. OTOH, I'll
start lurking and looking at kremotecontrol immediately, thanks.
> The idea here would be to make it easy for these groups to tie into the shortcut
> system and provide their own shortcut events so they don't have to use
> their own incompatible shortcut handling system or fake keyboard
> button events.
I agree - if it's not the REAL keyboard, then create a real event
handler. keyboard emulation leads directly to device layout and i10n
problems. (e.g., "What is the code for MOD5 in Myanmar/Burma - for
Burmese, and Shan, and Karen, and maybe we should support Kachin and
Chin, too, and should I be using UTF-16 instead?" YUK!)
Per previous, I might be re-factoring the
QShortcut/QShortcutMap/QKeySequence class to provide common Methods for
Mouse, Keyboard... or I might link the "QMouseShortcut" table entries
directly to QActions, as we do with Gestures. (But without the need for
an intermediate GestureRecognizer implementation.) That's still TBD.
More information about the Kde-frameworks-devel
mailing list