All Projects → kyokenn → rogdrv

kyokenn / rogdrv

Licence: GPL-3.0 License
ASUS ROG userspace mouse driver for Linux

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to rogdrv

openinput
Open source firmware for input devices
Stars: ✭ 43 (+4.88%)
Mutual labels:  hid, mouse
Bthidhub
Bluetooth HID hub
Stars: ✭ 65 (+58.54%)
Mutual labels:  hid, mouse
Mac Precision Touchpad
Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad
Stars: ✭ 5,107 (+12356.1%)
Mutual labels:  hid, driver
Ucr
Universal Control Remapper [Alpha]
Stars: ✭ 399 (+873.17%)
Mutual labels:  hid, mouse
vmwmouse
VMware mouse driver for Windows 3.1
Stars: ✭ 315 (+668.29%)
Mutual labels:  driver, mouse
Hidguardian
Windows kernel-mode driver for controlling access to various input devices.
Stars: ✭ 138 (+236.59%)
Mutual labels:  hid, driver
Vigembus
Windows kernel-mode driver emulating well-known USB game controllers.
Stars: ✭ 721 (+1658.54%)
Mutual labels:  hid, driver
fix-linux-mouse
Hints how to fix USB mouse issues on Linux
Stars: ✭ 36 (-12.2%)
Mutual labels:  driver, mouse
mx3000control
Perixx MX-3000 mouse unofficial configuration tool for Linux
Stars: ✭ 20 (-51.22%)
Mutual labels:  hid, mouse
1000hz
Overclock your old mouse and increase its polling rate
Stars: ✭ 45 (+9.76%)
Mutual labels:  driver, mouse
uchroma
An advanced driver for Razer Chroma hardware in Linux
Stars: ✭ 45 (+9.76%)
Mutual labels:  driver, mouse
veikk-linux-driver
Linux driver for VEIKK-brand digitizers
Stars: ✭ 130 (+217.07%)
Mutual labels:  hid, driver
usb stack
Tiny and portable USB device/host stack for embedded system with USB IP
Stars: ✭ 175 (+326.83%)
Mutual labels:  hid
h2go
Apache H2 Go SQL Driver
Stars: ✭ 35 (-14.63%)
Mutual labels:  driver
mongodb-go-tutorial
Example using the MongoDB Go Driver
Stars: ✭ 114 (+178.05%)
Mutual labels:  driver
BioBalanceDetector
Bio Balance Detector's products aim to show the weak electromagnetic fields around every living being (including plants, animals and humans) and display it in a heat-map like hyper-spectral image.
Stars: ✭ 18 (-56.1%)
Mutual labels:  driver
SerialProxy
🖱️⌨️ Arduino Input Proxying for PC (.NET Core)
Stars: ✭ 39 (-4.88%)
Mutual labels:  mouse
WindowsIoTEverywhere
Images & drivers to get WIndows 10 IoT running on off-the-shelf tablets, mini-pcs, and various computers.
Stars: ✭ 23 (-43.9%)
Mutual labels:  driver
YetAnotherKeyDisplayer
The application for displaying pressed keys of the keyboard
Stars: ✭ 88 (+114.63%)
Mutual labels:  mouse
wiasane
Scanner Access Now Easy - WIA Driver
Stars: ✭ 109 (+165.85%)
Mutual labels:  driver

rogdrv

rogdrv is a simple ASUS ROG (Republic of Gamers) userspace mouse driver for Linux. The mouse is a composite device which consists of 3 interfaces: mouse, keyboard and consumer control (for changing the mouse settings).

The keyboard interface for some devices is unsupported on Linux, but it's recognised as HID device. So this driver maps HID events to the generic keyboard events.

The protocol was reverse-engineered, so everything is experimental. Use at your own risk.

Alternative solutions

Keyboard events handling module

HID kernel module - hid-asus-mouse

Mouse configuration tool

piper

with

libratbag (fork, not merged yet into upstream)

Current missing features:

  • Button response
  • Angle snapping
  • Extra LED modes
  • Key binding
  • Sleep timeout

Supported devices and features

Device name Profiles Button Bindings Performance Settings LEDs Sleep
Buzzard + ? ? ? N/A
Gladius II + + + + N/A
Gladius II Origin + + + + N/A
Gladius II Origin PNK LTD + + + + N/A
Keris Wireless + + + + +
Chakram + ? + + +
Pugio + + + + N/A
Pugio II + ? ? + ?
Strix Carry + + + N/A +
Strix Impact II Wireless + + + + ?
Strix Impact N/A ? ? + N/A
  • Profiles - Profile switching feature
  • Button Bindings - Buttons binding feature
  • Performance Settings - DPI, polling rate, buttons response, angle snapping configuration feature
  • LEDs - LED color customization feature
  • Sleep - Sleep timeout setting feature for the wireless mices

There is a chance that a driver can be compatible with other mouse devices from ASUS ROG (Republic of Gamers) series.

Unsupported devices

Those devices are from the same generation and they are based on the same ASUS hardware which is not compatible with hid-generic linux driver.

You can check it with:

LIBUSB_DEBUG=9 sudo -E lsusb -v -d 0b05:<mouse product ID>

There would be no Consumer Control interface in the device descriptor which means they are not compatible. It would report only Mouse and Keyboard interfaces.

  • Spatha
  • Gladius
  • Strix Evolve

Requirements

Common requirements

  • python >= 3.0
  • python-evdev
  • gir-appindicator3

HID requirements

Only single one of it is required

Ubuntu:

apt install python3-hidapi python3-evdev gir1.2-appindicator3-0.1

Installation

Userspace driver installation:

sudo python3 setup.py install

or

sudo pip3 install .

You need r/w permissions for /dev/hidrawX file of your mouse.

You can solve this by installing a custom udev rules:

sudo ./install_udev
sudo udevadm control --reload-rules
sudo udevadm trigger

Using

Userspace driver consists of 2 programs: rogdrv and rogdrv-config

rogdrv is a virtual uinput device driver which converts mouse events into uinput events. rogdrv

Usage: rogdrv [--debug] [--console]
  --help - display help
  --debug - debug mode
  --console - starts in pure console mode, disables tray icon

rogdrv-config is a mouse configuration tool.

Usage:
  rogdrv-config <command> --help - display help for a command
  rogdrv-config <command> [--debug] [args] - run a command

Available commands:
  rogdrv-config actions - display list of available action codes
  rogdrv-config bind - bind a button or display current bindings
  rogdrv-config color - get/set LED colors
  rogdrv-config dpi - get/set DPI
  rogdrv-config dump - dump settings to stdout or .json file
  rogdrv-config load - load settings from .json file
  rogdrv-config profile - get/set profile
  rogdrv-config rate - get/set polling rate
  rogdrv-config response - get/set button response
  rogdrv-config sleep - get/set sleep timeout and battery alert level
  rogdrv-config snapping - enable/disable snapping
  rogdrv-config version - get device firmware version
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].