Hallo Andreas,
that new screen is great in the new BTT version !
I like the float on top !
one additional feature you might want to consider. If you add a tickbox in front of each row of the varibale it could be used to filter out multiple variables (when multiple are ticked, like play and midi_note in my example screen).
In many situations we might want to monitor multiple variables, which could not be archieved with the search function...
Hi @Andreas_Hegenberg, thank you for the new Variables & Scripting window. I have a few suggestions to improve its usability:
Window Name Is the official title of this pane āScripting Settingsā, or something else? A clear, consistent name helps with documentation and user support.
Titlebar UX
Issue:
On Scripting (General), the titlebar is shorter and the label is centered, whereas on Variables, AppleScript, and JavaScript itās taller and left-aligned (to make room for the search field).
Impact:
Switching between tabs causes a noticeable ājump,ā which feels jarring.
Suggestion:
Always reserve the same height and alignment space for the search input, even if itās disabled, so the titlebars never shift.
Sidebar Hierarchy
Issue:
All four sidebar items are equal-weight, so itās not obvious that Scripting (General) is actually the āglobal settingsā for this pane.
Impact:
I had to click around and experiment to understand the hierarchy.
Suggestion:
Group Scripting (General) into its own section (e.g. āSettingsā) or move it above/below the tab list, so it doesnāt feel like just another scripting category.
Missing AppleScript Interfaces ā Iāve compared the AppleScript list against BetterTouchTool.sdef and found some commands that arenāt shown in the UI. Would you consider exposing them for feature-parity?
chat_gpt
display_notification
get_active_touch_bar_group
get_location
get_menubar_menuitem_details
get_weather
is_app_running
is_true_tone_enabled
run_shortcut
Add JXA (JavaScript for Automation) Support ā Please add a JXA tab alongside AppleScript. Many users (myself included) prefer JXAās syntax, and it keeps parity with the existing JavaScript UI.
Rename āJava Scriptā Tab ā The label Java Script sits right after AppleScript, which led me to think it was JXA. Consider renaming it to something like āBTT JavaScriptā or āJS (BTT)ā to distinguish it from JXA.
Consolidated Scripting Mental Model
Problem:
Itās hard to see how these scripting flavors differ and where to start:
AppleScript (classic macOS automation)
JXA (JavaScript for Automation)
BTT JavaScript (Node-style, BTT-specific API)
Impact:
Even advanced users can be unsure which API to choose and docs are scattered across:
Scripting BTT
Using Real Java Script in BTT
Scripting BetterTouchTool using Apple Script
Custom Scriptable WebView
Scripting Floating Menus
HTTP Requests / Webserver
Custom URL Scheme**
Suggestion:
In the new pane, provide:
A concise description of the scripting interface and when and where to use it.
Add syntax code highlighting the example snippets
Display a "copy to clipboard" button on hover for the example snippets
Thank you for considering these ideas, Iām excited to see how Variables & Scripting evolves!
@Andreas_Hegenberg does the get_weather Scripting Interface still work? I used it somewhat recently but ended up using a different API. Now when I try to use get_weather, I get an empty response.
osascript -e 'tell application "BetterTouchTool" to get_weather "48.1351,11.5820"
oops, my token expired just tonight. Will fix it now.
//edit: weather should be working again! Might require a BTT restart.
I agree with all your points! The view started just as an experiment (on how much SwiftUI code I can auto-generate with AI). Now I want to make it the base for all scripting info, I also want to add a way to make it easier to directly test scripting stuff from within that, but this might need to wait a bit.
Hi @Andreas_Hegenberg , previously I was able to copy all vars easily, is there some "workaround" with the new screen? I'm aware of the file ~/Library/Application Support/BetterTouchTool/btt_user_variables.plist, but as the name suggests there are only the user's vars. I've tried to grep 'BTTNowPlayingInfoSequoia in various directories, but without a luck.