{"id":18834367,"url":"https://github.com/pzl/mx2000drv","last_synced_at":"2025-09-05T16:06:36.789Z","repository":{"id":26433718,"uuid":"29884316","full_name":"pzl/mx2000drv","owner":"pzl","description":"Perixx MX 2000 IIB Gaming Mouse Linux Driver","archived":false,"fork":false,"pushed_at":"2021-12-03T11:52:41.000Z","size":91,"stargazers_count":10,"open_issues_count":7,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-14T05:16:55.422Z","etag":null,"topics":["c","driver","linux-driver","mouse"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pzl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-26T22:11:38.000Z","updated_at":"2023-09-06T14:59:43.000Z","dependencies_parsed_at":"2022-08-29T06:00:59.943Z","dependency_job_id":null,"html_url":"https://github.com/pzl/mx2000drv","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/pzl/mx2000drv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Fmx2000drv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Fmx2000drv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Fmx2000drv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Fmx2000drv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pzl","download_url":"https://codeload.github.com/pzl/mx2000drv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Fmx2000drv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273782337,"owners_count":25167130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","driver","linux-driver","mouse"],"created_at":"2024-11-08T02:12:07.875Z","updated_at":"2025-09-05T16:06:36.708Z","avatar_url":"https://github.com/pzl.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"**mx2000drv** is a Linux driver for the Perixx MX-2000 series gaming mice. It is capable of setting all the configurations for the mouse (remapping buttons, backlight colors and times, macros, sensitivity, DPI) and saving to profiles in the onboard memory.\n\nInstallation\n----------------\n\n**Dependencies**: **[HIDAPI](http://www.signal11.us/oss/hidapi/)** for communicating with the mouse. Version 0.5.0 and below used only libusb, but it was discovered this was [not compatible with Mac](http://www.libusb.org/ticket/89) when using HID devices (including this mouse). \n\nOn Mac, you must install a very recent version of HIDAPI, probably using the [github](https://github.com/signal11/hidapi) version and installing from source. 0.8.0 does not include the changes necessary to attach to the right USB interface of the mouse.\n\n1. `make`\n2. `sudo make install`\n\nTo use this right after installing, you should do *one* of the following (to use the driver without being root):\n\n* Unplug and re-plug-in the mouse\n* Restart\n* run:\n\n```\nsudo udevadm control --reload-rules\nsudo udevadm trigger\n```\n\nUsage\n-----\n\n**mx2000drv** [OPTIONS] COMMAND [ARGUMENTS]\n\n## Options\n- `-h`, `--help`\n- `-p`, `--profile`=_PROFILE_\n     There are 4 mouse configurations stored in memory, one of them is active at any given time. Use this option to target a particular mouse profile to read from or change. When not specified, assumes the current active configuration.\n- `-v`, `--verbose`\n- `-V`, `--version`\n\n## Commands\n### Configuration Commands\ninspecting or changing mouse profile settings. Provide all arguments to change a setting to be that value. Leave off the final optional argument to retrieve the current value of that setting.\n\n- **profile** [`PROFILE`]  \n    The active mouse profile, an integer 1-4. The `-p` option is ignored for this setting.\n- **button** `NUM` [`ASSIGNMENT`]  \n    Map the specified button number to perform `ASSIGNMENT` when clicked. See the man page for the assignment of mouse buttons to numbers.\n- **macro** `NUM` [`SEQUENCE`]  \n    Map button to perform key `SEQUENCE` when clicked. See the man page for the assignment of mouse buttons to numbers.\n- **color** [`RGB`]  \n    Mouse backlight color as 6-character hexadecimal. Mostly. When breathe is enabled, each pair of hex characters also controls the fade cycle period of each LED color. So mixed values will end up with a bit of a color cycle between them. Compare `00FFFF` with `0084FF`\n- **breathe** [`ON`|`OFF`]  \n    Whether the mouse LEDs fade and pulse over time\n- **cycle** [`ON`|`OFF`]  \n    Cycle through the RGB combinations, including intermediates (yellow, cyan, magenta), only for the LEDs enabled by **color**. So `FFFFFF` will cycle through all colors and intermediates. `00FFFF` will not show red, or magenta, but will show all others.\n- **lit** [`TIME`]  \n    Number of seconds the backlight is steady on when **breathe** is enabled. Min: 0, Max: 15\n- **dark** [`TIME`]  \n    Number of seconds the backlight is off when **breathe** is enabled. Min: 0, Max: 15\n- **pulse** [`TIME`]  \n    Number of seconds the backlight takes to transition from lit to dark, when **breathe** is enabled. Min: 0, Max: 63\n- **standby** [`TIME`]  \n    Enable backlight `TIME` seconds after standby mode has come on. Min: 0, Max: 63\n- **backlight** [`ON`|`OFF`]  \n    Enable or disable the backlight mouse LEDs\n- **sensitivity** `X`|`Y` [`VALUE`]  \n    The pointer sensitivity, a value between -5 and 5, inclusive.\n- **accel** [`SPEED`]  \n    The mouse acceleration in milliseconds. Min: 0, Max: 255.\n- **dpi** `PRESET` [`VALUE`]  \n    Sets the resolution of a given DPI preset. `PRESET` must be a number 1-4. `VALUE` must be between 100 and 5600 in increments of 100\n- **dpiset** [`PRESET`]  \n    Sets or retrieves the active DPI preset (1-4).\n- **poll** [`RATE`]  \n    Mouse polling rate in Hz: 125, 250, 500, 1000\n\n### Bulk Commands\n\n- **reset**  \n    Resets all mouse configurations, settings, macros, and profiles to factory default. Similar to a recovery mode.\n- **dump** `FILE`  \n    Save the entire mouse configuration including all settings, macros, and profiles to a `FILE`. `-` may be provided in place of a file name for stdout.\n- **load** `FILE`  \n    Load the entire mouse configuration including all settings, macros, and profiles from a `FILE` into memory. `-` may be provided in place of a file name for stdin.\n\n## Examples\n\nGet current profile: `mx2000drv profile`  \nSet the current profile to 3: `mx2000drv profile 3`  \nSet the backlight of the current profile to blue: `mx2000drv color 0000ff`  \nSet the polling rate of profile 2 to 500Hz: `mx2000drv -p 2 poll 500`  \nGet profile 1's X sensitivity: `mx2000drv -p 1 sensitivity x`  \nGet current acceleration value: `mx2000drv accel`  \nSave current mouse settings to file: `mx2000drv dump mem.bin`  \nLoad settings into mouse: `mx2000drv load mem.bin`  \nPipe current mouse settings into a hex viewer: `mx2000drv dump - | xxd`\n\nNotes\n---------\n\n* The `button` and `macro` commands are **not yet** complete. See [Issue #3](https://github.com/pzl/mx2000drv/issues/3) for status. As of writing, the `button` command accepts a 4-character hex sequence as input that corresponds to the USB keyboard scan codes for a key. This is not going to be the final interface. The `macro` command is entirely non-functional.\n* This is a userspace driver, not for use as part of the kernel\n* This driver is only for settings configuration. It does not interact with the pointer or keyboard interfaces of the mouse. These will continue to use the default HID driver.\n\nContributing\n--------------\n\nPlease feel free to open issues with improvements, or suggestions, bugs, etc. Pull requests are also welcome. Opening issues to discuss patches and features first are encouraged.\n\n\nLicense\n------------\n```\nMX2000DRV - portable driver for the MX-2000 II gaming mouse\nCopyright (C) 2015  Dan Panzarella\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; version 2 of the License.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n```\n\n\nThis software and all files included are licensed under the GPL v2. See `doc/LICENSE` for the full terms.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpzl%2Fmx2000drv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpzl%2Fmx2000drv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpzl%2Fmx2000drv/lists"}