mouse_m908/README.md

114 lines
4.1 KiB
Markdown
Raw Normal View History

2019-11-08 17:09:17 -07:00
# mouse_m908
2020-04-19 08:21:04 -06:00
Control the Redragon M908 Impact gaming mouse from Linux, BSD and Haiku
2019-11-08 17:17:19 -07:00
2020-03-20 16:47:17 -06:00
**Disclaimer: This software is not supported by the manufacturer of the hardware in any way, and relies completely on information from reverse-engineering. There is no warranty, especially in case of damage to the hardware.**
## Status
All settings from the official software are implemented, except repeating macros, which seems to be broken in the official software and is therefore currently disabled in this program.
2020-04-03 09:57:53 -06:00
The mouse has a VID of 0x04d9 and PID of 0xfc4d, if you have a compatible device sold under a different name, or with a different VID or PID, please let me know so the readme can be updated.
2019-11-08 17:21:11 -07:00
## Installing
2020-02-08 15:10:16 -07:00
### Linux
2019-11-08 17:17:19 -07:00
- Install the dependencies:
2020-05-14 13:46:58 -06:00
- libusb (On some distributions (e.g. Ubuntu) a dev package is required)
2020-02-07 21:00:14 -07:00
- Clone this repo or download a release and run
2020-03-17 14:15:07 -06:00
```
2020-03-17 14:07:19 -06:00
make
2019-11-08 17:17:19 -07:00
sudo make install
2020-03-17 14:15:07 -06:00
```
2019-11-08 17:17:19 -07:00
- Restart to get userspace access to the mouse via the installed udev rule
2019-11-30 16:09:48 -07:00
- Uninstall with
2020-03-17 14:15:07 -06:00
```
2019-11-30 16:09:48 -07:00
sudo make uninstall
2020-03-17 14:15:07 -06:00
```
2019-11-08 17:17:19 -07:00
2020-02-08 15:10:16 -07:00
### OpenBSD
2020-02-10 07:24:46 -07:00
- Install dependencies: libusb1
2020-02-08 15:10:16 -07:00
- Clone this repo and compile with
```
2020-04-19 07:41:45 -06:00
make CC=clang++
2020-02-08 15:10:16 -07:00
```
2020-04-19 07:41:45 -06:00
- Run with ``./mouse_m908`` or optionally copy the files to the correct places (take a look at ``make install``)
2020-02-08 15:10:16 -07:00
- The --kernel-driver option is required
2020-04-19 08:21:04 -06:00
### Haiku
- Install dependencies: libusb and libusb_devel
- Clone this repo and compile with
```
make
```
- Run with ``./mouse_m908``
- The --kernel-driver option is required
2020-02-08 15:10:16 -07:00
### Other platforms
2020-05-09 18:43:08 -06:00
Other platforms are not tested, however as long as the dependencies are available there is no special reason they should not be compatible. If you (tried) to compile on a platform that is not listed above, please report your results so this file can be updated (and potential bugs can be fixed).
2020-02-08 15:10:16 -07:00
2019-11-08 17:21:11 -07:00
## Usage
2019-12-07 17:52:41 -07:00
The settings are stored in a file and applied all at once (except macros, see below). See example.ini and keymap.md
2019-11-08 17:17:19 -07:00
2019-11-30 16:11:46 -07:00
- Apply the example configuration:
2019-11-08 17:17:19 -07:00
``
mouse_m908 -c example.ini
``
2020-05-09 15:36:23 -06:00
- Read the configuration from the mouse and store it in config.ini:
``
2020-05-11 11:02:26 -06:00
mouse_m908 -R config.ini
2020-05-09 15:36:23 -06:00
``
2019-11-08 17:17:19 -07:00
- Set active profile to number 3:
``
mouse_m908 -p 3
``
- Get usage info:
``
mouse_m908 -h
``
2019-12-07 17:52:41 -07:00
- Send macro example.macro to slot 1:
``
mouse_m908 -m example.macro -n 1
``
2020-05-13 11:28:09 -06:00
- Send all macros from example.ini:
``
mouse_m908 -m example.ini
``
2019-12-07 17:52:41 -07:00
### Macros
2020-05-13 11:28:09 -06:00
There is space for 15 macros on the mouse, these are shared over all profiles. Each macro can hold up to 67 actions, any further actions get ignored.
There are two file formats in which macros can be specified, one macro per file (the older type) and multiple macros as comments in the config.ini file (as produced by ``mouse_m908 --read``).
To set a macro to a specific button:
2019-12-07 17:52:41 -07:00
1. Create a file containing the macro actions
2. Add macro⟨N⟩ to the button mapping configuration to set a button to the ⟨N⟩th macro
2020-05-13 11:28:09 -06:00
3. Apply the configuration: ``mouse_m908 -c ⟨config.ini⟩``
4. Depending on the file format:
- older type: Apply the specific macro: ``mouse_m908 -m ⟨macrofile⟩ -n ⟨N⟩``
2020-05-13 11:32:09 -06:00
- newer type: Apply all macros: ``mouse_m908 -m ⟨config.ini⟩``
2020-05-13 11:28:09 -06:00
2019-12-07 17:52:41 -07:00
#### Macro file
Each line contains an action and a parameter separated by a tab. Supported actions are:
- down ⟨key⟩
- up ⟨key⟩
2019-12-10 15:45:36 -07:00
- delay ⟨1-255⟩
2019-12-07 17:55:35 -07:00
2020-05-13 11:28:09 -06:00
example.macro for an example of the older file format, example.ini for an example of the newer format, keymap.md section Keyboard keys/Keys for a list of recognized Keys. Supported mousebuttons (up and down):
2019-12-10 15:45:36 -07:00
- mouse_left
- mouse_right
- mouse_middle
2019-11-08 17:17:19 -07:00
2020-02-08 15:10:16 -07:00
### --bus and --device options
2020-02-07 20:34:17 -07:00
With these options the USB bus id and device number can be specified. This is useful if there are multiple devices with the same vendor and product id, or if the particular device has a different vendor or product id that is not expected by this software.
2020-02-08 15:10:16 -07:00
### --kernel-driver option
On some systems libusb might not be able to detect or detach kernel drivers, this results in a failure because the mouse can not be opened. This options skips this step.
2020-03-20 16:47:17 -06:00
2020-03-28 11:10:12 -06:00
## License
2020-03-20 16:47:17 -06:00
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.