ULX-Reverse is a simple, cross-platform CLI application that reverse-engineers and enhances the functionality of Finalmouse's Xpanel software.
This project is not affiliated with Finalmouse.
- Cross-Platform Compatibility: Works seamlessly on macOS and Linux (Dealing with Windows driver issues).
- Compact Size: The entire application compiles to just 300KB on Windows.
- Custom DPI Settings: Set your mouse DPI to any value, not just presets.
- Settings Share Codes: Easily share and apply mouse configurations using unique codes.
- Full Functionality: Replicates all features of the original software, except firmware updates.
Note
You only have to do these steps if you plan on compiling the code yourself.
-
Ensure you have Rust installed on your system. If not, install it from rustup.rs.
-
Clone the repository: git clone https://github.com/johnklucinec/ulx_reverse.git
-
Navigate to the project directory: cd ulx_reverse
-
Build the project: cargo build --release
-
The compiled binary will be available in the
target/releasedirectory.
Important
According to libusb wiki under How to use libusb on Windows|Known Restrictions:
HID keyboards and mice cannot be accessed using the native HID driver as Windows reserves exclusive access to them.
The Windows executable will remain available, but it will be non-functional until an alternative solution is implemented.
To run ULX-Reverse, use the following command:
./ulx_reverse
If you are on Linux, make sure to add these Finalmouse ULX udev rules. On macOS, there are no udev rules, so you have to run the app with sudo privileges.
ULX-Reverse allows you to set custom DPI values beyond the presets offered by the official software:
Share your mouse configuration easily with others:
- Generate a share code:
- Apply a shared configuration:
Note
The default settings for generating a share code are 4000 Hz, 1600 DPI, motion sync off, battery level indication on, and 1 mm LOD. Adjust settings to personal preference, then select option 2 to generate the code. You can also change the DPI on the fly by modifying the last four digits of the share code.
We welcome contributions to ULX-Reverse! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with a clear commit message.
- Push your changes to your fork.
- Submit a pull request to the main repository.
This project is licensed under the MIT License - see the LICENSE file for details.


