- 📦 Download
- 📅 Release date
- Sep 25, 2022
- ⚡️ Improvements
- Update
set_mouse_cursor_position
to use the current screen ifscreen
option is not specified. (Thanks to @gnawf) - Sparkle Framework has been updated.
- Update
- 🐛 Bug Fixes
- Fixed an issue that the
device_if
anddevice_unless
does not work if vendor_id or product_id is zero. (or more precisely, if vendor_id or product_id cannot be retrieved and is set to 0)
- Fixed an issue that the
- 📦 Download
- 📅 Release date
- Sep 11, 2022
- ✨ New Features
- Supported Remote control buttons. (menu arrows buttons, color buttons)
- The
is_built_in_keyboard
has been added intodevice_if
anddevice_unless
. - The
device_exists_if
anddevice_exists_unless
has been added intoconditions
.
- 🐛 Bug Fixes
- Fixed an issue that the ignored device's modifier keys are not ignored properly.
- 📦 Download
- 📅 Release date
- Aug 11, 2022
- ✨ New Features
- Add
Enable unsafe configuration
feature into Preferences > Pro tab.
- Add
- 🐛 Bug Fixes
- Fixed an issue that the built-in keyboard is not be treated as the built-in keyboard if the keyboard is connected via SPI (Serial Peripheral Interface), such as M2 MacBook Air.
- 📦 Download
- 📅 Release date
- Jul 31, 2022
- ✨ New Features
Treat as a built-in keyboard
setting has been added into Devices configuration. It works with "Disable the built-in keyboard" feature.
- 🐛 Bug Fixes
- Fixed an issue that "Disable the built-in keyboard" feature does not work if the built-in keyboard is not included in the event modification target devices.
- 📦 Download
- 📅 Release date
- Jul 17, 2022
- 💥 Breaking changes
- The following modifier flags and manipulators are now canceled even for events from devices not grabbed by Karabiner-Elements, e.g. mouse clicks.
sticky modifiers
to_if_alone
to_if_held_down
to_delayed_action
- The following modifier flags and manipulators are now canceled even for events from devices not grabbed by Karabiner-Elements, e.g. mouse clicks.
- ⚡️ Improvements
- Improved behavior the sticky modifiers when used together with the built-in trackpad. (Thanks to @quarkw)
- Preferences Window is rewritten in SwiftUI.
set_variable
now supports bool and string value.- Sparkle Framework has been updated.
- 📦 Download
- 📅 Release date
- Mar 1, 2022
- 🐛 Bug Fixes
- Fixed an issue that NotificationWindow causes high CPU usage in some environments.
- 📦 Download
- 📅 Release date
- Nov 20, 2021
- ⚡️ Improvements
- Added System Extensions tab to EventViewer.
- Added a workaround for macOS's ioreg command issue that consumes high CPU usage on macOS Monterey.
- 📦 Download
- 📅 Release date
- Nov 3, 2021
- 💥 Breaking changes
- macOS 10.15 support has been dropped.
- ✨ New Features
- Supported Touch ID on Magic Keyboard.
- Supported application launcher keys (Mail, Browser, Calculator, etc.) which are belong to HID Consumer Usage Page and Application Launch Buttons Usage.
- Add new features for writing your own settings:
- 🐛 Bug Fixes
- Fixed an issue that an alert window appears in an incorrect position on macOS 12 Monterey.
- ⚡️ Improvements
- Update application icons. (Thanks to Kouji TAMURA)
- EventViewer is rewritten in SwiftUI.
- 📦 Download
- 📅 Release date
- Sep 6, 2021
- 🐛 Bug Fixes
- Fix an issue that
shell_command
does not set environment variables (HOME, USER, etc.).
- Fix an issue that
- 📦 Download
- 📅 Release date
- Sep 3, 2021
- ✨ New Features
- Add new features for writing your own settings:
- 🐛 Bug Fixes
- Fixed an issue that karabiner.json parse error message is not shown in Preferences > Log if the error message contains corrupted characters.
- ⚡️ Improvements
- Changed to log the output of shell_command into console_user_server.log.
- The notification window transparency will be increased when the mouse cursor is hovered.
- 📦 Download
- 📅 Release date
- Jun 20, 2021
- ⚡️ Improvements
- Improved temporary directory handling to reduce the frequency of mds process accessing it.
- Improved
mouse_key.speed_multiplier
handling when it is used withto.modifiers
, the modifier is retained while speed_multiplier is active. - The caps lock LED manipulation has been enabled by default.
- Note: This change applies to newly connected keyboards.
- Several Objective-C code around GUI has been rewritten in Swift + SwiftUI.
- 📦 Download
- 📅 Release date
- Apr 4, 2021
- 🐛 Bug Fixes
- Fixed an issue that Karabiner-Elements stops working with
virtual_hid_keyboard is not ready. Please wait for a while.
error message when you killkarabiner_console_user_server
process manually.
- Fixed an issue that Karabiner-Elements stops working with
- ⚡️ Improvements
- Changed to terminate virtual HID devices immediately after quit Karabiner-Elements.
macOS Big Sur 11.2 or earlier has an issue within memory management and HID device handling that causes kernel panics on Mac computers with Apple Silicon. The virtual device that is used internally by Karabiner-Elements triggers this issue, and a kernel panic might be caused at macOS shutdown.
We confirmed that this issue has been fixed in macOS Big Sur 11.3 Beta. Please use macOS Big Sur 11.3 Beta or later versions if you are facing the kernel panic issue.
- 📦 Download
- 📅 Release date
- Jan 29, 2021
- 🐛 Bug Fixes
- 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 todictation
, f6 key tof6
.- 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.
- Changed the default function of f4 key to
- ✨ New Features
- Supported
sticky modifier keys
- Added
apple_vendor_keyboard_key_code
andapple_vendor_top_case_key_code
to event definitions.
- Supported
- ⚡️ Improvements
- Updated in-app screenshots to Big Sur.
- Added the close button to notification window.
- 📦 Download
- 📅 Release date
- Oct 30, 2020
- 🔔 Important Notes
- 🐛 Bug Fixes
- Fixed an issue that Karabiner-DriverKit-VirtualHIDDevice might crash when caps lock key is pressed in some environments.
- 📦 Download
- 📅 Release date
- Oct 4, 2020
- 💥 Breaking changes
- macOS 10.12 - 10.14 support has been dropped.
- ✨ New Features
- Supported macOS Big Sur (11.0)
- Supported both Intel-based Macs and Apple Silicon Macs.
- Changed the virtual keyboard and mouse implementation to DriverKit from deprecated kernel extension.
- ⚡️ Improvements
- Improved preferences window messages.
- Partial support for comments in karabiner.json configuration file.
- Supported reading json file with comments.
- Limitation: The json comments will be removed if you change the json from Preferences GUI or command line interface.
- 📦 Download
- 📅 Release date
- Jun 27, 2020
- ✨ New Features
event_changed_if
andevent_changed_unless
has been added toconditions
.
- ⚡️ Improvements
- Improved sending f1-f12 keys in complex modification (e.g., "change command+e to f2") by ignoring media key mappings for these keys.
- Improved caps lock LED handling.
- Improved uninstaller adding the kernel extension staging area clean up.
- Improved complex modifications json checker.
- "Check for updates" has been improved.
- Updated Sparkle signing to EdDSA (ed25519) from DSA.
- URL of appcast.xml has been updated.
- 📅 Release date
- Jan 18, 2020
- ✨ New Features
Open config folder
button has been added into Preferences.
The feature provides an easy way exporting configuration.
- ⚡️ Improvements
- Added a workaround for non-dismissible
Device is ignored temporarily
alert which is caused by some devices that sends abnormal input events.
- Added a workaround for non-dismissible
- 🐛 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.)
- Fixed
- 📅 Release date
- Nov 17, 2019
- ✨ New Features
- Add
--show-current-profile-name
option intokarabiner_cli
. - Add
--list-profile-names
option intokarabiner_cli
.
- Add
- 🐛 Bug Fixes
- Fixed an issue that Karabiner-Elements stops working after switching user on macOS Catalina.
- Fixed an issue that Caps Lock LED is always manipulated even
Manipulate LED
setting is off. - Fixed an issue that MultitouchExtension does not handle ignored area properly when a finger is touched ignored area repeatedly.
- 📅 Release date
- Sep 12, 2019
- ✨ New Features
- MultitouchExtension app has been added.
- Dark Mode has been supported.
- Added
--set-variables
option intokarabiner_cli
.
- 🐛 Bug Fixes
- Fixed an issue that Karabiner-Elements might stop working after sleep on macOS Catalina.
- 📅 Release date
- Aug 16, 2019
- ✨ New Features
- Support macOS Catalina.
- 🐛 Bug Fixes
- Fixed an issue that Karabiner-Elements fails to grab a device in rare cases.
- ⚡️ Improvements
- Introduced karabiner_kextd. (kext loading function was separated from karabiner_grabber.)
- Improved EventViewer to show modifier flags of key events.
- Suppressed unnecessary log messages.
- 📅 Release date
- Jun 10, 2019
- ✨ New Features
- Add
Delay before open device
configuration intoKarabiner-Elements Preferences > Devices > Advanced
tab. - Added
Show key code in hexadecimal format
option into EventViewer.
- Add
- 🐛 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 intoKarabiner-Elements Preferences > Devices > Advanced
tab.
- Improved
- 📅 Release date
- May 14, 2019
- ✨ New Features
- Add
Mouse Key XY speed
configuration intoKarabiner-Elements Preferences > Virtual Keyboard
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.
- Add
- 🐛 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.
- 📅 Release date
- Apr 24, 2019
- 💥 Breaking changes
- complex modifications json will be checked strictly since this release.
Please check error messages if your complex modifications do not work after upgrade.
- complex modifications json will be checked strictly since this release.
- ✨ New Features
- Added Change mouse motion to scroll feature.
- Note: You have to enable your mice on Devices tab when you want to use this feature.
- Added
--lint-complex-modifications
option intokarabiner_cli
. It allows you checks a complex-modifications json file.
- Added Change mouse motion to scroll feature.
- ⚡️ 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
andto_*
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
andpointing_button
supports a number value, e.g.,"from": {"key_code": 175}
.
- 📅 Release date
- Feb 1, 2019
- ✨ New Features
- 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.
- 📅 Release date
- May 30, 2018
- 💥 Breaking 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
- ✨ New Features
- 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
- Added new items into
- 🐛 Bug Fixes
- Fixed an issue that random key repeat happen at extremely high system CPU usage.
- ⚡️ Improvements
- 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
.
- Increased rollover limit of virtual keyboard. (6 -> 32)
- 📅 Release date
- Apr 12, 2018
- 💥 Breaking changes
- 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 fromSystem 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
andto_if_alone
behaviour as mandatory modifiers are removed from these events.
- macOS 10.11 support has been dropped.
- ✨ New Features
- Added
simultaneous_options.key_down_order
,simultaneous_options.key_up_order
andsimultaneous_options.to_after_key_up
.
- Added
- 🐛 Bug Fixes
- Fixed an issue that
to_if_alone
,to_if_held_down
andto_delayed_action
does not work properly withsimultaneous
.
- Fixed an issue that
- ⚡️ 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
.
- 📅 Release date
- Feb 20, 2018
- ✨ New Features
- Simultaneous key presses has been supported in complex modifications.
- ⚡️ Improvements
- 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)
- Improved Mouse key scroll wheel direction referring
- 📅 Release date
- Dec 30, 2017
- ✨ New Features
to_if_held_down
has been added.
- 🐛 Bug Fixes
- Avoided a VMware Remote Console issue that mouse pointer does not work properly on VMRC when Karabiner-Elements grabs the pointing device.
- Fixed an issue that
to_if_alone
does not work properly whento
is empty.
- ⚡️ Improvements
- Improved modifier flags handling in
to events
. - Improved a way to save karabiner.json.
- Improved modifier flags handling in
- 📅 Release date
- Dec 7, 2017
- ✨ New Features
- 🐛 Bug Fixes
- Fixed an issue that the checkbox in
Preferences > Devices
is disabled for keyboards which do not have their own vendor id.
- Fixed an issue that the checkbox in
- 📅 Release date
- Nov 12, 2017
- 🐛 Bug Fixes
- 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.
- 📅 Release date
- Nov 9, 2017
- ✨ New Features
- 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.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 caps lock LED manipulation has been disabled with non Apple keyboards until it is enabled manually.
- Mouse button modifications has been added.
- ⚡️ Improvements
- The virtual keyboard handling has been improved.
- 📅 Release date
- Oct 4, 2017
- 🐛 Bug Fixes
- Fixed an issue that modifier flags becomes improperly state by mouse events.
- 📅 Release date
- Sep 18, 2017
- ✨ New Features
- 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://ke-complex-modifications.pqrs.org/ )
- The conditional event manipulation has been supported. (
frontmost_application_if
andfrontmost_application_unless
)
- GUI for complex_modifications has been added.
- 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
.