07 / 07 · Rust · syngui · hidraw
ardor-mouse
Нативная программа для настройки беспроводных мышей ARDOR GAMING в Linux — замена фирменным утилитам, которые есть только под Windows. Сейчас поддерживаются Edge Air Ultra и Rukh; новая модель добавляется одной таблицей.
- Лицензия
- MIT
- Платформа
- Linux · мыши ARDOR GAMING
- Пакеты
- ardor-mouse (AUR)
- Статус
- 0.3.0 · Edge Air Ultra, Rukh

Что это
Производитель не выпускает софта под Linux и не публикует протокол. Всё восстановлено реверс-инжинирингом: утилиты для Windows декомпилированы, их USB-трафик сверен с живыми мышами, каждое поле EEPROM проверено на настоящих дампах.
Программа написана на Rust и syngui и общается с мышью напрямую через hidraw — без модуля ядра, без демона и без root. Настройки читаются из памяти самой мыши, а обратно записываются только изменённые участки, так что программа не затирает то, чего не понимает.
Она рассчитана на всю линейку ARDOR GAMING на контроллере JM03 (Compx): у мышей общий набор команд и карта EEPROM, а всё, чем модели отличаются, — сенсор, кодек DPI, частоты опроса, типы отчётов — собрано в одну таблицу на модель. Поддержку Rukh добавил контрибьютор @Metisav и проверил на настоящей мыши.

Возможности
- Живая мышь, как в Lenovo Legion Space: изображение мыши проигрывает эффект подсветки с выбранной скоростью и яркостью, индикатор DPI вспыхивает цветом ступени, а наведение на кнопку подсвечивает её на схеме.
- DPI: до 8 ступеней (у Rukh — 6), 50–19 000 DPI у Edge Air Ultra и 50–30 000 у Rukh, у каждой ступени свой цвет индикатора.
- RGB-подсветка (Edge Air Ultra): статичная, дыхание, поток, неон, бегущая строка, дыхание цветом или выключена — цвет, скорость, яркость, гашение при движении.
- Кнопки: переназначение всех шести — клики, назад / вперёд, DPI по кругу / вверх / вниз или отключение; макросы и кнопка «огонь» сохраняются как есть.
- Сенсор: частота опроса 125–1000 Гц (у Rukh — 2000 Гц), высота отрыва 1 / 2 мм (у Rukh — 0,7 мм), антидребезг, выравнивание линий, подавление дрожания, тайм-аут сна; у Rukh — Motion Sync и режим сенсора LP/HP.
- Уровень заряда батареи и состояние зарядки.
- 5 языков интерфейса: английский, русский, украинский, казахский, немецкий — по языку системы, переключение в заголовке окна без перезапуска.
- Своё окно с анимированной сменой разделов; --probe [--write-test] проверяет мышь из терминала (запись и откат сверены байт в байт); --simulate [rukh] работает без мыши.
Установка
yay -S ardor-mouse # or: paru -S ardor-mouseПакет ставит бинарник, пункт меню, иконки и правило udev, которое даёт вошедшему пользователю доступ к мыши; если приёмник уже был вставлен, переподключите его один раз. Другие дистрибутивы: архив релиза ardor-mouse-<версия>-x86_64-linux.tar.gz и sudo ./install.sh. Из исходников: cargo build --release и правило udev из packaging/.
Требования и ограничения
- Поддерживаемые мыши: Edge Air Ultra (PixArt PMW3370; приёмник 25a7:fa7c, кабель 25a7:fa7b) и Rukh (PixArt PAW3950; приёмник 3554:f53e, кабель 3554:f53d). Список будет расти: другие мыши ARDOR GAMING на контроллере JM03 добавляются таблицей модели.
- Режим кабеля у Rukh взят из фирменной конфигурации и не проверялся — у проверенного экземпляра кабель только заряжает.
- Если мышь спит, приёмник отвечает, но её память недоступна — пошевелите мышью, и настройки загрузятся сами.
- Неофициальный проект, с ARDOR GAMING не связан. Запись в EEPROM делается так же, как в фирменных утилитах, но вся ответственность — на вас.
Скриншоты
- (открыть в полном размере)

Переназначение шести кнопок с подсветкой на схеме - (открыть в полном размере)

Сенсор: частота опроса, высота отрыва, антидребезг - (открыть в полном размере)

ARDOR GAMING Rukh: 30 000 DPI, 2000 Гц, Motion Sync - (открыть в полном размере)

Интерфейс на русском — один из пяти языков
Замерено, а не обещано
Как проверено
Протокол восстановлен и проверен на настоящих мышах — Edge Air Ultra на моём столе и Rukh у @Metisav; тесты разбирают пакеты и дампы EEPROM, снятые с обеих.
Каждая цифра здесь измерена на моём железе. github.com/VitaminDB/ardor-mouse