Development Overview Thread

Development Overview

This collects links to posts that describe changes in recent versions.

Scroll To Bottom To See Latest Changes

11 Likes

Version 5.487

Floating menus now have a right-click context menu that allows to edit some of the properties. This is a work in progress and only for convenience. The full config will continue to be in the BTT preferences window.

Archived:

Version 5.480

Version 5.461

Version 5.435

Version 5.400

Version 5.376

New variables screen:

clipboard manager improvements

Version 5.356

  • Floating Menu Items got a new option "Visible If Variable Is True"
  • Floating Menu's can now be placed based on the Dock frame
  • Floating Menu Items do now have a "on button press" and "on button release" action categories
  • Now Playing info should be returned better again

Version 5.338

Floating menus now support auto-updating variables (on Mac, BTT Mobile will follow next)

Version 5.328

This version significantly changes the action selection / search, hoping to make it easier to find actions.

Version 5.326

Version 5.322

Version 5.313

Version 5.309

  • Fixed an issue with conditional activation groups while the system's "Secure Input Mode" was active or when BTT was set to "Use old keyboard shortcut implementation".

Version 5.292

Version 5.286

Version 5.282

Version 5.279

Version 5.275

Version 5.268

Version 5.267

Version 5.265

Version 5.262

Version 5.258

Version 5.256

Version 5.253

Version 5.252

Version 5.248

Version 5.247

Version 5.246:

Version 5.243:

Version 6.040:

  • new predefined actions: "Start Smooth Scroll", "Stop Smooth Scroll", "Start Smooth Zoom", "Stop Smooth Zoom", "Start Smooth Rotate", "Stop Smooth Rotate"
  • fixes for custom move resize action:
  • fixed a timing issue for the "choose from list" action:

Version 6.034

The Smooth Scroll Modifier now supports trackpad like swipes (e.g. to go back a page in Safari, delete e-mails in Mail or scroll horizontally in Calendar):

The trackpad like zoom and rotate scroll modifiers have also been improved slightly

Version 6.023

Scopes For Mouse Gestures / Drawings:

Version 5.780

Version 5.600

Version 5.587

Version 5.566

Version 5.562

The "Choose From List" action now allows to embed a floating menu at the top

Version 5.513

hovered_link variable:

macOS did show notification trigger:

Version 6.041

allows to record & recognize two button clicks in the "normal mouse" section. For example pressing button 4 while holding button 1 or button 1 while holding button 4 to trigger actions. If you still want to assign functions to the single button presses, best make these trigger on mouse-up.

Button + scroll also works:

2 Likes

Version 6.042

1.) Some new action categories for mouse buttons:

  • click (this is what we currently have and will continue to allow further customization for short or long presses and down/up trigger)
  • press button & drag down (discrete)
  • press button & drag up (discrete)
  • press button & drag left (discrete)
  • press button & drag right (discrete)
  • press button & drag down (continuous)
  • press button & drag up (continuous)
  • press button & drag left (continuous)
  • press button & drag right (continuous)

These are independent of BTT's mouse gestures and specifically optimized for straight lines. Also they won't show any UI when dragging (for now). The discrete ones are for triggering standard actions like cmd+w, the continuous ones are if you want to do something like change volume by dragging a button up/down or zooming in / out.


If you choose the continuous drag action category you can also assign the predefined actions "Start Smooth Zoom", "Start Smooth Scroll" or "Start Smooth Rotate" to zoom, scroll or rotate by dragging up/down.

The continuous category also sets these variables for usage in scripts: BTTDragValue (0-100), BTTDragDeltaX, BTTDragDeltaY, BTTDragButtonNumber, BTTDragUpValue, BTTDragDownValue, BTTDragLeftValue, BTTDragRightValue

1 Like

Version 6.043

adds some more action categories for different click types. All these have been possible before but required fiddling with the advanced click settings:

  • Actions Executed On Click Down
  • Actions Executed On Long Hold Down
  • Actions Executed on Quick Click Release
  • Actions Executed On Click Release After Long Hold

If further customization is required, the advanced settings can still be used instead.

2 Likes

Version 6.052

Note: Requires macOS 26: I have added a first version of this action "Start / Stop Dictation / Recognizing / Transcribing Speech" that uses Apple's offline SpeechAnalyzer API


You can e.g. configure it to start recording on key down (or mouse down) and end recording on key up so it records while you hold a shortcut/key and pastes once you release the key.

4 Likes

With 6.063 the action / trigger categories are displayed differently. Instead of filtering the action list, it now shows all configured action categories and lets you configure new ones with the button on the bottom:


There is currently too much whitespace, I'll make it a bit cleaner with the next alphas.

6 Likes

With 6.080 keyboard shortcuts also got support for action categories - this is a huge change so let's hope it doesn't break anything:

@Frank1 might also be interesting for you (although your setups probably require non-standard timing stuff :rofl:)

2 Likes

6.087

Added "Save As Template" feature for floating menus:

2 Likes

BTT 6.106

6.106 comes with a completely new implementation of the Stream Deck plugin mode. No more restarting of the Stream Deck software when using plugin mode! It is much more complex now but should also be much more stable.

Other improvements:

  • You can now assign the "Start Smooth Space Switch" action to continuous drag actions on normal mouse buttons. This also works for "Start Smooth Scroll", "Start Smooth Zoom" and "Start Smooth Rotate"

~v6.150

In the recent versions I was mainly doing invisible work, migrating from old UI technologies (Storyboards) to completely code based UI. This was done out of necessity because the current Xcode builds completely broke storyboard support for me. However it also brings a lot of benefits and will allow me to iterate on the UI faster.

With the migration it was also possible to add the Tahoe styling.

This was a big task with a shitload of code added, there might still be some issues but most things seem to work fine now:

1 Like

v6.173

  • Save / Restore Window Layout action can launch apps now - I think I will improve this further soon:
    Can Save/Restore Window Layout also open the app that were part of the layout? - #2 by Andreas_Hegenberg

  • The predefined action "Access / Interact With / Click Specific UI Element" can now save the value or description of a specified element to a variable.

  • The Stream Deck MK2 with Scissor Keys is now supported

  • Floating menu templates can now also be used with specific apps / CAGs and won't be always added to "All Apps" anymore.

  • Fixed issue when dragging folders between apps

  • Fixed an issue with the "Specific App Did Create Window" and "Specific App Did Destroy Window" trigger. This works also with system apps, e.g. you can use com.apple.notificationcenterui to trigger this whenever notification centers shows a new notification.

  • Fixed an issue with native Stream Deck Plugins (GitHub - folivoraAI/BetterTouchToolPlugins: Development of BetterTouchTool Plugins) not triggering action categories like "On Button Release" or long press

1 Like

6.194 adds a new action trigger category for keyboard shortcuts:

"Actions Executed After All Modifier Keys Released"

This is different from the "Actions Executed On Key Release" - which already triggers if the main key involved is released.

So with the following example the "down" HUD would be shown when pressing cmd+shift+a. The "a released" HUD would show when a is released and the "all modifier keys released" would show once a AND cmd and shift all have been released

2 Likes

~6.20x

Workaround for Hyperkey Support on macOS 26.4 Beta 1


Fixed issue with menubar status item management
Specifically with clicking status items that have been hidden from the menubar.


Fixed an issue related to keeping physically pressed modifier keys in keyboard shortcuts


Fixed an issue related to Logitech Mice after idle/sleep


Fixed a rare issue that caused the "Text Selection Did Change" floating menu to be positioned incorrectly

1 Like

6.207

  1. Fixes the logitech_get_battery_status JavaScript function for accessing Logitech device battery states.

  2. Option to show floating menus on lock screen (thanks @SkyLightWindow)

  3. Added Tahoe compatibility for Notch Bar (still deprecated, but I haven't finished the migration path to Floating Menus yet, so let's keep supporting it for a bit longer)

6.210

Floating Menu's now support custom widgets, just drop a .swift file that follows the examples described here GitHub - folivoraAI/BetterTouchToolPlugins: Development of BetterTouchTool Plugins onto the BetterTouchTool window, afterwards (after confirming it shall be compiled & loaded) you will be able to select it from the "Custom Widget Plugin:


Experimenting with AI generated changelog. The following describes what has changed:

Changelog β€” Version 6.210 (2026022501)

Floating Menu Widgets

  • New: Now Playing Widget β€” A new dedicated now playing widget for floating menus that shows the currently playing track with album artwork, artist, album name, and a real-time progress bar. Options include showing/hiding when paused or when no player is active, filtering by specific music apps, and choosing between cover art, app icon, or both as artwork display.
  • New: Weather Widget β€” A new weather widget for floating menus showing current temperature, high/low, humidity, wind speed, sunrise/sunset times, and moon phase with automatic weather icons. Supports Celsius, Fahrenheit, or auto-detect based on system locale, custom location coordinates, and forecasts for future days.
  • New: Custom Plugin Widgets β€” Floating menus now support custom widgets provided by plugins, allowing third-party or user-created widgets with interactive controls.
  • New: Now Playing Widget Template β€” Added a ready-to-use template preset showcasing the now playing widget, including a version that displays on the lock screen.

Plugin System

  • New: Swift Plugin Support β€” You can now write BetterTouchTool plugins in pure Swift. Simply drop a .swift file into the Plugins folder and BetterTouchTool will offer to compile it into a working plugin automatically. Changes to the source file are detected and the plugin can be recompiled on the fly.
  • New: Plugin Trust & Security β€” All plugins now require user approval before they are loaded. When a plugin is modified, you will be prompted to approve the changes before it can run again.
  • New: Hot Plugin Reloading β€” The Plugins folder is now actively monitored. Adding, removing, or modifying plugins automatically updates the available plugin list without restarting.

AI Chat (h@llo.ai)

  • New: Smart Model Routing β€” Simple messages (like "thanks", "ok", "yes") can now be automatically routed to a faster, cheaper model to save costs and improve response times. You can configure a separate fast model in the AI setup.
  • New: Model Fallback Chain β€” If the primary AI model fails, the assistant can automatically switch to one or two backup models, so conversations are less likely to be interrupted by API errors.
  • New: Message Coalescing β€” When you type multiple messages quickly in a row, they are automatically combined into a single request instead of sending separate API calls.
  • New: Custom Skill Editor β€” You can now create and edit individual AI skills directly from trigger configurations, in addition to managing the global skill library.
  • New: Scheduled AI Tasks β€” Added support for scheduled AI triggers that can run AI tasks automatically on a schedule.
  • Improved AI Setup Wizard β€” The setup wizard now includes configuration for Smart Model Routing and Model Fallback Chain.

Actions

  • New: Play Sound action β€” A new action that plays a system sound or a custom sound file (AIFF, WAV, MP3, M4A, CAF, AAC). Includes a preview button in the configuration and supports selecting from built-in macOS sounds or browsing for a custom file.

Now Playing

  • Fixed album artwork on macOS 15.4+ β€” Album artwork fetching for Apple Music and Spotify has been fixed on macOS 15.4 and later, where the previous method stopped working. Artwork is now reliably retrieved and displayed in widgets and variables.
  • Improved artwork persistence β€” Cover artwork is no longer lost when receiving track change notifications that don't include new artwork data.

Smooth Scrolling

  • Improved very slow scroll speeds β€” Smooth scrolling now supports very slow speeds (e.g. 0.01-0.05), which is great for auto-scrolling while reading. Previously the minimum effective speed was much higher.
  • Finer speed control β€” The speed adjustment step size has been reduced from 0.1 to 0.01, allowing more precise speed tuning.
  • Fixed scroll stop animation β€” Stopping continuous smooth scrolling no longer causes a brief visible "jump" in the opposite direction in some apps.

Logitech Devices

  • Faster button setup on reconnect β€” Logitech device button configurations are now cached, so buttons are configured faster when a device reconnects.
  • Improved Craft keyboard crown tap detection β€” Tap detection on the Logitech Craft crown is now significantly more reliable, detecting the majority of taps that were previously missed.
  • Fixed crown mode switching β€” Switching the Craft crown between smooth and ratchet modes is now more reliable and no longer causes both modes to fire simultaneously.

UI / Preferences

  • New: Capture Screenshot in Icon Picker β€” The icon picker now has a "Capture Screenshot" option, allowing you to take a screenshot of a screen region and use it directly as an icon.
  • Improved Stream Deck plugin variable access β€” Stream Deck plugins can now read and set BetterTouchTool variables directly.

Changelog β€” Version 6.208 (2026022402)

AI Chat

  • Added persistent memory: the AI assistant can now remember important details across conversations, recall relevant context automatically, and forget information on request
  • AI memory is initialized automatically when starting a chat β€” no configuration needed
  • Memories are extracted during conversation compaction so useful context is preserved even when older messages are summarized
  • The embedding system now falls back to on-device processing when no external API key is configured, so memory search works out of the box

Keyboard Shortcuts

  • Fixed modifier keys (Command, Option, Shift, Control, Fn) not being held reliably when using "key down only" shortcut mode β€” modifiers now persist correctly until the matching "key up" is sent
  • Fixed modifier key release events not being seen by some apps (e.g. Electron-based apps like Kando) when using "key up only" shortcut mode β€” proper key-up events are now posted for each modifier
  • Fixed modifiers being prematurely cleared during "key down only" actions, which could cause subsequent key presses to lose their modifier state

Notch Bar / Menu Bar

  • Fixed an issue on macOS Tahoe where menu bar items could temporarily disappear from the Notch Bar due to incomplete system data being processed
  • Improved reliability of menu bar item detection on macOS Tahoe by using the correct data source for item refresh

HalloAI Trigger

  • Added a dedicated trigger selector for HalloAI, making it easier to configure AI assistant triggers, custom AI agents, and custom AI contexts

BetterTouchTool β€” Version 6.207 (2026022401)

Floating Menus

  • New: Show floating menus on the lock screen β€” Floating menus can now optionally remain visible on the macOS lock screen. Enable the new "Show Menu On Lock Screen (experimental)" option in the floating menu's window level settings.

Notch Bar / Menu Bar Widget

  • Improved status icon handling on macOS Tahoe β€” Status bar icons displayed in the Notch Bar now use a more reliable data source on macOS Tahoe, improving accuracy and reducing refresh delays.
  • Fixed clicking status bar items from the Notch Bar β€” Clicking menu bar icons shown in the Notch Bar is now more reliable, especially on macOS Tahoe where items may be on a different screen.
  • Fixed Notch Bar resource files not updating β€” If the Notch Bar support files were partially installed, they will now be properly refreshed on update.

Hyper Key

  • New alternative Hyper Key mode for built-in keyboards β€” Added an alternate Hyper Key mode method on macOS 26.4+. This mode fully blocks the remapped key from reaching other apps. Enable via the BTTHyperKeyUseAlternateMode advanced setting.
  • Force new Hyper Key mode on older macOS versions β€” The improved Hyper Key handling (normally only active on macOS 26.4+) can now be force-enabled on earlier macOS versions using the BTTForceNewHyperKeyMode advanced setting.
  • Fixed Hyper Key cleanup β€” Switching Hyper Key modes or disabling the Hyper Key now properly removes all previous keyboard remappings.

Window Management

  • Improved "Move Window to Space" on macOS 15+ β€” Moving windows between spaces is now more reliable on macOS Sequoia and later.

JavaScript Integration

  • Fixed logitech_get_battery_status function β€” The JavaScript API function for reading Logitech device battery status was broken and has been restored.

UI / Preferences

  • Added HalloAI trigger type support β€” The preferences window now properly handles the new HalloAI trigger category, including correct filtering and layout.
  • Fixed toolbar view mode button layout β€” The view mode toggle in the toolbar no longer causes layout issues when hidden.
3 Likes

Changelog β€” Version 6.211 (2026022502)

Floating Menu Widgets

  • Improved Custom Widget Plugin Selection β€” Widget plugins are now listed individually in the trigger selector under a dedicated "Widget Plugins" section, each showing the plugin's name and icon. You no longer need to manually pick a plugin from a dropdown after creating a generic custom widget item.
  • Improved Custom Widget Descriptions β€” Custom widget triggers now display the plugin name in the trigger list (e.g., "Widget Plugin: My Plugin") instead of the generic "Floating Menu: Custom Widget" label.
  • Plugin Size Preferences β€” Widget plugins can now specify their own preferred minimum and maximum sizes, which are automatically applied when the widget is displayed.
  • Improved Custom Widget Preview β€” Custom widget plugins now show a placeholder in the floating menu editor preview instead of attempting to render live plugin content, which could cause issues.
  • New: Weather Widget β€” Added a Weather Widget option to the floating menu widget selector.

Floating Menu Configuration

  • Improved Plugin Configuration β€” When a widget plugin provides its own configuration options, those are now shown directly in the trigger settings instead of a generic plugin picker dropdown.
1 Like