- Karabiner-Elements makes a backup file of karabiner.json before updating it if the backup file does not exists. (~/.config/karabiner/automatic_backups/karabiner_YYYYMMDD.json)
- A device grabbing process has been improved. (Observing device state by a separated
karabiner_observer
process.)
- Added new items into
simultaneous_options
:simultaneous_options.detect_key_down_uninterruptedly
simultaneous_options.key_up_when
- Added new parameters into
to event definition
:hold_down_milliseconds
halt
- Increased rollover limit of virtual keyboard. (6 -> 32)
This change mainly improves usability when you are using multiple keyboards at the same time. - Improved modifier flags handling in
to_after_key_up
andto_if_alone
. - Fixed an issue that random key repeat happen at extremely high system CPU usage.
- Incompatible changes
- Changed the order of
to_if_alone
andto_after_key_up
event handling.
to_if_alone
will be handled beforeto_after_key_up
.
- Changed the order of
- macOS 10.11 support has been dropped.
Karabiner-Elements works on macOS 10.12 (Sierra) or later. - The virtual keyboard compatibility has been improved.
Keyboard type
in the virtual keyboard preferences has been removed. (Adverse effect of virtual keyboard improvement.)
Please change the keyboard type fromSystem Preferences > Keyboard > Change Keyboard Type...
.Caps Lock Delay
in the virtual keyboard preferences has been removed. (Adverse effect of virtual keyboard improvement.)- EventViewer has been improved showing the correct key name for PC keyboard keys and international keys.
- Added
simultaneous_options.key_down_order
,simultaneous_options.key_up_order
andsimultaneous_options.to_after_key_up
. - Fixed an issue that
to_if_alone
,to_if_held_down
andto_delayed_action
does not work properly withsimultaneous
. - Improved keyboard repeat handling with
simultaneous
. - Incompatible changes
- Changed
simultaneous
behaviour to post key_up events when any key is released. - Changed
to_after_key_up
andto_if_alone
behaviour as mandatory modifiers are removed from these events.
- Changed
- Simultaneous key presses has been supported in complex modifications.
- Improved Mouse key scroll wheel direction referring
System Preferences > Mouse > Scroll direction
. - Improved modifier flags handling around pointing button manipulations.
- Mouse keys have been added into Simple Modifications.
- The eject key has been added into the from key of Simple Modifications.
- The Vendor ID and Product ID of virtual devices has been changed. (0x0,0x0 -> 0x16c0,0x27db and 0x16c0,0x27da)
to_if_held_down
has been added.- Examples:
- Open Alfred 3 if escape is held down.
- Quit application by holding command-q.
- Examples:
- Avoided a VMware Remote Console issue that mouse pointer does not work properly on VMRC when Karabiner-Elements grabs the pointing device.
- Improved a way to save karabiner.json.
- Improved modifier flags handling in
to events
. - Fixed an issue that
to_if_alone
does not work properly whento
is empty.
- Fixed an issue that the checkbox in
Preferences > Devices
is disabled for keyboards which do not have their own vendor id. mouse_key
has been added.- Examples:
- Mouse keys (simple)
- Mouse keys (full)
- Examples:
location_id
has been added todevice_if
anddevice_unless
.
- Fixed an issue that Karabiner-11.2.0 does not work properly on some environments due to a possibility of macOS kernel extension cache problem.
- The caps lock LED manipulation has been disabled with non Apple keyboards until it is enabled manually.
- Mouse button modifications has been added.
Note:- You have to enable your Mouse manually in Preferences > Devices tab.
- Karabiner-Elements cannot modify Apple's pointing devices.
to_delayed_action
has been added.- Examples
- Quit application by pressing command-q twice
- Emacs key bindings [C-x key strokes]
- Examples
input_source_if
andinput_source_unless
has been added toconditions
.select_input_source
has been added.keyboard_type_if
andkeyboard_type_unless
has been added toconditions
.- The virtual keyboard handling has been improved.
- Fixed an issue that modifier flags becomes improperly state by mouse events.
- The first stable release of Karabiner-Elements. (There is no changes from Karabiner-Elements 0.91.16.)
- Karabiner-Elements waits grabbing device until all modifier keys are released in order to avoid modifier flags stuck issue in mouse events.
- Support consumer keys (e.g., media key events in Logitech keyboards.)
- Add per device support in
Simple Modifications
andFn Function Keys
. - The modifier flag event handling has been improved.
device_if
anddevice_unless
has been added toconditions
.
- Fixed an issue that modifier flags might become improperly state in complex_modifications. (In complex_modifications rules which changes modifier+modifier to modifier.)
- macOS 10.13 (High Sierra) support has been improved.
variable_if
andvariable_unless
has been added toconditions
. You can useset_variable
to change the variables.to_after_key_up
has been added tocomplex_modifications > basic
."from": { "any": "key_code" }
has been added tocomplex_modifications > basic
. You can use this to disable untargeted keys in your mode. (e.g., disable untargeted keys in Launcher Mode.)Variables
tab has been added intoEventViewer
. You can confirm theset_variable
result inVariables
tab.
- Fixed an issue that karabiner_grabber might be crashed when frontmost application is changed.
- Shell command execution has been supported. (e.g., Launch apps in https://pqrs.org/osx/karabiner/complex_modifications/ )
- The conditional event manipulation has been supported. (
frontmost_application_if
andfrontmost_application_unless
)
- GUI for complex_modifications has been added. https://github.com/tekezo/Karabiner-Elements/tree/master/usage#how-to-use-complex-modifications
- Syntax of
complex_modifications > parameters
has been changed.
- The modifier flag event handling has been improved.
- Show warning and error logs by colored text in Log tab.
- Add timeout to
to_if_alone
.
- Initial support of
complex_modifications > basic > to_if_alone
.
- Fixed an issue that Karabiner-Elements stops working after user switching.
- Initial support of
complex_modifications
(No GUI yet).
- event manipulation has been changed to
src/core/grabber/include/manipulator/details/basic.hpp
.