- 💥 Breaking changes
- Integrated the Multitouch Extension menu into the Karabiner-Elements menu. Open the Multitouch Extension settings from the Karabiner-Elements menu.
- ✨ New Features
- Added filtering functionality to the Complex Modifications list.
- 🐛 Bug Fixes
- Fixed CGEventTap leaks (Thanks to @MrMage and @VitalyShein)
- ⚡️ Improvements
- Fixed an issue where the core service agent could rarely abort during termination.
- Fixed an issue where modifications could stop working for several seconds after waking from sleep on macOS.
- Karabiner-EventViewer and the Settings window are now closed after an upgrade.
- Added support for unbundled GUI apps in
frontmost_application_ifandfrontmost_application_unless.
Karabiner-Elements
ProductivitymacOSA powerful keyboard customizer for macOS.
Release activity
| May | Jun | Jul | Aug | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sunday | No releases on Apr 19, 2026 | No releases on Apr 26, 2026 | 1 release on May 3, 2026 | No releases on May 10, 2026 | No releases on May 17, 2026 | No releases on May 24, 2026 | No releases on May 31, 2026 | No releases on Jun 7, 2026 | No releases on Jun 14, 2026 | No releases on Jun 21, 2026 | No releases on Jun 28, 2026 | 2 releases on Jul 5, 2026 | No releases on Jul 12, 2026 | No releases on Jul 19, 2026 | No releases on Jul 26, 2026 | No releases on Aug 2, 2026 |
| Monday | No releases on Apr 20, 2026 | No releases on Apr 27, 2026 | No releases on May 4, 2026 | No releases on May 11, 2026 | No releases on May 18, 2026 | No releases on May 25, 2026 | No releases on Jun 1, 2026 | No releases on Jun 8, 2026 | No releases on Jun 15, 2026 | No releases on Jun 22, 2026 | No releases on Jun 29, 2026 | No releases on Jul 6, 2026 | No releases on Jul 13, 2026 | No releases on Jul 20, 2026 | No releases on Jul 27, 2026 | No releases on Aug 3, 2026 |
| Tuesday | No releases on Apr 21, 2026 | No releases on Apr 28, 2026 | No releases on May 5, 2026 | No releases on May 12, 2026 | No releases on May 19, 2026 | No releases on May 26, 2026 | No releases on Jun 2, 2026 | No releases on Jun 9, 2026 | No releases on Jun 16, 2026 | No releases on Jun 23, 2026 | No releases on Jun 30, 2026 | No releases on Jul 7, 2026 | No releases on Jul 14, 2026 | No releases on Jul 21, 2026 | No releases on Jul 28, 2026 | No releases on Aug 4, 2026 |
| Wednesday | No releases on Apr 22, 2026 | No releases on Apr 29, 2026 | No releases on May 6, 2026 | No releases on May 13, 2026 | No releases on May 20, 2026 | No releases on May 27, 2026 | No releases on Jun 3, 2026 | No releases on Jun 10, 2026 | No releases on Jun 17, 2026 | No releases on Jun 24, 2026 | No releases on Jul 1, 2026 | No releases on Jul 8, 2026 | No releases on Jul 15, 2026 | No releases on Jul 22, 2026 | No releases on Jul 29, 2026 | No releases on Aug 5, 2026 |
| Thursday | No releases on Apr 23, 2026 | No releases on Apr 30, 2026 | No releases on May 7, 2026 | No releases on May 14, 2026 | No releases on May 21, 2026 | No releases on May 28, 2026 | No releases on Jun 4, 2026 | No releases on Jun 11, 2026 | No releases on Jun 18, 2026 | No releases on Jun 25, 2026 | No releases on Jul 2, 2026 | No releases on Jul 9, 2026 | No releases on Jul 16, 2026 | No releases on Jul 23, 2026 | No releases on Jul 30, 2026 | No releases on Aug 6, 2026 |
| Friday | No releases on Apr 24, 2026 | No releases on May 1, 2026 | No releases on May 8, 2026 | No releases on May 15, 2026 | No releases on May 22, 2026 | No releases on May 29, 2026 | No releases on Jun 5, 2026 | No releases on Jun 12, 2026 | No releases on Jun 19, 2026 | No releases on Jun 26, 2026 | No releases on Jul 3, 2026 | No releases on Jul 10, 2026 | No releases on Jul 17, 2026 | No releases on Jul 24, 2026 | No releases on Jul 31, 2026 | No releases on Aug 7, 2026 |
| Saturday | No releases on Apr 25, 2026 | No releases on May 2, 2026 | No releases on May 9, 2026 | No releases on May 16, 2026 | No releases on May 23, 2026 | No releases on May 30, 2026 | No releases on Jun 6, 2026 | No releases on Jun 13, 2026 | No releases on Jun 20, 2026 | No releases on Jun 27, 2026 | No releases on Jul 4, 2026 | No releases on Jul 11, 2026 | No releases on Jul 18, 2026 | No releases on Jul 25, 2026 | No releases on Aug 1, 2026 |
7 releases in the last year, busiest day 2
Changelog
- 📦 Download
- 📅 Release date
- Jul 5, 2026
- ✨ New Features
- Added filtering functionality to the log viewer.
- 🐛 Bug Fixes
- Fixed the ac_zoom_in and ac_zoom_out key codes being swapped.
- Fixed an issue where the settings window could open at login when the system default configuration used an old format.
- ⚡️ Improvements
- Improved internal communication between Karabiner-Elements processes by replacing the IPC backend with
pqrs::unix_domain_stream. - Changed update checks to run periodically, not only at startup.
- Supported the following keys:
- consumer_key_code::ac_keyboard_layout_select (Thanks to @PedroSebastiao)
- consumer_key_code::ac_desktop_show_all_windows (Thanks to @omor1)
- consumer_key_code::ac_soft_key_left
- consumer_key_code::ac_desktop_show_all_applications
- Fix typo in ComplexModificationsView (Thanks to @kiangkuang)
- The
karabiner_session_monitorprocess has been removed.
- Improved internal communication between Karabiner-Elements processes by replacing the IPC backend with
- 📦 Download
- 📅 Release date
- May 3, 2026
- 🔔 Important Notes
- Karabiner-Core-Service now requires Accessibility permission. Please enable it in System Settings.
- ✨ New Features
frontmost_application_ifcan now detect overlay windows, such as Spotlight, using the Accessibility API.variable_ifnow supports the following variables, making it possible to change behavior depending on whether the focused element is a text area.- accessibility.focused_ui_element.role_string
- accessibility.focused_ui_element.subrole_string
- accessibility.focused_ui_element.title_string
- accessibility.focused_ui_element.window_position_x
- accessibility.focused_ui_element.window_position_y
- accessibility.focused_ui_element.window_size_height
- accessibility.focused_ui_element.window_size_width
- You can now generate JSON for Complex Modifications rules by writing JavaScript.
- Added an "Add your own rule using JavaScript" button to the complex modifications viewer.
- Added an "Open in external editor" button to the complex modifications editor.
- Added a "Clear user variables" button to EventViewer. (Thanks to @BarakXYZ)
- Added
to.to_if_other_key_pressed. It's now possible to implement "Change option+tab to command+tab" in a more natural way and reliable way. - Added
to.send_user_command. By using it together with an external server built with Karabiner-Elements-user-command-receiver, you can execute any action from Karabiner-Elements with low latency. (Thanks to @nikivdev) - Added
to.from_event, allowing pressed events to be passed through as-is. - Added
relative_toandfallback_totosoftware_function.set_mouse_cursor_position. - Added
Enable CGEventTap fallbacksetting to Expert tab. Enable receiving events via CGEventTap for keyboards where IOHIDDeviceOpen fails for some reason. - Added Setup tab to Settings.
- 🐛 Bug Fixes
- Fixed an issue where modifier keys could remain stuck when physical keyboard events were missed during capture.
- Fixed an issue where reordering in Complex Modifications and Profiles didn't work properly when dragging while scrolling.
- Fixed an issue where variables in expressions were not properly initialized when unset.
- ⚡️ Improvements
- Changed to call
exitinstead ofabortto suppress crash reports when a fatal error prevents CFRunLoop from running in background processes. - If Accessibility permission makes Input Monitoring permission unnecessary, only Accessibility permission will be requested.
- Changed to call
- 📦 Download
- 📅 Release date
- Jan 19, 2026
- 🐛 Bug Fixes
- Fixed an issue in v15.8.0 where the update notification window was not shown when updates were checked in the background.
- 📦 Download
- 📅 Release date
- Jan 18, 2026
- 💥 Breaking changes
- Changed the default behavior of
f6to theDo Not Disturbkey.
- Changed the default behavior of
- ✨ New Features
- Added
open_application.frontmost_application_history_exclusion_bundle_identifiersandopen_application.frontmost_application_history_exclusion_file_paths. - Added the following options to karabiner_cli:
--list-multitouch-extension-variables--watch-multitouch-extension-variables
- Added macOS log messages viewer to Settings.
- Added
- 🐛 Bug Fixes
- Fixed an issue where the sticky modifier indicator could continue to be displayed even after being disabled in the settings.
- Fixed an issue where karabiner_machine_identifier was not set correctly during a clean install.
- ⚡️ Improvements
- Removed the probable stuck key detector since we've confirmed that, on supported versions of macOS, seizing the device while keys are held down no longer causes any issues.
- Added an alert that appears if communication with Karabiner-VirtualHIDDevice-Daemon is not possible.
- Improved the automatic recovery behavior from inter-process communication failures.
- Improved
open_applicationto exclude non-application bundles fromfrontmost_application_history_index. - Move system extensions viewer to Settings from EventViewer.
- Updated EventViewer to properly display modifier flags for pointing button events.
- Improved MultitouchExtension to disable PreventUserIdleSystemSleep before the system goes to sleep.
- Supported the following keys:
- generic_desktop::do_not_disturb
- Sparkle Framework has been updated.
- 📦 Download
- 📅 Release date
- Nov 10, 2025
- 🔔 Important Notes
- After upgrading, make the following changes in System Settings:
- Enable
Karabiner-Elements Privileged Daemons v2under App Background Activity. - Enable
Karabiner-Core-Serviceunder Input Monitoring.
- Enable
- karabiner_grabber has been renamed to Karabiner-Core-Service. Full Disk Access isn't necessary if you're just using the standard setup. However, if you've manually moved the karabiner.json configuration file to another location, you might need to grant Full Disk Access to Karabiner-Core-Service.
- After upgrading, make the following changes in System Settings:
- 💥 Breaking changes
- The file
/Library/Application Support/org.pqrs/tmp/karabiner_grabber_devices.jsonis no longer updated. You can still use EventViewer and karabiner_cli to check connected devices.
- The file
- 🐛 Bug Fixes
- Fixed an issue where modifiers in a pending-release state under Complex Modifications were not being released when all keys were lifted.
- ⚡️ Improvements
- Fixed an issue on macOS 26.1 where karabiner_grabber was missing from the Input Monitoring list in System Settings. Instead, Karabiner-Core-Service will now be shown.
- The error message in the Complex Modification Editor is now copyable.
- 📦 Download
- 📅 Release date
- Nov 3, 2025
- 💥 Breaking changes
- The file
/Library/Application Support/org.pqrs/tmp/karabiner_grabber_manipulator_environment.jsonis no longer updated. You can still use EventViewer to check current variable values.
- The file
- 🐛 Bug Fixes
- Fixed an issue in EventViewer where new events were not added while the "Unknown Events" tab was open.
- ✨ New Features
- Added a "Temporarily turns off all Karabiner-Elements modifications" toggle to EventViewer.
- Added a feature that lets you set environment variables via
/Library/Application Support/org.pqrs/config/karabiner_environment. - Added support for devices that expose the Programmable Buttons usage on the Consumer Usage Page. (e.g., VEC USB Footpedal)
- Added
set_variable.expressionandset_variable.key_up_expression. - Added
expression_ifandexpression_unless. - Added
system.now.millisecondsto variables. - Added
integer_valueto the from event definition.
- ⚡️ Improvements
- Updated the app icon for macOS 26.
- Added support for Liquid Glass.
- Reduced the load on karabiner_grabber. In particular, CPU usage is lower when handling high-frequency events (e.g., mouse input).
- Improved handling of the
ignore_vendor_eventssetting. The UI already prevented enabling this for Apple devices, and now, even if you manually setignore_vendor_eventsin karabiner.json, vendor events for Apple devices will always be processed regardless of the setting. - Adjusted the layouts in Settings and EventViewer to show more information.
- Supported the following keys:
- generic_desktop::system_app_menu
- consumer_key_code::microphone
- consumer_key_code::selection
- pointing_button::button33 ... pointing_button::button255
- Sparkle Framework has been updated.
- 📦 Download
- 📅 Release date
- Jul 29, 2025
- 🐛 Bug Fixes
- Fixed an issue where the "Use all F1, F2, etc. keys as standard function keys" setting wasn't correctly detected in some environments.
- Fixed an issue where some buttons were hard to see in Dark Mode.
- ✨ New Features
- Added
Show additional menu itemsoption in UI tab. - Added
macOS also remaps modifier keyswarning. - Added
karabiner.json couldn't be loaded due to a parse erroralert.
- Added
- ⚡️ Improvements
- Suppress forced icon updates (e.g., for Karabiner-Elements.app) during
karabiner_grabberstartup.
- Suppress forced icon updates (e.g., for Karabiner-Elements.app) during
Karabiner-Elements 15.4.0
- 📦 Download
- 📅 Release date
- Jun 29, 2025
- 🐛 Bug Fixes
- Fixed an overflow issue with the mouse key movements.
- Fixed an issue that the fn key is unintentionally tapped when use the media keys if "Use all F1, F2, etc. keys as standard function keys" is enabled.
- ✨ New Features
- Supported headset buttons.
- Added
Ignore vendor eventsoption to device settings in Devices tab. - Added
XY movement multiplierandWheels multiplierto the mouse settings in Devices tab. - Added
frontmost_application_history_indexoption intoopen_application. - Added
conditionsoption intoto. - Added
Filter useless events from specific devicesoption in Expert tab. - Added
Reorder same timestamp input events to prioritize modifiersin Expert tab. - Added a toggle to EventViewer for monitoring events.
- ⚡️ Improvements
- Migrated to the SwiftUI life cycle.
- Migrated to Swift 6.
- Improved
to_delayed_actionbehavior to use the modifier flags of the time the key is pressed, when sending events. - Supported the following keys:
- consumer::ac_zoom_out
- consumer::ac_zoom_in
- generic_desktop::system_sleep
- Added support for new consumer keys (Thanks to @indygriffiths):
{ "consumer_key_code": "stop" }{ "consumer_key_code": "bass_boost" }{ "consumer_key_code": "loudness" }{ "consumer_key_code": "bass_increment" }{ "consumer_key_code": "bass_decrement" }{ "consumer_key_code": "ac_search" }
- The implicit conversion of Touch ID to the Lock key has been modified to work even when modifiers are held down.
- 📦 Download
- 📅 Release date
- Oct 28, 2024
- 🐛 Bug Fixes
- Fixed the behavior when setting the function keys to act as regular f1...f12 keys instead of media controls.
- ✨ New Features
- Added the following variables for
variable_if,variable_unless:system.scroll_direction_is_naturalsystem.use_fkeys_as_standard_function_keys
- Added the following variables for
- ⚡️ Improvements
- The key names in the Function Keys settings became clearer when "Use all F1, F2, etc. keys as standard function keys" is enabled.
More in Productivity
View allLibreOffice
The free office suite — Writer, Calc, Impress and friends, from The Document Foundation.
The Document Foundation
Adobe Acrobat
PDF creation, editing, signing, and review.
Adobe
Bitwarden
An open-source password manager.
Bitwarden
7-Zip
The high-ratio file archiver.
Igor Pavlov
PeaZip
A free archiver for 200+ formats.
Giorgio Tani
balenaEtcher
Flash OS images to SD cards and USB drives.
balena