Releases: ililim/dual-key-remap
Release list
v0.12
Instructions
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
0.12
Added
when_timeoutdirective: an extra remap action that fires immediately when the key has been held alone pasttimeout_ms(e.g.,when_timeout=CAPSLOCKto get a real Caps Lock by holding). Supports chords and sequences.
Changed
- Directives after a completed remap block now modify that remap, so
when_timeoutortimeout_mscan be added belowwith_other.timeout_msis global only when set at the top of the config, before anyremap_key.
Fixed
- Setting names are now case-insensitive (e.g.,
REMAP_KEY=CAPSLOCKworks). Previously only key values were. - Config error messages now stay on screen instead of flashing and closing immediately.
v0.11
Instructions
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
0.11
Added
todirective for simple 1:1 key remapping (e.g.,to=ESCAPE). Supports chords and sequences.
Changed
- Elevated process priority to REALTIME to virtually eliminate missed hooks under high CPU load.
Fixed
- Fixed potential buffer overflow in error message formatting.
- Config key names are now case-insensitive (e.g.,
remap_key=capslockworks). - Fixed config reload leaving stale held keys from previous remappings.
v0.10
Instructions
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
0.10
Added
- Multi-key chords:
when_aloneandwith_othernow support multiple keys separated by+(e.g.,with_other=CTRL+ALT+SHIFTorwhen_alone=CTRL+ESC). Keys are pressed simultaneously and released in reverse order. - Sequential steps:
when_alonesupports comma-separated steps (e.g.,when_alone=ESCAPE,ESCAPE). Each step is pressed and released before the next. Can be combined with chords:when_alone=CTRL+C,CTRL+V. - Tap timeout: global
timeout_mssetting suppresseswhen_aloneaction if key held longer than specified milliseconds (e.g.,timeout_ms=500). - Tray menu: "Edit config" button opens config.txt in your default editor.
- Modifier suppression:
remap_key=F23-LEFT_WIN-LEFT_SHIFTsuppresses companion modifiers when the remap key activates, fixing Copilot key support.
Fixed
- Fixed incorrectly firing
when_aloneaction on orphaned key UP events when the OS skips the hook for the preceding DOWN (e.g. after prolonged keyboard inactivity). - Tray icon now retries up to 3 times (60 second intervals) if it fails to load on startup, fixing issues when launching during early boot before Explorer's system tray is ready.
- Made config path detection robust to work regardless of exe name.
- Improved stability and robustness (fixed hook callbacks, cleanup on exit, and config reload race conditions).
v0.9
Instructions
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
0.9
Added
- Added a tray icon: you can now pause/reload/exit dual-key-remap from the tray icon.
- New config option
show_tray=0/1to disable/enable the tray icon.
Note: I'm getting reports that Windows Defender is blocking downloads of v0.9 for some (but not everyone). Perhaps the addition of tray icon triggers the algorithm? I've submitted it to review to the Windows Defender team. If you are affected for now can download v0.8 or build from source until defender definitions get updated.
v0.8
Instructions
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
Changelog
Added
- We now turn capslock off when launching (if it's being remapped) to avoid you being unable to toggle it.
Changed
- Added more keys: Numpad, pause, media keys, F13-F24, various brackets and some other rare keys
- Added support for a NOOP key, useful for when you want to rebind a key to do nothing
- Improved debug mode with clearer logs. In addition if the DEBUG env var is set DKR will launch in debug mode.
Fixed
- Support sending extended key metadata for key events that support it (notably RIGHT_CTRL). This should resolve an issue where AHK was not able to distinguish between LEFT_CTRL and RIGHT_CTRL sent by dual-key-remap.
v0.7
Instructions
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
Changelog
Fixed
- Dual-key-remap will no longer show a blank console window when launched via the Windows Terminal app. This issue mainly affected Win11 users due to Terminal replacing Command Prompt as the default console application.
- A console window will still show up if you specify
DEBUG=1in your config.
Version 0.6
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
Changelog
Changed
- Improve how we send inputs, Dual-key-remap should now work in more applications and locales!
- Removed virtual keycodes as all key inputs are now sent as virtual keycodes. If you relied on this previously to make the app work you can use the regular keycodes again.
- Dual key remap will no longer try to automatically remap both modifiers keys if you don't specify whether it's the left or the right key. If you don't provide a side then it will rebind the LEFT key by default. For those that need both keys remapped, you can create two remappings in your config.
- Renamed and cleaned up the available key codes. You may have to update your config.
- If a keycode that you need is missing open a new issue to report it.
Fixed
- Remappings bound to left or right modifiers will no longer be triggered by both left and right keys.
Version 0.5
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
Changelog v0.5
Changed
- Mouse scrolling will now trigger the
with_othermodifier (CTRLby default).
Version 0.4
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
Changelog v0.4
Added
- Dual-key-remap now supports remapping multiple keys.
- Mouse presses (keydown) will now work with the dual key. They trigger the
with_othermodifier (CTRLby default).
Changed
- The dual key will only become the
with_otherkey when keys (or mouse) is pressed down as opposed both up and down. This means that fast typists should no longer experience unexpected results due to key rollover. - Some keynames had incorrectly capitalized names, this has now been fixed (i.e. SCROLLLOCK instead of ScrollLock). If you remapped one of these keys you will have to update your config to use the all capitalized names.
Fixed
- The config will now always be loaded from the same directory as the executable instead of the directory the executable was launched from.
Version 0.3
Download dual-key-remap.zip to install. Installation instructions can be found in the README.
Changelog v0.3
Added
- We now send hardware scan codes by default instead of virtual key codes. These inputs aren't intercepted by DirectX, and as a result work better in a lot of applications (especially games).
- Now both hardware inputs and virtual inputs are supported in the config, for more information see the config.txt documentation.
- Added additional capabilities to handle both left and right modifier keys.
- Added logging support by setting
debug=1in config.txt.