Development Overview
This collects links to posts that describe changes in recent versions.
Version 5.513
I think I found a workaround for now that is integrated in 5.513!
However it gets harder and harder to build for macOS 12. (Mostly due to the evolution of Swift & SwiftUI and missing backwards compatibility). BTT already uses some weird tricks to at least be able to build for macOS 12 but I assume I won't be able to do that much longer.
5.507 should resolve this while still improving the edge cases!
hovered_link variable:
This should work (adds a three finger tap that opens the hovered URL via velja):
3_finger_tap_velja.bttpreset (4.1 KB)
However requires 5.450 alpha (uploading), because I have just added the hovered_link variable
//edit: sorry there was an accidental dot in the preset, should now work
macOS did show notification trigger:
In 5.499 alpha I finally got around and added a native trigger that is monitoring this database based on @fortred2 's code. There is a small delay because the system doesn't immediately write the database to file.
[image]
This also makes the last shown notifications available as JSON string via variable BTTLastShownMacOSUserNotifications
Example of that variable:
[
{
"app" : "com.apple.ScriptEditor2",
"title" : "",
"subtitle" : "",
"body" : "Zipping app for notarization...…
With 5.511 I implemented the change that should allow for this, here is an example for F1:
F1.bttpreset (15.7 KB)
They key changes are:
1.) You can now have multiple shortcuts with minimum hold times > 0
[image]
[image]
2.) The "Execute Action Sequence After Timeout" action got an option to immediately continue executing the remaining actions in the original action sequence. (This was how it was originally intended but some refactoring a long time ago changed this behavior)
[image]
10 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.
Version 5.480
Found a way to do spaces switches without animation without disabling SIP. I'll add it with the next alpha 5.480. (in a first step I'll only add move space left/right, but I should be able to make it go to a specific space without animation as well)
[image]
(it's not completely without animation but it's very short)
I made some changes, however I think I had never implemented window.close(), maybe this worked previously by accident. I think I can add support for it, or you could instead call the hide floating menu action:
let menu = { BTTMenuActionMenuID: "TheNameOfTheMenuYouWantToClose" };
let result = await trigger_action({
json: JSON.stringify({
BTTPredefinedActionType: 387,
BTTAdditionalActionData: JSON.stringify(menu)
}), wait_for_reply: true
});
//edit: I have implemented wi…
Version 5.461
With 5.460 the showing / hiding should now also make use of the new architecture I have implemented. It should now really be almost instant. Everything is now loaded lazily even if you have tens of thousands of items performance should not be impacted. Memory usage is also reduced signifcantly.
I fixed some focus related things in 5.460 alpha, maybe that also helps in you case!
Version 5.435
good point. I initially discarded this because the system native tooltips won't work with BTT floating menus due to technical limitations.
However with v5.434 I added custom tooltips, you can enable them like this: "Use Identifier As Tooltip"
[image]
Hallo @Andreas_Hegenberg ,
Describe the bug
The Web item menu item name is not saved anymore...
Screenshots
[Menu item name]
Device information:
BetterTouchTool version: 5.430 / 5.432
So I'm not sure why it displays the second "ghost" action, but I know what caused the action selection issue (a bug in the latest version related to triggers that have been set up > 1.5 years ago (or copied from an old trigger))
5.432 should fix this.
Would be great if you could try with 5.430. I have completely rewritten the layout algorithm because the old one < 5.429 was causing incorrect item sizes in some scenarios.
Version 5.400
I added something that might help with such stuff in 5.400 alpha. You can now transform any action sequence to a "Run Real Java Script" action by selecting the actions and choosing "Transform to Java Script:
To get a number variable you'd use
let variableValue = await get_number_variable("variableName")
In 5.399 I have added an option to the "Trigger Context Menu Item" to use the context menu for the current selection instead of the context menu at the current mouse position:
[image]
Version 5.376
New variables screen:
I have added a pin button to the variables with 5.376
[image]
Polling the "On demand" variables is disabled by default now because that uses a lot of CPU for some of them.
clipboard manager improvements
I think ChatGPT just helped me figure out a potential performance issue and also came up with a better high performance solution. This will also allow for more dynamic search.
It will require a bit of refactoring, I'll try to adapt this as soon as possible.
For now I have added a hidden max item setting in 5.377 (run while BTT is quit):
defaults write com.hegenberg.BetterTouchTool BTTNumberOfItemsToKeepInHistory 1000
Note: items are only deleted on BTT startup (regardless of …
unfortunately opening more than one of these windows is hard with the current architecture, you can however detach views:
[image]
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)
In 5.338 alpha I made it so the hover effect is disabled while clicking. This leads to some visual feedback when clicking a button.
Version 5.328
This version significantly changes the action selection / search, hoping to make it easier to find actions.
I have added on / off actions in 5.328 alpha. (uploading)
Version 5.326
this should be resolved in 5.326 alpha (uploading)
Version 5.322
The next build (will be released later today after review has finished) adds basic support for the iOS Shortcuts app.
It allows you to trigger named triggers on your Mac or run Apple Script & Java Script on your Mac.
[IMG_402B3DFECB38-1]
With support for Shortcuts, you can use Siri to trigger BTT functionality or create some buttons on your home screen to trigger functionality on your Mac without opening the BTT Mobile app.
I think that crash should be fixed in 5.322 alpha
Version 5.313
ah I see. Could you check whethe that is fixed with 5.313 alpha? (uploading now)
you are absolutely right, fixed in 5.312 (uploading)
(It worked when searching specific windows, but on whole screens it failed because the coordinates are inverted there)
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".
ah the issue is you have this option enabled: "Always use old keyboard shortcut implementation". Is there a reason for that? It really should only be used in very specific cases where all other options fail.
[image]
However it's also a bug as this should really work with the old implementation as well. It should be fixed in 5.309 alpha (uploading now)
Version 5.292
Version 5.286
5.286 alpha adds a "File or Folder Did Change" trigger to "automations, named & other triggers".
I think this one can be pretty useful. It sets these two variables on change:
BTTLastChangedFileOrFolder
BTTLastChangedFileOrFolderChangedType
Version 5.282
5.282 should fix the issue.
Also added a predefined action to delete specific items from the clipboard manager, so now you can do something like this:
[image]
[image]
(if transformation happened, delete the second item from the clipboard manager)
Example JS:
async function doSomething() {
let clipboardContentString = await get_clipboard_content({format: "NSPasteboardTypeString"});
if(clipboardContentString.length > 0) {
let newContent = clipboardContentString + "something";
s…
ah the previous build didn't update the variables golden chaos used correctly, this should be fixed in 5.284 alpha
For sharing, either screenshot or right-click the widget => export to file
Version 5.279
I have just implemented some workarounds in BTT 5.279 alpha (uploading). Would be great if you could check whether this works for you. It is much more complicated than before and currently doesn't support all apps but I'll add support for more in the next days.
Version 5.275
Should be fixed in 5.276 alpha (uploading now, available in ~10min)
that duplication sounds like a bug, I'll have a look. thanks for all the details!
If in doubt, set both BTTEnabled and BTTEnabled2
@Mark_K ah yes if you have the NW/SW/SE/NE lines in addition it can still be problematic. I have implemented a "short circuit" for straight line gestures, but it wasn't enabled yet. In 5.274 alpha you can try it by naming your gestures either
up, down, left, right, up-left, up-right, down-right, down-left
or
south, north, east, west, north-west, north-east, south-west, south-east
In my tests this has worked well. Maybe I'll add it explicitly to the recording UI.
[image]
Version 5.268
Ah there was a problem with the search predicate in some situations. Should be better in 5.268
Version 5.267
could you check whether 5.267 helps?
the recent alpha versions added a variable called "BTTLastTriggeredKeyboardShortcut. You could create a condition based on that. Best use BTT 5.266 or higher
[image]
[image]
fnR.bttpreset (7.5 KB)
Version 5.265
with 5.265 alpha you can copy the UUID of your text field item (right-click it in the BTT configuration UI), then use this in the paste action (with your UUID):
(BTT)@variable:4F14398B-E174-479F-8BFE-9EB55347868E(BTT)
you could add the script after the "copyToClipboard()" call.
Moving the window via the standard actions doesn't work because floating menus in general exclude themselves from macOS Accessibility (this is important for menus that don't behave like normal windows). However maybe I can change this for the "floating menu with titlebar" usecase.
//edit, 5.265 should not exclude menus from Accessibility if they have a standard titlebar
Can you check whether this works again in 5.265 alpha? I think there was a small change in a recent version of macOS that broke this. (uploading now)
Version 5.262
Could you try v5.261?
Also make sure to enable this in the webview settings if you have not already:
[image]
ah this is due to the way your Touch Bar preset adds the clipboard widget (it's in a disabled group which is being forced shown).
You can workaround it by either adding any other trigger to show the clipboard manager (e.g. a keyboard shortcut) or by upgrading to 5.260 alpha which I'm uploading now
Version 5.258
Yes it should be solved in 5.258, it should now show "Previously Saved Display" with the old saved UUID
Version 5.256
I think there might have been a potential display issue that caused the variable value display to not update, should be resolved in 5.256
Version 5.253
sorry for slow replies, I had caught a really bad flu - took me out for a week ... slowly recovering now
I'll look through the things you posted, the animation should be disabled now in 5.253 (uploading)
there were a few more caching related issues, I hope 5.253 resolves them.
While some basic caching is still automatically applied, the full menu caching (which also increases memory usage) is now optional. It should only be needed for very large menus:
[image]
Version 5.252
In 5.252 I added an option for the predefined action "Show Menu Bar In Context Menu" to show a specific submenu:
[image]
Version 5.248
Ah I think I missed one spot, can you try again with 5.248? (uploading)
should be resolved in 5.248
This is fixed in Version: 5.248 (2025030304) and possible few version before that one.
Version 5.247
I think I accidentally applied the new caching mechanism to submenus in the recent alphas. Could you check whether it works again in 5.247 ? (uploading)
Version 5.246:
in 5.246 I have added one more sanity check to ignore negative image sizes.
Version 5.243:
I did work on this a bit more and was able to change the behavior to something that might be better.
With 5.243 if you select multiple items it will show a dummy text like this:
[image]
You can then change the formatting of that dummy text and it will not change the actual text - only the formatting.