Re: [PATCH v2 1/7] Input: Add event-codes for macro keys found on various keyboards

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

 



On Thu, Aug 22, 2019 at 10:14:31PM +0200, Hans de Goede wrote:
> Hi Dmitry,
> 
> On 22-08-19 20:06, Dmitry Torokhov wrote:
> > Hi Hans,
> > 
> > On Wed, Aug 21, 2019 at 10:59:31PM +0200, Hans de Goede wrote:
> > > Various keyboards have macro keys, which are intended to have user
> > > programmable actions / key-sequences bound to them. In some cases these
> > > macro keys are actually programmable in hardware, but more often they
> > > basically are just extra keys and the playback of the key-sequence is done
> > > by software running on the host.
> > > 
> > > One example of keyboards with macro-keys are various "internet" / "office"
> > > keyboards have a set of so-called "Smart Keys", typically a set of 4 keys
> > > labeled "[A]" - "[D]".
> > > 
> > > Another example are gaming keyboards, such as the Logitech G15 Gaming
> > > keyboard, which has 18 "G"aming keys labeled "G1" to G18", 3 keys to select
> > > macro presets labeled "M1" - "M3" and a key to start recording a macro
> > > called "MR" note that even though there us a record key everything is
> > > handled in sw on the host.
> > > 
> > > Besides macro keys the G15 (and other gaming keyboards) also has a buildin
> > > LCD panel where the contents are controlled by the host. There are 5 keys
> > > directly below the LCD intended for controlling a menu shown on the LCD.
> > > 
> > > The Microsoft SideWinder X6 keyboard is another gaming keyboard example,
> > > this keyboard has 30 "S"idewinder keys and a key to cycle through
> > > macro-presets.
> > > 
> > > After discussion between various involved userspace people we've come to
> > > the conclusion that since these are all really just extra keys we should
> > > simply treat them as such and give them their own event-codes, see:
> > > https://github.com/libratbag/libratbag/issues/172
> > > 
> > > This commit adds the following new KEY_ defines for this:
> > > 
> > > KEY_LCD_MENU1 - KEY_LCD_MENU5, KEY_MACRO_RECORD, KEY_MACRO_PRESET_CYCLE,
> > > KEY_MACRO_PRESET1 - KEY_MACRO_PRESET3, KEY_MACRO1 - KEY_MACRO30.
> > > 
> > > The defines leave room for adding some more LCD-menu, preset or macro keys,
> > > the maximum values above are based on the maximum values to support all
> > > currently known internet, office and gaming keyboards.
> > 
> > I must say that I am not too hot on having these in the keys space,
> > with the exception of KEY_MACRO_RECORD_* as we were trying to allow
> > userspace consumers to know what keys are supposed to mean, instead of
> > just blanked "programmable" keys. Still, we have the BTN_TRIGGER_HAPPY.
> > 
> > I guess as long as we do not try to use the new range for keys that have
> > a defined meaning but lack their own button code it is OK.
> 
> Right, these new codes are for key which are intended to be user programmable,
> they have no icon on them / no defined meaning. They come with markings
> like G1-G18 (for the Logitech _G_aming series), but they have no meaning and
> under Windows they do not function at all without host side software turning
> them intro macro keys. Other keyboards have markings like e.g. S1 - S30 for
> the Microsoft _S_idewinder series, again the intended use for these keys is
> use as macro keys configured through host side software...
> 
> Do you want me to add a big fat comment to the next version spelling this
> out extra explicitly ?

Yes please.

Thanks.

-- 
Dmitry



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux