Re: USB HID devices communicating with each other

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

 



On 01/01/2014 09:48 AM, Joe M wrote:
I am developing a USB HID device (simple keyboard). I want to have 2
different such keyboards connected to the same computer to share the
shift, control, alt or any such modifier key. So, I do not have to
have the same modifier key on the different keyboards connected to the
same computer.

I could think about writing a kernel device driver to facilitate such
communication. But, other than that, Is there some mechanism that I
can use to ensure that the 2 HID keyboards can communicate with each other
when any such modifier key is pressed on either of them?

I can easily add more endpoints, etc., on the device, if that helps.
USB devices can not "communicate with each other", sorry, the spec
doesn't allow that.

But, the OS can "combine" all of the HID devices into one big device,
which I think you will find is the default way Linux works for
keyboards.

But, modifier keys are "hard" in that I don't think a modifier key of
one keyboard will affect the other keyboard, but you can easily try this
by plugging in two keyboards and seeing what happens.
I tried to see if the setReport of Led's are communicated between
keyboards. But, I noticed that it is not. That report is being just
sent to the keyboard that sends that modifier. Not sure if this
behaviour can be tweaked with a setting. Any thoughts, please?

The modifiers are shared between keyboards by default in Linux. If you hold CTRL on one keyboard and C on the other, you'll get the same result as having pressed CTRL-C on one keyboard.


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux