Skip to content

Releases: ililim/dual-key-remap

v0.12

Choose a tag to compare

@ililim ililim released this 12 Aug 03:32

Instructions

Download dual-key-remap.zip to install. Installation instructions can be found in the README.

0.12

Added

  • when_timeout directive: an extra remap action that fires immediately when the key has been held alone past timeout_ms (e.g., when_timeout=CAPSLOCK to get a real Caps Lock by holding). Supports chords and sequences.

Changed

  • Directives after a completed remap block now modify that remap, so when_timeout or timeout_ms can be added below with_other. timeout_ms is global only when set at the top of the config, before any remap_key.

Fixed

  • Setting names are now case-insensitive (e.g., REMAP_KEY=CAPSLOCK works). Previously only key values were.
  • Config error messages now stay on screen instead of flashing and closing immediately.

v0.11

Choose a tag to compare

@ililim ililim released this 20 Mar 15:19

Instructions

Download dual-key-remap.zip to install. Installation instructions can be found in the README.

0.11

Added

  • to directive 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=capslock works).
  • Fixed config reload leaving stale held keys from previous remappings.

v0.10

Choose a tag to compare

@ililim ililim released this 10 Feb 03:38

Instructions

Download dual-key-remap.zip to install. Installation instructions can be found in the README.

0.10

Added

  • Multi-key chords: when_alone and with_other now support multiple keys separated by + (e.g., with_other=CTRL+ALT+SHIFT or when_alone=CTRL+ESC). Keys are pressed simultaneously and released in reverse order.
  • Sequential steps: when_alone supports 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_ms setting suppresses when_alone action 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_SHIFT suppresses companion modifiers when the remap key activates, fixing Copilot key support.

Fixed

  • Fixed incorrectly firing when_alone action 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

Choose a tag to compare

@ililim ililim released this 08 Aug 03:01

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/1 to 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

Choose a tag to compare

@ililim ililim released this 22 Jul 21:15

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

Choose a tag to compare

@ililim ililim released this 05 May 06:06

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=1 in your config.

Version 0.6

Choose a tag to compare

@ililim ililim released this 10 Sep 03:17

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

Choose a tag to compare

@ililim ililim released this 15 Mar 23:24

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_other modifier (CTRL by default).

Version 0.4

Choose a tag to compare

@ililim ililim released this 24 May 20:23

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_other modifier (CTRL by default).

Changed

  • The dual key will only become the with_other key 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

Choose a tag to compare

@ililim ililim released this 30 Oct 04:30

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=1 in config.txt.