Repository navigation
Releases: clevim/OpenSharkX11
Release list
v2.0.1
v2.0.0
OpenSharkX11 v2.0.0 — Rewritten on Tauri 2 + Rust
This release replaces the Electron 34 + Node.js stack with Tauri 2 and a Rust
backend. Same features, a third less memory: measured side by side on the same
machine, idle with the mouse connected, the app now sits at 256 MB against
385 MB before (proportional set size across the whole process tree), and runs
3 processes instead of 8. The Arch package is a 5.9 MB self-contained
binary instead of pulling in a full Electron runtime; the Debian package is
6.3 MB.
The whole device layer was rewritten in Rust — USB via rusb, Bluetooth LE via
BlueZ over D-Bus — with the protocol builders ported one-to-one from the previous
TypeScript driver and verified byte for byte against captured traffic.
What's new
- Native Rust backend: no Node.js runtime, no
asar, no bundled Chromium - React 19 renderer served straight from the binary
- Smaller install and a much lighter memory footprint
Fixes
- DPI stage colors were off by one. The active stage index is 0-based
internally but the firmware expects 1–6, so the mouse always sat one stage
behind the UI — each stage lit up with the previous stage's color, the first
stage was unreachable and the sixth was never sent. - Applying settings could hang for minutes. The interrupt polling thread and
the control-transfer path shared an unfair mutex on the USB handle, starving
writes. Lighting, remap and DPI changes now land in about a second. - Release builds no longer start on a blank window.
Still tri-mode
2.4 GHz dongle, wired USB-C and Bluetooth — DPI stages, RGB lighting, button
remapping, polling rate, debounce, profiles and battery monitoring.
Install
- Debian/Ubuntu —
sudo dpkg -i OpenSharkX11_2.0.0_amd64.deb - Arch/CachyOS —
opensharkx11oropensharkx11-gitfrom the AUR - Any distro — download the AppImage,
chmod +x, run
Requires libusb, webkit2gtk-4.1 and gtk3. The packages install a udev rule
so the mouse is reachable without root; the AppImage relies on one already being
present.
1.0.0
OpenSharkX11 v1.0.0
First public release of OpenSharkX11 — a native Linux configurator for the Attack Shark X11 tri-mode mouse. No Windows software, no Wine.
Features
Connection
- Tri-mode auto-detect: searches 2.4 GHz dongle → USB-C cable → Bluetooth 5.0 (BLE) in sequence
- Dedicated BT button for direct Bluetooth connection when disconnected
- System tray with connection status and battery percentage
- Tray "Search mouse" action reconnects without opening the window
DPI
- 6 independent DPI stages — up to 26,000 DPI
- Individual RGB color per stage
- Angle Snap and Ripple Control toggles
- Physical DPI button on mouse updates the active stage in real time
Lighting
- 7 modes: Off · Static · Breathing · Neon · ColorBreathing · StaticDPI · BreathingDPI
- Animation speed control (5 levels)
- Global color picker with 12 quick swatches
- Automatic LED override at critical battery level
Buttons
- Remap all 8 buttons: left, right, middle, forward, backward, DPI, and extras
- Supported actions: native mouse functions, keyboard shortcuts, multimedia keys
- Works via 2.4 GHz dongle, USB-C, and Bluetooth
Performance
- Polling rate: 125 / 250 / 500 / 1000 Hz
- Locked to 125 Hz in USB-C wired mode (hardware limit)
- Locked to 125 Hz in Bluetooth mode (BLE limit)
- Debounce: 4–50 ms (2 ms steps)
Profiles
- Save, load, and delete named configuration profiles
- Profiles store DPI, lighting, button mappings, and performance settings
Battery
- Real-time battery percentage in UI and system tray
- Auto-refresh every 5 minutes
- Critical battery LED override (configurable color)
Interface
- Cockpit-style frameless window with sidebar mouse diagram
- Accent color syncs with the active DPI stage RGB
- 3 languages: Português · English · 中文
- Live mode: lighting and DPI preview without clicking Apply
Bluetooth (BLE) — confirmed working
| Feature | Works via BLE |
|---|---|
| DPI configuration | ✅ |
| Lighting modes | ✅ |
| Debounce | ✅ |
| Button remapping | ✅ |
| Polling rate | ⛔ max 125 Hz (fixed) |
Installation
Arch / CachyOS (recommended)
yay -S opensharkx11-gitAppImage / .deb
Download from the releases page and install the udev rule:
sudo cp aur/99-attack-shark-x11.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm triggerRequirements
- Electron 34 · libusb · BlueZ (for BLE)
- BLE requires the mouse to be paired first:
bluetoothctl pair <MAC>
Protocol
Full reverse-engineering notes for the HID and BLE protocols:
docs/protocol/PROTOCOL_EN.md