Releases: linkmodo/key_remapper
Release list
v2.3.0 — auto-hiding scrollbars, reset button, reworked Help
Key Remapper v2.3 — quality-of-life fixes on top of the v2.2 feature release.
📥 Install
Download KeyRemapper.exe below and run it. No Python, no installer.
First run: "Windows protected your PC"
Click More info then Run anyway. The executable is not code-signed (a certificate costs
money every year; this is a free project), so SmartScreen flags it — that is a statement about
the certificate, not about the file.
Verify you got exactly what was published here:
Get-FileHash .\KeyRemapper.exe -Algorithm SHA256883f407b5b61655076cc8e57d2bb50c1d2f74ba9e837bf16b2dfc09e34e4eff9
Prefer not to trust a binary at all? Build it yourself: pip install -r requirements.txt then
python build.py. The README documents what the app does with your
keystrokes — short
version: your typing is never logged, and there are no network connections.
✨ What's new in 2.3
- Scrollbars only show when there's something to scroll. Every panel hides its scrollbar
while the content fits and brings it back when it doesn't. - Reset everything to defaults — a button in Settings clears every mapping, blocked key
and Copilot action, restores the default settings, removes the run-at-logon entry, and
releases anything currently held down. - Nothing is blocked out of the box. A leftover development config meant
/could show up
pre-blocked on first run. Gone, with a test guarding against it. Downloaded builds were never
affected — that file was never part of a release. - Reworked Help/About — opens with what the app actually does, covers the newer features,
and puts the author credit, repository link and a Donate button at the end.
Everything from v2.2 is included: Copilot key control
(turn it back into Right Alt, Windows, Menu or Right Ctrl in one click), per-app profiles,
dual-role tap/hold keys, a pause hotkey, mouse side buttons, run at logon, and in-place editing.
Administrator rights are optional; you only need them for windows that themselves run
elevated (some games). Your settings live in %APPDATA%\KeyRemapper\.
Backed by 68 unit tests (python -m unittest discover -s tests).
Full changelog: v2.2.0...v2.3.0
v2.2.0 — Copilot key control, per-app profiles, dual-role keys
Key Remapper v2.2 — control the Copilot key, per-app profiles, dual-role keys.
📥 Install
Download KeyRemapper.exe below and run it. No Python, no installer.
First run: "Windows protected your PC"
Click More info then Run anyway. The executable is not code-signed — a certificate costs
money every year and this is a free project — so SmartScreen flags it. That is a statement about
the certificate and how many people have downloaded this file so far, not about the file itself.
Confirm you got exactly what was published here:
Get-FileHash .\KeyRemapper.exe -Algorithm SHA25644e158dd07c9a9b9d6c1ca109fbe19b2d546778de95515fb5bf35c52805b48a0
Would rather not trust a stranger's binary? Build it yourself — pip install -r requirements.txt
then python build.py. The README spells out what this app does with your
keystrokes: your typing
is never logged, and it makes no network connections.
Administrator rights are optional; you only need them for windows that themselves run
elevated (some games). Your settings live in %APPDATA%\KeyRemapper\.
🤖 Take back the Copilot key
The Copilot key isn't a real key — the keyboard firmware fires a hidden Shift+Win+F23 chord,
which is why "just block F23" does nothing and why swallowing it pops the Start menu.
The new Copilot Key tab detects the exact chord your laptop sends, then lets you:
- Give back the key it replaced — one click for Right Alt, Windows, Menu ▤ or
Right Ctrl - Disable it entirely, Start-menu side effect included
- Send any keys, launch a program or file, or open a website
✨ Also new
- Per-app profiles — scope any mapping or block to a single
.exe - Tap vs hold — CapsLock can send Escape when tapped and act as Ctrl when held
- Pause hotkey — suspend every mapping without stopping the remapper
- Mouse side buttons —
mouse3/mouse4/mouse5as sources - Run at logon, start in the tray, and a Settings tab
- Edit mappings in place with conflict warnings
- 🎯 Detect now uses the low-level hook, so Win and Copilot combinations are detectable
🐛 Fixed
These made previously advertised features silently do nothing:
- Modifier combinations never matched. Win wasn't tracked, and the hook's
VK_LSHIFTwas
compared against the genericVK_SHIFTthat key names parse to — so everyctrl+/win+
rule was dead, including v2.0's "blockwin+shift+f23". - Settings never persisted from the .exe. The config was written next to
__file__, which
in a one-file build is a temp folder Windows deletes on exit. Now%APPDATA%\KeyRemapper\,
migrating any existing config once. - The hook could be dropped by Windows — it was installed on a thread that then blocked,
exceedingLowLevelHooksTimeout. It now owns a dedicated message-pump thread. - A pointer bug in
dwExtraInfothat could fault on input injected by other apps. - Cross-thread UI callbacks were lost (
tkinter.after()off the main thread). - Logging restored —
%APPDATA%\KeyRemapper\key_remapper.log. - Administrator warnings on load removed.
Backed by 61 unit tests (python -m unittest discover -s tests).
Full changelog: 47ef2c0...v2.2.0