Configure the Endgame Gear OP1 8k v2 mouse on Linux via USB HID.
Find a file
creations 5a43da1a6f
All checks were successful
ci / clippy (push) Successful in 48s
ci / release (push) Successful in 18s
ci / fmt (push) Successful in 10s
trigger release on bare version tags, not just v-prefixed
2026-06-10 16:52:04 -04:00
.forgejo/workflows trigger release on bare version tags, not just v-prefixed 2026-06-10 16:52:04 -04:00
.github/workflows trigger release on bare version tags, not just v-prefixed 2026-06-10 16:52:04 -04:00
src fix config bugs, bump 0.2.0, migrate ci to forgejo actions 2026-06-10 16:24:58 -04:00
.gitignore Initial commit 2026-02-25 12:40:51 -05:00
60-endgamegear.rules Initial commit 2026-02-25 12:40:51 -05:00
Cargo.lock fix config bugs, bump 0.2.0, migrate ci to forgejo actions 2026-06-10 16:24:58 -04:00
Cargo.toml fix config bugs, bump 0.2.0, migrate ci to forgejo actions 2026-06-10 16:24:58 -04:00
README.md fix config bugs, bump 0.2.0, migrate ci to forgejo actions 2026-06-10 16:24:58 -04:00
rustfmt.toml Initial commit 2026-02-25 12:40:51 -05:00

egctl

Configure the Endgame Gear OP1 8k v2 mouse on Linux via USB HID.

Features

  • Read and display all current settings
  • Set DPI per level, with optional split X/Y
  • Set polling rate (1000/2000/4000/8000 Hz)
  • Configure lift-off distance, angle snapping, ripple control, motion sync
  • Remap buttons to mouse keys, keyboard keys, media keys, scroll, or CPI switching
  • Set per-button debounce and SPDT mode
  • Toggle slamclick and jitter filters
  • Factory reset

Install

Download a prebuilt binary from releases.

Or build from source:

cargo install --path .

Setup

Install udev rules for non-root access:

sudo cp 60-endgamegear.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

Unplug and replug the mouse after installing rules.

Usage

egctl info
egctl dpi 1600
egctl dpi 800 --level 2
egctl dpi -x 800 -y 1600
egctl dpi-levels 2
egctl rate 4000
egctl lod 2
egctl angle-snap on
egctl ripple off
egctl motion-sync on
egctl filter slamclick on
egctl filter jitter off
egctl debounce 1 8
egctl spdt 1 speed
egctl bind 1 mouse left
egctl bind 3 media play-pause
egctl bind 5 key 0x04
egctl bind 4 cpi-loop
egctl bind 5 disable
egctl reset
egctl dump

License

AGPL-3.0-or-later