What's Changed
- refactor(gui): migrate to upstream gpui-kit by @AprilNEA in #2229
- ci(release): approve a release once, before it builds by @AprilNEA in #2329
- fix(device): report a 0x1000 battery without mileage as a level by @AprilNEA in #2333
- fix(overlay): let go of the display on windows while nothing shows by @AprilNEA in #2339
- fix(inject): keep quotes in Windows Run Command by @amys94fr in #2337
- fix(desktop): name OpenLogi Agent in the Input Monitoring row while it is denied by @semmelrinde in #2113
- fix(gui): name every window before its first wayland commit by @AprilNEA in #2344
- fix(device): hear host keys from the moment they are armed by @AprilNEA in #2348
- fix(gui): consume the settings view on the macOS permissions page by @AprilNEA in #2354
- fix(device): switch hosts when a diverted Easy-Switch key is released by @AprilNEA in #2355
- fix(inject): post windows modifiers and fixed keys with their scan code by @AprilNEA in #2350
- fix(permissions): skip event nodes udev does not classify as a mouse by @AprilNEA in #2368
- docs(core): document schema v11 and the flow section by @AprilNEA in #2370
- feat(core): add the G903 LIGHTSPEED gaming layout by @AprilNEA in #2186
- feat(keyboard): bind G-series G-keys and M profiles over 0x8010 by @jiliu88 in #1239
- feat(gui): name G-key profiles from the M-key cards by @jiliu88 in #1240
- fix(core): match the purple g502 lightspeed to its gaming layout by @AprilNEA in #2373
- fix(fixture,hid): drop unsolicited hid++ input from cassette captures by @AprilNEA in #2377
- fix(core): match the pink g502 lightspeed to its gaming layout by @AprilNEA in #2378
- fix(gui): draw the base model for a colour variant whose renders are not images by @AprilNEA in #2379
- fix(hid): keep the linux kernel's hid++ software id out of the lease pool by @AprilNEA in #2380
- fix(device): resend 0x8081 requests a keyboard answers Busy by @capelo0 in #2382
- feat(cli): add diag zones to map a keyboard's per-key zones by @capelo0 in #2384
- fix(inject): post wheel events as zooms while the macOS zoom modifier is held by @AprilNEA in #2385
- fix(agent): keep another mouse's click native once the selected one diverts it by @AprilNEA in #2387
- fix(gui): keep scrollbars drawn when the platform asks for them by @AprilNEA in #2389
- fix(device): treat a dpi read rejected with invalid argument as unsupported by @AprilNEA in #2391
- fix(gui): name a g512 that shares the g513 asset depot by @AprilNEA in #2403
- test(fixtures): add wired G512 capture and corpus expectations by @mynameistito in #2404
- feat(gui): edit linked Easy-Switch devices from the Device tab by @Logiquo in #2043
- fix(cli): say the input monitoring note only on macos by @Jiibben in #2406
- fix(gui): select the G512 photo and matching key metadata by @mynameistito in #2405
- test(device): widen the receiver budget in the bolt codename tests by @AprilNEA in #2415
- fix(inject): leave modifiers already down out of tapped chords by @AprilNEA in #2416
- fix(inject): leave modifiers already down out of windows held chords by @AprilNEA in #2418
- fix(hidpp): decode chunked device names as a whole by @Zekuath in #2184
- fix(flow): name the clippy lints the generated proto code needs by @AprilNEA in #2424
- ci: move pull request workflows to namespace runners by @AprilNEA in #2419
- feat(cli): call a HID++ 2.0 feature with raw parameters by @capelo0 in #2426
- fix(agent): announce dpi button writes so the gui re-reads the dpi by @AprilNEA in #2427
- fix(hid): recognise the mx revolution's nano receiver 046d:c51a by @AprilNEA in #2431
- fix(device): settle a direct hid++ 1.0 answer instead of retiring its channel by @AprilNEA in #2433
- fix(agent): scroll a push right after a momentum catch instead of swallowing it by @AprilNEA in #2437
- fix(inject): post the phased thumb-wheel gesture as pixels on macos by @0xMarcio in #2440
- docs: restructure README acknowledgments and add Namespace CI badge by @AprilNEA in #2441
- fix(device): give a slow unifying device's first-sight walk time to finish by @AprilNEA in #2445
- fix(device): look up litra route locks under a std mutex by @AprilNEA in #2447
- fix(gui): apply the ui audit fixes to controls, toggles, and the overlay by @AprilNEA in #2448
- fix(gui): read webp render sizes for the side and main views by @AprilNEA in #2463
- fix(linux): run the nix package tests in the dev profile by @AprilNEA in #2462
- ci: keep the linux compile jobs' cargo state on namespace cache volumes by @AprilNEA in #2428
- fix(gui): decode a keyboard render by its bytes for the computed glow by @AprilNEA in #2467
- ci: build the aarch64 nix package on apple silicon by @AprilNEA in #2458
- refactor(device): fold channel eviction and replacement into one node state by @AprilNEA in #2472
- refactor(agent): derive the published pairing phase from the session owner by @AprilNEA in #2475
- refactor(hook): give the macos tap lifecycle one owner by @AprilNEA in #2476
- refactor(hid): type the native recorder lifecycle as one state enum by @AprilNEA in #2468
- refactor(device): type the G-key row's ownership as one state by @AprilNEA in #2469
- refactor(agent): re-type the forced re-apply latch as one enum by @AprilNEA in #2470
- refactor(agent): track each hook button's press as one explicit phase by @AprilNEA in #2471
- refactor(hidpp): give each correlation key one lifecycle owner by @AprilNEA in #2473
- refactor(gui): type the standalone light write lifecycle as one enum by @AprilNEA in #2474
- refactor(gui): type the mouse binding editor's mode as one enum by @AprilNEA in #2477
- refactor(flow): type the pairing attempt as an explicit stage by @AprilNEA in #2478
- refactor(gui): type the disable keys write lifecycle by @AprilNEA in #2479
- feat(device): divert the Gestures2 thumb wheel without 0x2150 by @mateuszkulapl in #2038
- refactor(device): type the lock-key read state as one enum by @AprilNEA in #2480
- refactor(hook): type the linux frontmost observer lifecycle as explicit state by @AprilNEA in #2481
- refactor(gui): type device liveness and the miss grace as one presence by @AprilNEA in #2482
- fix(hid): recognise the g613's lightspeed receiver 046d:c53d by @AprilNEA in #2485
- fix(linux): switch workspaces with cosmic's super+ctrl chord by @raulpineda in #2486
- fix(linux): press kwin's ctrl+meta chord when the desktop-switch call fails by @AprilNEA in #2488
- feat(gui): guide the agent's macOS grants with a drag panel by @AprilNEA in #2492
- fix(gui): forget a dropped device's disable-keys snapshot with its card by @AprilNEA in #2491
- feat(binding): add HoldModifier for bare-modifier holds by @liuslouis in #1363
- feat(core): accept keypad keys in custom shortcuts by @4ni1ak in #1963
- docs(macos): point the permission guidance at the drag guide by @AprilNEA in #2493
- test(hidpp): wait for the message listener before asserting on it by @AprilNEA in #2503
- test(gui): keep the Buttons inspector inside a window with a long profile strip by @AprilNEA in #2507
- ci: build the installers on namespace runners by @AprilNEA in #2504
- feat(tray): turn the macOS menu-bar menu into a control center by @AprilNEA in #2455
- ci: run the release workflows on namespace runners by @AprilNEA in #2510
- feat: software-initiated easy-switch host switching by @BrianGilbert in #2068
New Contributors
- @amys94fr made their first contribution in #2337
- @jiliu88 made their first contribution in #1239
- @capelo0 made their first contribution in #2382
- @mynameistito made their first contribution in #2404
- @Logiquo made their first contribution in #2043
- @Jiibben made their first contribution in #2406
- @Zekuath made their first contribution in #2184
- @0xMarcio made their first contribution in #2440
- @mateuszkulapl made their first contribution in #2038
- @raulpineda made their first contribution in #2486
- @liuslouis made their first contribution in #1363
- @BrianGilbert made their first contribution in #2068
Full Changelog: v0.9.0...v0.9.1-beta.144