A cross-platform context-aware key remapper.
1.1k
Stars
42
Forks
14
Open issues
11
Contributors
AI Analysis
keymapper is a cross-platform, context-aware keyboard remapper that lets users redefine keys and shortcuts systemwide or per-application through a single configuration file. It supports GNU/Linux, Windows, macOS, and FreeBSD, with features including mouse button mapping, application launching, and dynamic configuration reloading. This tool is purpose-built for power users, accessibility advocates, and keyboard enthusiasts who need fine-grained control over input devices — not for general-purp...
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Lightweight cross-platform key remapper with context awareness, steady maintenance since 2019
keymapper is a C++ daemon for remapping keyboard input and managing shortcuts across Windows, macOS, Linux, and FreeBSD. It enables per-application key rebinding through a human-readable configuration file and supports context-aware rules based on window title, process, or input device. Adoption appears limited to power users and keyboard enthusiasts; real-world usage is not well-documented. The project is actively maintained with recent commits but grows modestly compared to higher-starred alternatives in the same category.
Created in March 2019 by houmain, keymapper emerged as a response to the need for a unified, cross-platform key remapping tool that could work consistently across different operating systems. It has evolved incrementally with steady refinements rather than rapid feature expansion.
The project has accumulated 1,119 stars over ~7 years with relatively flat growth (6 stars in last 7 days as of July 2026). This suggests either a mature, stable user base with limited new adoption, or limited awareness in the broader keyboard remapping market. The presence of multiple competing projects with substantially higher star counts suggests keymapper occupies a smaller niche despite similar functionality.
Adoption not verified. README does not document known production deployments, organizations, or large-scale usage. No case studies, testimonials, or deployment metrics are provided. The modest star count and slow recent growth do not confirm active real-world use, though they do not rule it out either.
Based on README, keymapper appears to follow a daemon-plus-config-file architecture: a background service (keymapperd) reads declarative configuration files and applies key transformation rules. Context awareness is built into the mapping logic, allowing conditionals based on window metadata or input device. The configuration syntax uses a simple arrow notation (input >> output) with support for nested modifier groups, sequential and simultaneous key combinations, and string literals for character typing. Likely uses low-level OS APIs for keyboard interception on each supported platform.
Not documented in README. No mention of unit tests, integration tests, or CI/CD test reporting beyond a build badge.
Last push 2026-06-14 (20 days before analysis date), indicating active maintenance. Build workflow badge present, suggesting CI/CD is in place. Issue tracker appears monitored. Commits are recent and regular, but update frequency is not specified in README. Project does not appear abandoned, but update cadence is moderate rather than rapid.
ADOPT IF: you need cross-platform key remapping (Windows, macOS, Linux, FreeBSD) with per-application context rules and want to manage all shortcuts in a single declarative file. The syntax is human-readable and the project is actively maintained. AVOID IF: you require strong community support, extensive third-party documentation, or verified production deployment at scale—adoption is not well-documented and the project remains relatively unknown outside keyboard enthusiast circles. MONITOR IF: you are evaluating it for a new deployment; verify compatibility with your specific OS and application, and assess whether the modest community size poses a risk if you need community support or bug fixes.
Independent dimensions
Mainstream potential
3/10
Technical importance
6/10
Adoption evidence
2/10
- Adoption is not verified in README or public documentation, making it difficult to assess real-world reliability or community responsiveness.
- Star count and growth lag significantly behind competing projects (kanata, input-remapper, xremap), which may signal lower visibility or less active community evangelism.
- Test coverage not documented; no transparency on how thoroughly the tool is tested across supported platforms.
- Cross-platform support (Windows, macOS, Linux, FreeBSD) introduces maintenance complexity; a single maintainer or small team may struggle with platform-specific bugs.
- Configuration file language is custom; learning curve and potential incompatibility if project is abandoned or unmaintained.
keymapper likely remains a stable niche tool for users who prioritize unified cross-platform configuration over community size. Barring major new features or marketing efforts, it will probably continue accruing stars slowly. The presence of larger competitors suggests it may never achieve mainstream adoption, but active maintenance and clear scope make it a reliable choice for specific use cases.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- C++
- License
- GPL-3.0
- Last updated
- 5d ago
- Created
- 89mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Repeat Wheel(Up/Down) while key held
Support matching Wayland layer-shell namespaces in contexts
When using remote desktop, keymapper fails to capture keyboard events.
run alongside karabiner elements ?
Bug [Windows]: `keymapperd` don't run when launched from Task Scheduler
Open pull requests
No open pull requests.
Top contributors
Recent releases
Similar repos
keymapperorg/KeyMapper
Key Mapper is an Android app that enables users to remap buttons on phones,...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
1.1k | +3 | C++ | 8/10 | 5d ago |
|
|
2.5k | — | Kotlin | 7/10 | 1d ago |
|
|
2.1k | — | Rust | 8/10 | 1w ago |
|
|
7.6k | — | Rust | 8/10 | 2d ago |
|
|
5.8k | — | Python | 8/10 | 4d ago |
|
|
1.1k | — | Python | 7/10 | 1d ago |
kanata has ~6.8× the star count and is more actively discussed in keyboard enthusiast communities. Both support cross-platform remapping; kanata is more heavily used in the custom keyboard/QMK ecosystem. kanata's higher stars may reflect stronger community visibility rather than superior capability.
Larger Linux-focused user base. Python implementation may be more accessible for modification but potentially less performant. input-remapper appears to dominate Linux remapping discussions; keymapper aims for broader cross-platform consistency.
Similar scope but lower adoption than kanata and input-remapper. Both keymapper and xremap serve users wanting systemwide context-aware remapping; xremap has ~1.9× keymapper's stars.
Nearly identical star count to keymapper. Both are niche projects. Toshy focuses on keyboard layout switching; keymapper is more general-purpose remapping.
Android-focused tool; different platform, so not a direct competitor. Demonstrates that 'keymapper' naming appears in multiple distinct projects, which may dilute searchability for houmain's version.