← Package directory
Available on winget

Install keymapper

A cross-platform context-aware key remapper

Install with winget
winget install --id houmain.keymapper
Upgrade
winget upgrade --id houmain.keymapper
Uninstall
winget uninstall --id houmain.keymapper

About keymapper

A cross-platform context-aware key remapper

What's new in 5.5.1

Fixed - Made xwayland detection more robust (#368). - Fixed reconnection of keymapper after keymapperd restart on Linux. - Fixed hiding of tray icon on Linux. - Hiding tray icon on Windows when disconnected. - Replaced dummy icon on MacOS. - No longer automatically restarting agent/deamon on MacOS.

Read release notes

Version history

Version Updated Notes
5.5.1 Unknown Fixed - Made xwayland detection more robust (#368). - Fixed reconnection of keymapper after keymapperd restart on Linux. - Fixed hiding of tray icon on Linux. - Hiding tray icon on Windows when disconnected. - Replaced d...
5.5.0 Unknown Added - Added mouse support to MacOS version. Touchpads and their buttons are still not supported (#228). - Added keymapperctl --type-stdin for piping in strings. e.g.: echo "Test" | keymapperctl --type-stdin Changed - I...
5.4.2 Unknown Fixed - Fixed keymapperctl --wait setting a timeout (#355).
5.4.1 Unknown Changed - On Windows the mouse is now also only hooked when it has mappings. One can add @grab-device mouse to further hook it unconditionally (#344). - On Windows the devices are unhooked when the active context only co...
5.4.0 Unknown ### Added - Added FreeBSD support (#222). - Allow keymapperctl to press/release non-virtual keys (#348). - Added getenv builtin macro and string comparison blocks (#334). .e.g.: ```ini # activate context when environment...
5.3.2 Unknown Changed - Showing path in "Opening configuration file failed" error (#326). Fixed - Fixed concurrent output on release (#341). - Fixed empty strings in context filters (#329). - Added missing dependency to DEB package. -...
5.3.1 Unknown Fixed - Fixed ContextActive for contexts with device filter (#319). - Fixed keymapperctl --next-key-info (#314). - Fixed disabling notifications (#314).
5.3.0 Unknown Added - Added keymapperctl --print "string" (#312). - Allow to pass key Any to keymapperctl --wait-toggled (#312). Fixed - Retry initializing Winsock when network subsystem is not ready yet (#313). - Fixed path separator...
5.2.0 Unknown Added - Added directive @virtual-keys-toggle, which allows to change the behavior of virtual keys in outputs (#309). e.g. @virtual-keys-toggle true # true is (still) the default # toggle Virtual1 F1 >> Virtual1 @virtual-...
5.1.0 Unknown Added - Verbose keymapper logging logs virtual key state changes (#297). - Allowing next-key-info to report multiple keys (#212). Fixed - Fixed obtaining current keyboard layout on X11/XKB (#296). - Ignoring key repeat a...
5.0.0 Unknown The reason for the major version number increment is mainly because of the changed behavior of ;. Up until 4.9 it was documented to start comments like #. Otherwise all configurations should work like before. Added - All...
4.12.3 Unknown Fixed - Fixed problem with virtual keys (introduced in 4.12.1 for #275). - Fixed checking for a specific number of mouse wheel events (#280).
4.12.2 Unknown Added - Showing a hint in "Next Key Info" that Gnome/KDE script is not enabled. Changed - Handling only lowres wheel events by default on Linux (#268). Fixed - Not blocking when opening configuration from tray on Linux (...
4.12.1 Unknown Changed - First try to find a match also including already matched events (#275). Fixed - Made automatically reloading configuration file more robust (#276).
4.12.0 Unknown Added - Added dead key support to string typing on MacOS. - Added dependencies of other Linux systems to build instructions. Changed - Single character literals only set state of shift modifier, to make shortcuts like Ct...
4.11.4 Unknown Fixed - Fixed character typing on X11 systems with xkbcommon versions < 1.0 (#258)
4.11.1 Unknown Added - Added general unicode character typing on Windows (#240). Fixed - Fixed some problems with FN key on MacOS (#239, #249). - Added installation path in keymapper's PATH variable on MacOS (#251). - Added redundancy...
4.10.2 Unknown Changed - Unconditionally grabbing mouse on Windows again (#236). Fixed - Sending mouse events with virtual device which forwards movement on Linux (#188). - Sending less low-resolution mouse wheel events on Linux. - Fix...
4.10.1 Unknown Added - Providing arm64 binaries for Linux and Windows and universal binaries for MacOS. Changed - Grabbing mouse only when it has mappings on Windows (#236). - Parsing macros in inactive systems' contexts. Fixed - Fixed...
4.9.1 Unknown Added - Added @done directive to stop parsing configuration. Fixed - Fixed immediately releasing (e.g. A >> B !B). - !Any checks previously matched (e.g. A{Any !Any} >> Meta{Any}) (#187). - Improved swapping mouse wheel...