Fixed an issue that installer requires Rosetta 2 on Apple Silicon Macs.
π₯ Breaking changes
Changed the default function of f4 key to spotlight, f5 key to dictation, f6 key to f6.
Note: This change will be applied when you create a new profile.
Changed to Karabiner-Elements does not modify f1-f12 keys on touch bar.
The caps lock delay of Karabiner Virtual HID Keyboard has been removed.
The state of caps lock will be changed immediately after you press the caps lock key.
Added a workaround for non-dismissible Device is ignored temporarily alert
which is caused by some devices that sends abnormal input events.
π Bug Fixes
Fixed Add {key_code} to Karabiner-Elements button on EventViewer for unnamed keys (raw number key codes).
Fixed an issue that modifier flag events are not dispatched when changing pointing button while other character keys are pressed.
(e.g., when changing pointing_button::button3 -> command+pointing_button::button1, command modifier is not sent when button1 is pressed while t key is also pressed.)
Add Delay before open device configuration into Karabiner-Elements Preferences > Devices > Advanced tab.
Added Show key code in hexadecimal format option into EventViewer.
π Bug Fixes
Fixed a key stuck issue which occurs when the key is released,
and at the exact same moment Karabiner-Elements opens the device.
Fixed an issue which Karabiner-Elements mistakes a remote user for a current console user
if another user is logged in from Screen Sharing while console is used.
β‘οΈ Improvements
Improved XXX is ignored temporarily until YYY is pressed again behavior.
Move Disable the built-in keyboard while one of the following selected devices is connected configuration
into Karabiner-Elements Preferences > Devices > Advanced tab.
Device is ignored temporarily alert has been introduced.
This alert will be shown if you hold keys or buttons down before Karabiner-Elements opens the device.
Please press the described key or button again to dismiss the alert.
π Bug Fixes
Fixed a key stuck issue which occurs when the key is held down before Karabiner-Elements opens the device.
β‘οΈ Improvements
Event code format on EventViewer changed to decimal number from hex.
complex modifications json will be checked strictly since this release.
Please check error messages if your complex modifications do not work after upgrade.
Note: You have to enable your mice on Devices tab when you want to use this feature.
Added --lint-complex-modifications option into karabiner_cli.
It allows you checks a complex-modifications json file.
β‘οΈ Improvements
Set Karabiner-Elements.app and Karabiner-EventViewer.app immutable
in order to ensure unremovable them except built-in uninstaller.
Please use the uninstaller when you want to remove Karabiner-Elements.
Added a wait before grabbing device in order to avoid an macOS issue that device will be unusable after Karabiner-Elements is quit.
Changes for users who write their own json.
to and to_* support single object, e.g., "to": { "key_code": "spacebar" }.
New modifier aliases are added: left_alt, left_gui, right_alt, right_gui.
key_code, consumer_key_code and pointing_button supports a number value, e.g., "from": {"key_code": 175}.
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)
π Bug Fixes
Fixed an issue that Caps Lock LED does not work on macOS Mojave.
β‘οΈ Improvements
shell_command string max length has been expanded. (256 byte -> 32 KB)
A device grabbing process has been improved. (Observing device state by a separated karabiner_observer process.)
The event processing has been improved and the latency has been reduced by using pqrs::dispatcher.
macOS 10.11 support has been dropped.
Karabiner-Elements works on macOS 10.12 (Sierra) or later.
Keyboard type in the virtual keyboard preferences has been removed. (Adverse effect of virtual keyboard improvement.)
Please change the keyboard type from System Preferences > Keyboard > Change Keyboard Type....
Caps Lock Delay in the virtual keyboard preferences has been removed. (Adverse effect of virtual keyboard improvement.)
Changed simultaneous behaviour to post key_up events when any key is released.
Changed to_after_key_up and to_if_alone behaviour as mandatory modifiers are removed from these events.
β¨ New Features
Added simultaneous_options.key_down_order, simultaneous_options.key_up_order and simultaneous_options.to_after_key_up.
π Bug Fixes
Fixed an issue that to_if_alone, to_if_held_down and to_delayed_action does not work properly with simultaneous.
β‘οΈ Improvements
The virtual keyboard compatibility has been improved.
EventViewer has been improved showing the correct key name for PC keyboard keys and international keys.
Improved keyboard repeat handling with simultaneous.
Fixed an issue that the initial key repeat rate of Karabiner will be set the slower value if you have not changed the key repeat rate in System Preferences.
Fixed an issue that Karabiner does not save preferences properly in an edge case.
The multi-touch extension default configuration has been changed.
If you are using ThumbSense, please enable ThumbSense setting manually in multi-touch extension preferences.
β¨ New Features
Use modifier symbols (βββ₯β§βͺ) in place of the modifier names has been added into Karabiner Preferences > Status Message tab.
<bundleidentifieroverridedef> has been introduced.
Option::KEYTOKEY_DELAYED_ACTION_MILLISECONDS has been added.
The following filters have been added.
<deviceexists_not>
<deviceexists_only>
The following environment variables has been added into replacementdef.
Fixed an issue that the argument treatment in warp-mouse-cursor-position utility is wrong.
These adjustment values for screen and front_window were exchanged.
For example, the vertical adjustment value for screen and front_window is used in horizontal adjustment.
Fixed an issue that some Java apps might be crash when AXNotifier is enabled. (SAP GUI for Java)
Fixed an issue that ModifierFlag pattern matching of Option::KEYTOKEY_AFTER_KEYUP in __KeyOverlaidModifier__ and __HoldingKeyToKey__ does not work property in some cases.
The safety limit of key repeat rate has been removed.
You can overwrite key repeat rate by extreme fast values.
The limit was 200 ms and 5 ms in the previous versions of Karabiner.
Please increase the key repeat values to 200 ms and 5 ms if you feel new key repeat is too fast.
GUI for enabling debug mode has been added into Karabiner Preferences.
Prepared settings have been updated.
“Disable an internal keyboard while external keyboards are connected” setting has been improved.
Razer DeathAdder Chroma has been supported.
ModifierFlag treatment has been improved in Option::KEYTOKEY_DELAYED_ACTION.
Some error messages have been improved.
π Bug Fixes
Fixed an issue that some Java apps might be crash when AXNotifier is enabled. (Fiji)
“Karabiner Preferences > Key Repeat tab” UI has been improved.
π Bug Fixes
Fixed an issue that the key repeat configuration migration sometimes does not set properly values when Karabiner has been upgrade from v10.11.0 or prior.
Fixed an issue that __SimultaneousKeyPresses__ sends key events continuously even if all keys are released when using multiple keyboards at the same time and both keyboards are pressed.
Fixed an issue that some Java apps might be crash when AXNotifier is enabled. (Spine, SpineTrial)
“Use prepared settings” option has been added into Karabiner Preferences > Misc & Uninstall tab.
Turning off the setting allows you to drop prepared settings and improve the speed of reloading XML.
EventViewer has been improved.
Media control events and some key combinations are supported.
Event modification has been improved when you are using multiple keyboards at the same time.
AXNotifier supported OmniFocus2 Quick Entry.
Prepared settings have been updated.
Updates for people who add new settings by oneself:
once attribute has been introduced into <include> tag.
π Bug Fixes
Fixed an issue that the CPU usage of Preview.app might be 100% at opening a huge PDF file when AXNotifier is enabled.
The fn keypad has been removed from implicit behavior.
Please use either of the following settings instead if you need.
“Fn+Number to KeyPad”
“Use old style fn keypad”
β‘οΈ Improvements
The external keyboard handling has been improved.
Prepared settings have been updated.
The following filters have been added.
<lastsentevent_not>
<lastsentevent_only>
π Bug Fixes
Fixed an issue that __DropKeyAfterRemap__ does not work properly if the target key is changed by <autogen> that is defined before __DropKeyAfterRemap__.
The default mouse keys scroll direction has been changed to natural.
<inputsourcedetail_only> and <inputsourcedetail_not> filters have been merged into <inputsource_only> and <inputsource_not>.
Please use <inputsource_only> and <inputsource_not> in your private.xml.
Launcher Mode v2 uses own modifier flag in order to improve usability.
If you extended Launcher Mode v2 by LAUNCHER_MODE_V2_EXTRA, please remove ModifierFlag::NONE from LAUNCHER_MODE_V2_EXTRA.
New option has been added into command line interface: toggle, be_careful_to_use__clear_all_values_by_name
New option has been added into post-hid-event command line utility: --flag
“Status Message > Show caps lock state” option has been added.
Multiple displays support has been improved. The status message will be shown in the all screen.
Fast User Switching support has been improved.
Prepared settings have been updated.
__DropAllKeys__ has been added.
Option::KEYTOKEY_DELAYED_ACTION has been added.
Option::KEYTOKEY_INCREASE_MODIFIER_FLAGS has been added.
Option::SIMULTANEOUSKEYPRESSES_POST_FROM_EVENTS_AS_RAW has been added.
The following filters have been added.
<pressingphysicalkeys_greaterthan>
<pressingphysicalkeys_lessthan>
__HoldingKeyToKey__ has been improved at you pressed modifiers while holding target key down.
ModifierFlag pattern matching has been introduced into Option::KEYTOKEY_AFTER_KEYUP.
<background /> support has been added into <vkopenurldef> tag.
high_priority attribute has been introduced into <identifier> tag.
<appdef> behavior has been improved. It preserves prepared settings when you use <appdef> in private.xml for bundle identifiers that are in prepared appdef.xml.
KeyCode::VK_MOUSEKEY_FIXED_DISTANCE_SCROLL_* have been added.
π Bug Fixes
Fixed an issue that some Java apps might be crash when AXNotifier is enabled. (Eclipse, Screencast-O-Matic, RazorSQL, EditRocket)
The kext loading issue on macOS 10.11 beta 6 has been fixed.
Fixed an issue that some Java apps might be crash when AXNotifier is enabled. (IntelliJ IDEA, PhpStorm, RubyMine, Android Studio)
Fixed an issue that <device_only> and <device_not> filters are ignored when multiple keyboards are connected and same keys are pressed at the same time.
β‘οΈ Improvements
“Ignore bouncing (chattering) events” setting has been added.
Spotlight has been supported in <only> and <not> filters.
Quit button has been added into Preferences.
Simultaneous presses detection with rapid key typing has been improved.
ModifierFlag manipulation when key up has been improved.
Prepared settings have been updated.
Option::FORCENUMLOCKON_FORCE_OFF has been added.
__KeyDownUpToKey__ has been added.
<include> ignores missing files. (Karabiner does not show an alert dialog when <include> refers missing files.)
KeyCode::VK_JIS_TEMPORARY_* are removed.
Please use <inputsource_filter>, Option::KEYTOKEY_BEFORE_KEYDOWN, Option::KEYTOKEY_AFTER_KEYUP, KeyCode::JIS_EISUU and KeyCode::JIS_KANA instead.
π Bug Fixes
Fixed an issue that a message “Kernel extension is not loaded” might be shown in some environment.
Fixed an issue that status message will not be shown properly when you are using multiple displays.
β‘οΈ Improvements
AXNotifier has been added.
AXNotifier allows you to observe the window name (window title) and the focused ui element role (eg. whether textarea or not).
For example, a setting that allows you to use hjkl keys as arrow keys in Finder when you are not editing text such as filename has been added.
A command line utility “warp-mouse-cursor-position” has been added.
Settings which use this utility have been added, too.
For example, this setting allows you to move mouse cursor by tapping fn key:
Custom Shortcuts
Move mouse cursor to the center of the frontmost app’s window:
By pressing fn key alone.
Updated prepared settings.
Some minor improvements.
You can add your own modifiers by <modifierdef>.
Added <windowname_only> and <windowname_not> filters.
Added <uielementrole_only> and <uielementrole_not> filters.
Added __PointingRelativeToKey__.
Added __PassThrough__. You can disable all settings in specific situations.
For example, this item allow you to disable all settings while you are using virtual machine.
(This setting is already included in prepared settings.)
You can use KeyCode and ConsumerKeyCode in __PointingRelativeToScroll__.
Added ThresholdMillisecond into __HoldingKeyToKey__.
You can control a holding threshold:
Fixed an issue that system might crash when you disconnected a keyboard.
β‘οΈ Improvements
KeyRemap4MacBook no longer requires system restart at installing or upgrading.
If you need to restart system for some reason, KeyRemap4MacBook will show an alert which urges you to restart.
@begin and @end have been introduced in private.xml.
You can use more than one key to remapped keys with __KeyOverlaidModifier__, __DoublePressModifier__.
Shell commands execution has been supported with KeyCode::VK_OPEN_URL_*.
β‘οΈ Improvements
Icons have been refined. (Thanks to Kouji TAMURA.)
Integrated a status message indicator. (Removed Growl support.)
Added a preference of ignored area into “multi-touch extension”.
Dynamic KeyCode::VK_CHANGE_INPUTSOURCE definition feature has been added.
<inputsource_only> definition feature has been added.
Added Option::SIMULTANEOUSKEYPRESSES_STRICT_KEY_ORDER.
Added DeviceLocation into <device_only>, <device_not> filters.
β‘οΈ Improvements
Preferences has been integrated into app.
Changed --KeyToKey-- to __KeyToKey__ at <autogen>.
Removed “General > Enable CapsLock LED Hack” from preferences.
If you’re using this setting for PCKeyboardHack, use “No Action” configuration instead.
Cleaned up “Simultaneous Vi Mode”.
(Some options have been moved into “Home Row Arrow and Modifier Mode”.)
β¨ New Features
Added “[Key Overlaid Modifier] Initial Modifier Wait” preference into “Key Repeat” tab.
KeyOverlaidModifier changes key to modifier after this wait.
This preference is useful if your typing speed is too fast.
Added setting to be able to use “Logitech Number Pad” which we were not able not use in Mac macOS.
Activate “Change KeyPad Key > Logitech Number Pad Hack”.
Replaced StatusWindow with Growl.
StatusWindow was displaying the lock state of modifiers and extra message.
Now, these messages are shown by Growl.
Attached an application named “multi-touch extension”.
This application activates specific setting while fingers touch the multi-touch device.
ThumbSense is one of the function which this application supplies.
Dynamic key configuration rule adding has been added.
Now, you can add your original settings very very easily.
You don’t need to build a package from source code anymore.
Added momentum scroll feature to “CursorMove to ScrollWheel” on Pointing Devices.
If you don’t like momentum scroll, turn on “Disable Momentum Scroll” by System Preferences.
Added “Mouse Keys Mode”. You can move mouse pointer by hjkl keys.
Added a function to define effective setting only with a specific keyboard. For example, “Change Control_L to Command_L” only in Happy Hacking Keyboard.
Added a function of “Simultaneous Key Presses” re-mapping.
Added remappings which are effective at only specific applications. (ex. Return -> CMD+O only in Finder).
“Emacs Mode” will be disabled in Terminal.app and Emacs.app automatically.