[Bug 171295] New: Allow shortcuts for input devices other than the keyboard (mouse, lirc, bluetooth, joystick, etc)

Todd toddrme2 at gmail.com
Thu Sep 18 21:17:16 BST 2008


http://bugs.kde.org/show_bug.cgi?id=171295

           Summary: Allow shortcuts for input devices other than the
                    keyboard (mouse, lirc, bluetooth, joystick, etc)
           Product: systemsettings
           Version: 4.1
          Platform: SuSE RPMs
        OS/Version: unspecified
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: general
        AssignedTo: unassigned-bugs at kde.org
        ReportedBy: toddrme2 at gmail.com


Version:            (using KDE 4.1.1)
Installed from:    SuSE RPMs

Currently the systemsettings "Keyboard Shortcuts" module only allows assigning
shortcuts to combinations of keyboard button presses, as its name implies. 
This is pretty limited considering the wide and constantly increasing variety
of input devices currently available.  Currently we have keyboards, mice, lirc,
bluetooth, joysticks and gamepads, and a variety of more specialized input
devices.  Compiz, for instance, allows shortcuts that involve the keyboard and
a separate set of shortcuts that involve the mouse (and modifier keys).  This
is better than what KDE 4 supports, but is still not optimal in my opinion.  

I think the best solution is that the shortcuts system simply ignores what
input devices the button press comes from and handles them all together in the
same manner.  Currently when you click the button to assign a shortcut it waits
for a the keyboard button press combination and then that shows up in the
button.  What I am suggesting is that instead it waits for a button press
combination from all input devices and stores that.  So for instance if someone
presses a keyboard button combination, that will be the shortcut.  If they
press a button or button combination on their lirc remote, that will be the
shortcut.  If they press a button or button combination on their mouse, that
will be the shortcut.  They could also press a button combination involving
their keyboard and their mouse, for instance.  It would not even know what
devices the button belongs to, it would only know it as a button

I have some specific use cases.  

Someone has the "present" plugin enabled in kwin.  Since they generally use
their mouse when navigating windows and not their keyboard, they would prefer
to use the mouse over the keyboard, or use the mouse and a single keyboard
button.  In the first case they want the present plugin to activate when they
press the back and forward buttons on the mouse simultaneously.  In the second
case they want it assigned to a combination of the "win" key and the middle
mouse button.  Both cases would be handled the same way, just press the desired
combination and then release it.

Another situation is someone wanting to play kgoldrunner with their gamepad. 
Instead of needing a separate joystick configuration system to assign joystick
buttons to keyboard presses, the user can just open up kgoldrunner's shortcut
configuration and assign the gamepad buttons to various functions directly.

Another situation is someone who has an lirc remote and wants to control dragon
player, amarok, juk, or some other kde multimedia program.  Currently they have
to open either a text file or a separate configuration program and map the lirc
buttons to various functions in the program or to various keyboard functions. 
They cannot do it within the media player itself.  With this system they could
just open up the local or global shortcut configuration (depend on their goals)
and push the lirc button they want to assign to each function.  The same would
be possible for bluetooth remotes, human interface devices, or even bluetooth
cell phones that support the Audio/Video Remote Control profile or the Human
Interface Device profile.  They could even use a joystick to control their
music.

This allows you to consolidate four or five different configuration programs
(keyboard shortcuts, lirc, joystick/gamepad, and one or two bluetooth) into a
single, consistent interface that is present in every KDE program.  The people
making lirc configurations or configuration programs, for instance, don't need
to keep track of how to interface with all the different KDE multimedia
programs, that interface is built into KDE and the user can set it up however
he or she wants.  Users don't have to map gamepad or joystick buttons to
keyboard commands, KDE games can use the gamepad or joystick directly.

This would also require having multiple button combinations be able to be
assigned to a single shortcut, since people may want to do the same command in
different ways.  For instance people might want to use the play/pause button on
their keyboard, on their lirc remote, and on their mouse (there are a few mice
that have this I think).

Even analog devices like joysticks (as opposed to digital joystick buttons)
could be used if the system was set up to properly interpret and then pass
along analog data.

Slightly off-topic, but an extension to this would be the ability to link
button presses.  For instance a certain button on the keyboard, a certain
button on an lirc remote, and a certain button on a mouse are all play buttons.
 User would be able to set up "actions", where different buttons or button
combinations are all treated by the shortcut system as being the same.  In this
example all these buttons could be assigned to a certain action, which the user
would label "play" (there could be a default list of actions available as
well).  All three of these buttons are then considered to be the same button by
any program using the KDE system.  If you open, say, amarok and assign the
"play" shortcut to the play button on the keyboard, amarok will also recognize
the play button on the remote and the play button on the mouse as being
assigned to that shortcut as well.  

I understand that this is easy to describe but probably extremely difficult to
actually implement.  I don't have any expectation that it will be coming out
soon if it is even accepted.


-- 
Configure bugmail: http://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Unassigned-bugs mailing list