All Projects → gianluca-nitti → mx3000control

gianluca-nitti / mx3000control

Licence: MIT license
Perixx MX-3000 mouse unofficial configuration tool for Linux

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
Makefile
30231 projects
Batchfile
5799 projects
powershell
5483 projects

Projects that are alternatives of or similar to mx3000control

rogdrv
ASUS ROG userspace mouse driver for Linux
Stars: ✭ 41 (+105%)
Mutual labels:  hid, mouse
hidapi-rs
Rust bindings for the hidapi C library
Stars: ✭ 103 (+415%)
Mutual labels:  hid, hidapi
Ucr
Universal Control Remapper [Alpha]
Stars: ✭ 399 (+1895%)
Mutual labels:  hid, mouse
openinput
Open source firmware for input devices
Stars: ✭ 43 (+115%)
Mutual labels:  hid, mouse
Bthidhub
Bluetooth HID hub
Stars: ✭ 65 (+225%)
Mutual labels:  hid, mouse
Hidguardian
Windows kernel-mode driver for controlling access to various input devices.
Stars: ✭ 138 (+590%)
Mutual labels:  hid
Android Usb Gadget
Convert your Android phone to any USB device you like! USB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard. 🛠🛡📱
Stars: ✭ 118 (+490%)
Mutual labels:  hid
Karabiner Driverkit Virtualhiddevice
Stars: ✭ 108 (+440%)
Mutual labels:  hid
Bettercap
The Swiss Army knife for 802.11, BLE, IPv4 and IPv6 networks reconnaissance and MITM attacks.
Stars: ✭ 10,735 (+53575%)
Mutual labels:  hid
ES-Timer
A USB timer powered by Digispark ATtiny85 according to 🍅 pomodoro time management technique
Stars: ✭ 45 (+125%)
Mutual labels:  hid
python-hid-parser
Typed pure Python library to parse HID report descriptors
Stars: ✭ 31 (+55%)
Mutual labels:  hid
SerialPundit
Serial port communication in Java - FTDI D2XX, HID API, X/Y modem
Stars: ✭ 116 (+480%)
Mutual labels:  hid
Ble Hid Peripheral For Android
BLE HID over GATT Profile for Android
Stars: ✭ 143 (+615%)
Mutual labels:  hid
EspTinyUSB
ESP32S2 native USB library. Implemented few common classes, like MIDI, CDC, HID or DFU (update).
Stars: ✭ 375 (+1775%)
Mutual labels:  hid
MouseWheel
adjust the mouse scroll speed ubuntu
Stars: ✭ 24 (+20%)
Mutual labels:  mouse
Duckyspark
Translator from USB-Rubber-Ducky payloads to a Digispark code.
Stars: ✭ 107 (+435%)
Mutual labels:  hid
Streamdecksharp
A simple .NET wrapper for Stream Deck
Stars: ✭ 203 (+915%)
Mutual labels:  hid
gta-samp-mouse-only
Play GTA San Andreas Multiplayer with mouse only and no keyboard
Stars: ✭ 22 (+10%)
Mutual labels:  mouse
Mixxx
Mixxx is Free DJ software that gives you everything you need to perform live mixes.
Stars: ✭ 2,510 (+12450%)
Mutual labels:  hid
Authorizer
Authorizer is a Password Manager for Android. It emulates an HID keyboard over USB and enters your credentials on your target device. Additionally it supports OTP 🔑📴
Stars: ✭ 172 (+760%)
Mutual labels:  hid

mx3000control

Unofficial tool to configure the Perixx MX-3000 mouse on Linux (the official driver only supports Windows).

  • Uses HIDAPI to send HID feature report commands obtained by analyzing the Windows driver.
  • Supported features:
    • Setting DPI and X/Y sensivity
    • Setting RGB LED color, light intensity and pulsation effect
    • Configuring the mouse buttons by assigning them mouse functions (like left/right click, back/forward, DPI up/down, etc), single keyboard keys (you need to know the scancode; a list can be found, for example, here) or macros (same features available in the original Windows software; a macro can send keyboard key up/down events and wait delays)

Supported devices

As the name implies, this program is designed to be used with the Perixx MX-3000 mouse. Other mice with the same USB Vendor ID (0x04D9) and Product ID (0xA067) exist; I guess they use the same microcontroller and firmware since they have the same VID:PID pair, but I can't guarantee compatibility. You can test and let me know if you want. However, please always remember (even if using MX-3000) that these devices have an on-board non-volatile memory so there might be some chances to brick them (never happened during my tests with the MX-3000, though; when sending malformed commands, a power cycle always fixed everything). I take no responsibility for any damage you might cause to your devices.

Arch Linux package

If you are using Arch Linux, you can install this program from the AUR. Tha package is mx3000control-git. To use this program on a different distribution/system, see the Building section below.

Development notes

If you are interested in the process behind the development of this program, you may find DEVLOG.md interesting.

Building

  • You need a C compiler, pkg-config and the HIDAPI library (should be available from your distribution package manager).
  • Just run make to build; you can override the compiler by setting the CC environment variable (e.g. CC=clang make or CC=gcc make
  • The output is a single binary: ./mx3000control

Notice

By default, a regular user won't have access to the device. So you need to either run the program with sudo, or configure udev to grant the proper permissions to your user account for the USB device with Vendor ID 0x04D9 and Product ID 0xA067).

Usage examples

  • Set RGB LED color to orange: ./mx3000control setledcolor 255 127 0
  • Set led pulsation effect speed to slow: ./mx3000control setledpulsation slow (supported values: steady, slow, middle, fast, or numbers 1 through 4)
  • Set sensor DPIs to 8200 (the maximum value) ./mx3000control setdpi 8200 (supported values: 600, 1200, 2000, 3000, 4800, 6400, 8200) or ./mx3000control setdpi 7 (min: 1, max: 7)
  • Remap buttons: mx3000control setbuttons click menu middle-button forward backward dpi-up dpi-down led-color-switch (example configuration; see the in-program help for all the supported possibilities)
  • Remap buttons, and assign a macro to one of them: mx3000control setbuttons click menu middle-button volume-up volume-down macro-repeat-2-down-0x04-delay-500ms-up-0x04 key-0x05 media-play-pause (again, this is just an example); keyboard keys are identified by their scancode (lists here and here)
  • Run ./mx3000control help for more information.
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].