Виталий Алексеев

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
ardor-mouse: ступени DPI с цветами индикатора и живой мышью
ardor-mouse: ступени DPI с цветами индикатора и живой мышью
модели мышей, дальше добавятся новые
2
DPI у Rukh (от 50), до 8 ступеней
30 000
языков интерфейса, переключаются на лету
5
тестов на пакетах и дампах обеих мышей
59
01

Что это

Производитель не выпускает софта под Linux и не публикует протокол. Всё восстановлено реверс-инжинирингом: утилиты для Windows декомпилированы, их USB-трафик сверен с живыми мышами, каждое поле EEPROM проверено на настоящих дампах.

Программа написана на Rust и syngui и общается с мышью напрямую через hidraw — без модуля ядра, без демона и без root. Настройки читаются из памяти самой мыши, а обратно записываются только изменённые участки, так что программа не затирает то, чего не понимает.

Она рассчитана на всю линейку ARDOR GAMING на контроллере JM03 (Compx): у мышей общий набор команд и карта EEPROM, а всё, чем модели отличаются, — сенсор, кодек DPI, частоты опроса, типы отчётов — собрано в одну таблицу на модель. Поддержку Rukh добавил контрибьютор @Metisav и проверил на настоящей мыши.

Живая мышь в ardor-mouse проигрывает эффект подсветки
Мышь в приложении светится так же, как настоящая: эффект подсветки идёт с выбранной скоростью и яркостью.
02

Возможности

  • Живая мышь, как в 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] работает без мыши.
03

Установка

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/.

Полная инструкция — в README →

04

Требования и ограничения

  • Поддерживаемые мыши: Edge Air Ultra (PixArt PMW3370; приёмник 25a7:fa7c, кабель 25a7:fa7b) и Rukh (PixArt PAW3950; приёмник 3554:f53e, кабель 3554:f53d). Список будет расти: другие мыши ARDOR GAMING на контроллере JM03 добавляются таблицей модели.
  • Режим кабеля у Rukh взят из фирменной конфигурации и не проверялся — у проверенного экземпляра кабель только заряжает.
  • Если мышь спит, приёмник отвечает, но её память недоступна — пошевелите мышью, и настройки загрузятся сами.
  • Неофициальный проект, с ARDOR GAMING не связан. Запись в EEPROM делается так же, как в фирменных утилитах, но вся ответственность — на вас.
05

Скриншоты

Замерено, а не обещано

Как проверено

Протокол восстановлен и проверен на настоящих мышах — Edge Air Ultra на моём столе и Rukh у @Metisav; тесты разбирают пакеты и дампы EEPROM, снятые с обеих.

Каждая цифра здесь измерена на моём железе. github.com/VitaminDB/ardor-mouse