Starting with GCC 13, cstdint is included by fewer headers and needs
to be explicitly included in help.h, so that uint16_t is defined. See
https://gcc.gnu.org/gcc-13/porting_to.html for details.
Signed-off-by: Stephen Kitt <steve@sk2.org>
The udev rules currently make supported device nodes world-readable
and writable, which means that any process on the system can read
traffic from keyboards including passwords etc. To avoid this, while
still allowing the "controlling" user to run g810-led without being
root, this patch adds a uaccess tag; this ensures that the user at the
console has write access to the devices. The mode is also changed to
660 to ensure that existing device nodes are fixed on upgrade.
Thanks to Xavi Drudis Ferran for bringing this to my attention.
Fixes: #293
Signed-off-by: Stephen Kitt <steve@sk2.org>
This should address common misconceptions of "No matching or compatible
device found" by isolating permission problems from lack of a matching
device in the system.
hid_write() expects a report ID in the first byte. The 0x11 and 0x12
values sent as the first byte of commands are consistent with report
IDs published in the keyboard's USB descriptors.
This change was motivated by commands not working reliably using
hidapi on macOS with a G Pro keyboard.
NOTE: Ripple effect (0x05) seems to have a conflict with an unadvertised
"stars"-like effect for the G410 and G810. Did not explore setting
timing for the G410/G810 effect, but is likely contrasted greatly with
the timing of the new Ripple effect. GHub limits ripple timing between
20ms and 200ms, but actual values are arbitrary and were tested up to
5000ms. Ideally should be kept within the 20-200ms range for best feel
of the effect. Logo does not honor the effect, and GHub simply sets to
the default "Logitech Blue".
Signed-off-by: Kevin Pearson <kevin.pearson@ortmanconsulting.com>
TODO: There is a new ripple effect that needs to be added. This commit
only provides support for the current effects.
Signed-off-by: Kevin Pearson <kevin.pearson@ortmanconsulting.com>