Karabiner-Elements

ProductivitymacOS

A powerful keyboard customizer for macOS.

Latest v16.1.0 · · macOSby pqrs.orgWebsitepqrs-org/Karabiner-Elements

Release activity

Release activity — 7 releases across 6 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 19, 2026No releases on Apr 26, 20261 release on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 20262 releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026
MondayNo releases on Apr 20, 2026No releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026
TuesdayNo releases on Apr 21, 2026No releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026
WednesdayNo releases on Apr 22, 2026No releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 23, 2026No releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on Apr 24, 2026No releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on Apr 25, 2026No releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026

7 releases in the last year, busiest day 2

Changelog

beta

Pre-releasebeta
  • 💥 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_if and frontmost_application_unless.
View originalPermalink
How beta went

v16.1.0

  • 📦 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_monitor process has been removed.
View originalPermalink
How v16.1.0 went

v16.0.0

  • 📦 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_if can now detect overlay windows, such as Spotlight, using the Accessibility API.
    • variable_if now 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_to and fallback_to to software_function.set_mouse_cursor_position.
    • Added Enable CGEventTap fallback setting 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 exit instead of abort to 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.
View originalPermalink
How v16.0.0 went

v15.9.0

  • 📦 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.
View originalPermalink
How v15.9.0 went

v15.8.0

  • 📦 Download
  • 📅 Release date
    • Jan 18, 2026
  • 💥 Breaking changes
    • Changed the default behavior of f6 to the Do Not Disturb key.
  • ✨ New Features
  • 🐛 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_application to exclude non-application bundles from frontmost_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.
View originalPermalink
How v15.8.0 went

v15.7.0

  • 📦 Download
  • 📅 Release date
    • Nov 10, 2025
  • 🔔 Important Notes
    • After upgrading, make the following changes in System Settings:
      • Enable Karabiner-Elements Privileged Daemons v2 under App Background Activity.
      • Enable Karabiner-Core-Service under Input Monitoring.
    • 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.
  • 💥 Breaking changes
    • The file /Library/Application Support/org.pqrs/tmp/karabiner_grabber_devices.json is no longer updated. You can still use EventViewer and karabiner_cli to check connected devices.
  • 🐛 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.
View originalPermalink
How v15.7.0 went

v15.6.0

  • 📦 Download
  • 📅 Release date
    • Nov 3, 2025
  • 💥 Breaking changes
    • The file /Library/Application Support/org.pqrs/tmp/karabiner_grabber_manipulator_environment.json is no longer updated. You can still use EventViewer to check current variable values.
  • 🐛 Bug Fixes
    • Fixed an issue in EventViewer where new events were not added while the "Unknown Events" tab was open.
  • ✨ New Features
  • ⚡️ 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_events setting. The UI already prevented enabling this for Apple devices, and now, even if you manually set ignore_vendor_events in 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.
View originalPermalink
How v15.6.0 went

v15.5.0

  • 📦 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 items option in UI tab.
    • Added macOS also remaps modifier keys warning.
    • Added karabiner.json couldn't be loaded due to a parse error alert.
  • ⚡️ Improvements
    • Suppress forced icon updates (e.g., for Karabiner-Elements.app) during karabiner_grabber startup.
View originalPermalink
How v15.5.0 went

v15.4.0

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 events option to device settings in Devices tab.
    • Added XY movement multiplier and Wheels multiplier to the mouse settings in Devices tab.
    • Added frontmost_application_history_index option into open_application.
    • Added conditions option into to.
    • Added Filter useless events from specific devices option in Expert tab.
    • Added Reorder same timestamp input events to prioritize modifiers in Expert tab.
    • Added a toggle to EventViewer for monitoring events.
  • ⚡️ Improvements
    • Migrated to the SwiftUI life cycle.
    • Migrated to Swift 6.
    • Improved to_delayed_action behavior 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.
View originalPermalink
How v15.4.0 went

v15.3.0

  • 📦 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_natural
      • system.use_fkeys_as_standard_function_keys
  • ⚡️ Improvements
    • The key names in the Function Keys settings became clearer when "Use all F1, F2, etc. keys as standard function keys" is enabled.
View originalPermalink
How v15.3.0 went
View all

Discussion