Install SnapKeyNext
Choose the installed edition when SnapKeyNext must work with elevated games. It runs with administrator privileges and includes Start menu integration. Choose the portable ZIP for a self-contained, standard-user copy whose files remain in the data folder beside the executable. Portable builds cannot control elevated applications.
SnapKeyNext targets Windows 11 x64 with best-effort Windows 10 x64 compatibility.
Quick Start
- Launch SnapKeyNext and open the Dashboard.
- Confirm that the program is enabled. The large state button enables or disables all input processing immediately.
- Open Modules to review Input Timing and the optional movement modules. Disabled modules remain available here for setup.
- Keep the default Last Input Wins behavior, or enable SOCD and select a different resolution mode.
- Select Save and apply after making changes.
Closing or minimizing the window keeps SnapKeyNext in the system tray. Use Quit SnapKeyNext from the tray menu when you want to release synthesized keys and exit completely.
Read the Overview
The Dashboard keeps the current application state in one place:
- Processing shows whether the entire program is enabled and provides the state-specific enable or disable button.
- Application Scope shows whether input is active for all applications or the selected foreground profile.
- Modules lists enabled modules first in green, followed by disabled modules in gray.
Applications, Modules, and Settings are always available from the main navigation. Statistics is enabled by default. Debug appears above Settings only while its module is enabled, but both remain visible in the Modules page.
Configure Modules
Modules are built into SnapKeyNext and configured from one reusable page. Input Timing and Statistics start enabled; every other optional module starts disabled.
| Module | Default | Purpose |
|---|---|---|
| Input Timing | Enabled | Adds the configured delay to synthesized actions. |
| Statistics | Enabled | Keeps bounded daily timing aggregates locally. |
| Delayed | Disabled | Adds a neutral gap between a release and replacement press. |
| SOCD | Disabled | Selects Last Input Wins, First Input Wins, Neutral, Fixed Priority, or Absolute Priority. |
| Input Tuning | Disabled | Conditions chatter, short presses, overlaps, and held-key restoration. |
| Debug | Disabled | Shows bounded live diagnostics and timing guidance. |
Timing sliders cover 0–500 ms and devote extra travel to commonly used values from 0–50 ms. Type an exact whole-millisecond value for settings up to 1000 ms. Use --timing-slider-max-ms 50 when you want the entire slider dedicated to smaller values.
Configure Per-Game Profiles
SnapKeyNext works in all applications by default, with foreground-process detection off. Use the selected activation mode to apply a named category only while one of its configured executables is active.
[activation]
mode = "selected"
[activation.categories."Competitive games"]
executables = ["ExampleGame.exe"]
keys = [["A", "D"], ["W", "S"]]Open Applications to add a running game and edit category key groups, SOCD, or Input Tuning overrides. Category overrides can also change Input Timing, Delayed, and Statistics settings without changing their global defaults.
Check for Updates
SnapKeyNext performs one bounded update check at startup. Use the refresh button beside the update status, or Check for updates in the tray menu, to run the same manual check. Manual checks have a five-second cooldown and do not send Diagnostics data.
When a newer stable or opted-in nightly build is available, the status shows its version and release time and reveals an update button. SnapKeyNext downloads and verifies the package only after you select that button.
Control Diagnostics
Diagnostics is enabled unless you explicitly disable it inconfig.toml:
diagnostics = { enabled = false }It sends anonymous basic system and startup performance information to help improve the application. It never sends captured keys, configuration contents, hardware identifiers, or raw input timing samples. Current clients use the diagnostics API field; the legacytelemetry field remains accepted for older builds. Read the Privacy page for the complete data and retention policy.
Program Arguments
Overrides apply only to the current process. Both--option value and --option=value forms are accepted.
| Argument | Purpose |
|---|---|
--config-file <path> | Use another schema-version-1 configuration file. |
--language-file <path> | Load custom UTF-8 translations with English fallback. |
--timing-slider-max-ms <value> | Use a smaller slider range for fine control. |
--initial-window-width--initial-window-height--minimum-window-width--minimum-window-height | Override initial or minimum window dimensions. |
--minimum-timing-ms--maximum-timing-ms | Override the accepted timing-input bounds. |
--statistics-refresh-ms <value> | Override the local Statistics refresh interval. |
--startup-api-host--startup-api-path | Use another compatible startup API endpoint. |
--help-url--releases-url | Override the Help and Releases targets. |
--help or -h | Show every supported option, including internal Windows message and timer identifiers. |