Commit Graph
100 Commits
Author SHA1 Message Date
Tasos Sahanidis ee8ca741c8 Update K95 platinum firmware to 3.29 2021-12-04 16:40:35 +02:00
Tasos Sahanidis 1c98bf9b2a Fix GUI segfault on HW profile switch w/clean config
Closes #763
2021-11-19 18:23:29 +02:00
Tasos Sahanidis 1a73a0ea1d Fix hacks for WL in handle_bragi_key_input 2021-11-09 01:34:05 +02:00
Tasos Sahanidis 36ee1cd1c5 Mark harpoon WL as wireless 2021-11-08 13:16:14 +02:00
Tasos Sahanidis fbc028ac7e Use monotonic clock in GUI 2021-11-08 02:57:48 +02:00
Tasos Sahanidis 71642287f2 Split legacy protocol commands to a separate file 2021-11-07 02:29:27 +02:00
Tasos Sahanidis 0c4ece6519 Don't use indices to identify tabs in GUI 2021-11-07 02:07:00 +02:00
Tasos Sahanidis 8f5e6cffd8 Add Legacy Lighting tab with instructions for K95 2021-11-07 01:16:22 +02:00
Tasos Sahanidis de73302149 Add lighting programming button to K95 Legacy 2021-11-07 00:21:36 +02:00
Tasos Sahanidis 9faec7e00e Add search for NULL keys in keymap 2021-11-06 23:51:31 +02:00
Tasos Sahanidis 5a279b7bb2 Move GUI save functionality to its own timer
This way we avoid issues with time changes
2021-11-06 21:06:56 +02:00
Tasos Sahanidis f159ab6bf8 Copy vtable to usbdevice to allow patching 2021-11-05 19:44:54 +02:00
Tasos Sahanidis 4cd6626785 Bragi SW input is always 64 bytes 2021-10-28 04:29:51 +03:00
Tasos Sahanidis 1582047576 dev-detect: Get env vars as a normal user 2021-10-27 12:45:23 +03:00
Tasos Sahanidis 757b0e853d Fix data race when accessing dongle children 2021-10-26 02:25:39 +03:00
Tasos Sahanidis 0ba38d8d83 Fix hangs in led thread due to race conditions 2021-10-26 01:59:49 +03:00
Tasos Sahanidis d87bef94f5 Fix broken and duplicate key input regression
I forgot to ignore HW packets while in SW mode, both for bragi, and
all others.
2021-10-25 23:52:50 +03:00
Tasos Sahanidis 8565f8dcba Add nightsword to USES_FILE_HWSAVE()
Closes issue #753
2021-10-25 16:44:24 +03:00
Tasos Sahanidis 933cf8d7c3 Add K57 WL dongle to daemon 2021-10-25 14:46:38 +03:00
Tasos Sahanidis 80122bda67 Split bragi keyboard input
This is needed to get SW key input in the K57 WL and possibly others
as unfortunately the header "01 02" in bragi means device 1
key input, but it just means "NKRO input" in NXP and legacy.

Perhaps the size check could be moved to the top, but there's no
reason to risk breaking older devices.
2021-10-25 14:31:34 +03:00
Tasos Sahanidis 3ae62f68c2 Remove macOS mention in readme heading 2021-10-25 02:44:20 +03:00
Tasos Sahanidis fdff155617 Process wireless bragi input correctly 2021-10-25 01:44:29 +03:00
Tasos Sahanidis 35f77b20c5 Fix build
I forgot to rename the enum members during the rebase
2021-10-24 23:06:30 +03:00
Tasos Sahanidis 57e18edc26 Merge branch 'bragi-dongle-hack'
It's no longer a hack since the connection status enum was added.
2021-10-24 22:47:08 +03:00
Tasos Sahanidis 32f7e2bae3 Properly init bragi dongle and probe for devices 2021-10-24 22:46:32 +03:00
Tasos Sahanidis 40c67631c4 Detect and ignore bragi notifications
This stops the cursor from moving to the right due to parsing the
notification events as input packets.
2021-10-08 09:43:35 +03:00
Tasos Sahanidis 4f419b144f Properly fix harpoon wl wired key mapping 2021-10-08 09:33:54 +03:00
Tasos Sahanidis 3b2426c835 Fix harpoon wl wired left click 2021-10-08 08:55:51 +03:00
Tasos Sahanidis 193db5123b Rewrite bragi mouse input to handle variable length 2021-10-07 15:48:40 +03:00
Tasos Sahanidis cf364e9517 Add Harpoon WL wired scroll wheel hack 2021-10-07 14:26:08 +03:00
Tasos Sahanidis d1183f27cc Print endpoint in print_urb_buffer() 2021-10-02 10:26:45 +03:00
Tasos Sahanidis 783e3ebc01 Merge remote-tracking branch 'michaelni/katar_pro_xt'
Add support for Katar Pro XT
2021-10-02 02:09:43 +03:00
Tasos Sahanidis ee38138f94 Add workaround for mice lacking scroll on SW pkt 2021-10-02 02:06:45 +03:00
Tasos Sahanidis 05512995c2 Fix K95 platinum XT NKRO
Packets are 21 bytes instead of 16
2021-09-30 12:50:39 +03:00
Tasos Sahanidis 16815035a1 Fix devices not showing as disconnected 2021-09-30 12:25:49 +03:00
Tasos Sahanidis e896ba41b9 Fix rwin in hw mode bragi 2021-09-30 11:45:54 +03:00
Tasos Sahanidis 276be263fa Rewrite bragi keyboard input handling
This should also fix the K95 Platinum XT numpad 7 and also add
support for ISO keyboards.
2021-09-30 11:02:20 +03:00
Tasos Sahanidis c45878d6ed Add K57 WL to daemon
Also, fix the rgb packets and keymap led offsets.
2021-09-30 10:50:31 +03:00
Tasos Sahanidis e15ff771c9 Pick appropriate bragi EPs at runtime 2021-09-27 02:48:38 +03:00
Tasos Sahanidis 5f6bc8ad4b Use -O3 by default 2021-09-26 13:23:12 +03:00
Tasos Sahanidis bf29e2ef2c Replace IS_CONNECTED with proper state tracking 2021-09-26 12:51:06 +03:00
Tasos Sahanidis dc04037a6e Merge remote-tracking branch 'ckb-next-ndowens/master' 2021-09-21 18:56:23 +03:00
Tasos Sahanidis dc4dc54c5e Don't enable unneeded axes in mouse device
Specifically, we used to enable HI_RES wheel events without ever
sending any. This breaks scrolling in latest libinput as it expects
us to actually send HI_RES events.
2021-09-20 14:48:18 +03:00
Tasos Sahanidis 43fa97c1b2 Properly implement bragi mouse RGB 2021-08-24 16:20:03 +03:00
Tasos Sahanidis ae0b1ddb7d Change default tab to lighting in GUI 2021-08-20 02:44:30 +03:00
Tasos Sahanidis 3133b96a1f Force 0x4 EP out on bragi 2021-08-20 02:42:08 +03:00
Tasos Sahanidis 899a051148 Add basic support for wireless Harpoon 2021-08-20 02:34:50 +03:00
Tasos Sahanidis 0d38a43754 Clean up GUI notify Kb destructor 2021-08-20 02:10:29 +03:00
Tasos Sahanidis 95e81c3d7f Don't call terminate in GUI unless necessary 2021-08-20 01:42:42 +03:00
Tasos Sahanidis 56367e00b1 Fix infinite loop when unable to read wMaxPacketSize 2021-08-19 23:08:25 +03:00
Tasos Sahanidis 1e61686f60 Add support for bragi battery reading
Also clean up the GUI battery code.
2021-08-08 19:02:47 +03:00
Tasos Sahanidis cafb5435e0 Properly parse the features string in the GUI 2021-08-07 14:18:59 +03:00
Tasos Sahanidis 3a57b1e8ed Add initial bragi dongle support 2021-08-07 14:09:31 +03:00
Tasos Sahanidis 443c240853 Fix bragi write to handle mouse offset 2021-08-07 09:22:12 +03:00
Tasos Sahanidis 11359270da Add support for bragi jumbo packets 2021-08-06 08:02:37 +03:00
Tasos Sahanidis 6e3b7ff424 Warn about unused functions only in debug builds 2021-08-05 01:46:33 +03:00
Tasos Sahanidis 4271f0f065 Statically allocate keymap and interrupt buffer 2021-08-02 00:27:52 +03:00
Tasos Sahanidis 03d683cfe4 Don't error on duplicate scancodes in rgb RRGGBB 2021-07-17 22:33:38 +03:00
Tasos Sahanidis 7a615a2bee Don't spam rgb commands to daemon with lights off 2021-07-17 22:18:01 +03:00
Tasos Sahanidis 3f136e9617 Add new pipe section to README 2021-07-17 14:29:58 +03:00
Tasos Sahanidis c2c12fc981 Fix cmake reconfiguration with quazip 1 2021-07-16 17:43:52 +03:00
Tasos Sahanidis 941ff7dc89 Fix K95 Platinum topbar
Some LEDs would get overwritten as they accidentally shared
scancodes with the mouse dpi LEDs.

Closes #438
2021-07-15 20:38:33 +03:00
Tasos Sahanidis 82b0174784 Rename DEBUG to ANIM_DEBUG for animations 2021-07-15 20:35:00 +03:00
Tasos Sahanidis 51c858c2bd Implement LED scancode overwrite detection
There are some nasty bugs created by scancodes that are duplicated
since the GUI might set leds for keys that do not exist in a given
device.
2021-07-15 20:34:28 +03:00
Tasos Sahanidis 9b59ae5c95 Merge remote-tracking branch 'olokos/master' 2021-07-04 03:33:38 +03:00
Tasos Sahanidis a9186d9df7 Fix scroll wheel on Dark Core RGB Pro 2021-07-04 03:29:57 +03:00
Tasos Sahanidis cba50cfe9a Rework input to handle scroll wheels as axes
Additionally, mouse and keyboard events are now queued up and are
"flushed" when os_inputsync() is called.
2021-07-04 03:20:23 +03:00
Tasos Sahanidis 2c328fb318 Constify device-related variables 2021-06-30 00:40:01 +03:00
Tasos Sahanidis 2b824fde87 Show cpp warnings only under Debug 2021-06-28 12:51:23 +03:00
Tasos Sahanidis 7703e82c91 Merge branch 'new-devices-redux' 2021-06-27 23:29:03 +03:00
Tasos Sahanidis 7e2a725bb0 Remove VLAs 2021-06-22 23:24:25 +03:00
Tasos Sahanidis 142621fa64 Add experimental devices to macro 2021-06-21 01:55:42 +03:00
Tasos Sahanidis 6d4d334b2e Add bragi led indicator hack 2021-06-21 01:51:14 +03:00
Tasos Sahanidis aed4b75db1 Increase iProduct string descriptor len 2021-06-21 01:51:14 +03:00
Tasos Sahanidis c3538f9dfe Clear input when switching between modes 2021-06-21 01:51:14 +03:00
Tasos Sahanidis 26ff42b81e Report the K95XT as a k95p to the gui 2021-06-21 01:51:14 +03:00
Tasos Sahanidis f03f1f07b1 Add K95 XT Platinum LED mapping
Thanks to @dcat52 for mapping it out
2021-06-21 01:51:14 +03:00
Tasos Sahanidis f0c775510b Fix bragi rgb packet overwrite 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 73111a78e1 Remove duplicate bragi hid entries 2021-06-21 01:51:13 +03:00
Tasos Sahanidis f64879d7fc Finally fix bragi hid 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 61d38d1ae1 Implement remaining bragi HID keys 2021-06-21 01:51:13 +03:00
Tasos Sahanidis f891061856 Implement bragi HID G keys 2021-06-21 01:51:13 +03:00
Tasos Sahanidis fe4868c230 Fix off by one in bragi hid again 2021-06-21 01:51:13 +03:00
Tasos Sahanidis c7e85f41e4 Rework bragi hid to account for extra bytes 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 37811ee240 Fix bragi HID off by one 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 6909d7a75c Fix last bragi HID byte 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 88d9224c1e Partly implement bragi keyboard HID 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 8b271a892d Add K95P XT id properly 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 304560a12e Add K95P XT id 2021-06-21 01:51:13 +03:00
Tasos Sahanidis 54fa7755b1 Implement DPI and working RGB 2021-06-21 01:51:13 +03:00
Tasos Sahanidis e4e2d0a3b2 Implement bragi hid input 2021-06-21 01:51:12 +03:00
Tasos Sahanidis 66ed17a398 Open the lighting handle after we switch to SW mode 2021-06-21 01:51:12 +03:00
Tasos Sahanidis 4dcebdf921 Bragi sends all packets via the input thread 2021-06-21 01:51:12 +03:00
Tasos Sahanidis 6fd1d7efc3 Clean up bragi input handling 2021-06-21 01:51:12 +03:00
Tasos Sahanidis 6fe0da1c4e Make sure bragi devices are in HW mode during init 2021-06-21 01:51:12 +03:00
Tasos Sahanidis 34f1e5f1a7 Fix bragi RGB 2021-06-21 01:51:12 +03:00
Tasos Sahanidis 78dbe77ddb Implement bragi pollrate and RGB 2021-06-21 01:51:12 +03:00
Tasos Sahanidis d4dbe11cae Relock imutex if usbrecv fails to get battery info 2021-06-21 01:51:12 +03:00
Tasos Sahanidis 8667410f6d Only call rgbcmp for the dark core in dpi.c 2021-06-21 01:51:12 +03:00
Tasos Sahanidis d9d003fe23 Add dark core se as a mouse 2021-06-21 01:31:24 +03:00