Repository navigation
Separate the scroll-wheel DPI indicator from the bottom RGB lighting, support shortened stage lists without stopping color following, and add stage reordering.
- Label custom colors as bottom RGB. Show the wheel's built-in stage colors separately; custom bottom colors cannot change the wheel indicator. No supported wheel-palette command has been established for this model.
- Keep following status when firmware reports a removed stage after reducing the profile to 1–3 stages. Skip color writes until a configured stage is active, then resume automatically without repeating lighting setup.
- Add up/down stage controls. DPI values and custom bottom colors move together; wheel colors remain attached to numbered slots.
- Preserve saved custom bottom colors visibly while linking is off.
- Support GTK 4.6–4.8 with compatible color and confirmation dialogs. Discover permission tools through PATH, use a POSIX launcher, and retain standard X11/Wayland and XDG integration.
- Verify 18 complete DPI packets against the original executable, including one-, two-, and three-stage profiles in arbitrary order. Add CI coverage for Ubuntu 22.04, Debian 12, and Fedora 44, alongside the Ubuntu 24.04 package build.
Validation: 39 unit tests, GTK interaction checks including the older dialog implementations, and Linux package checks. Compatibility checks passed on Ubuntu 22.04, Debian 12, Fedora 44, and Ubuntu 24.04. A live status capture confirmed the physical three-stage cycle: 1 → 2 → 3 → 1 → 2 → 3 → 1.
Known limitations: custom scroll-wheel colors remain unsupported, and exact high-DPI accuracy and the reported intermittent sensitivity behavior remain unresolved. The app requires Python 3.10+, PyGObject, GTK 4.6+, libadwaita, and normal Linux USB permissions.