I have set the Mission Control key in BetterTouchTool to execute an AppleScript and it worked fine before the update from Mojave to Montery which I just did
Executing another script (do shell script "../karaprof.sh") in BetterTouchTool with following content to switch profile in Karabiner also works perfectly
#!/bin/sh
pro0="e"
pro1="g"
cli='/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_cli'
name=$("$cli" --show-current-profile-name)
if [ "$name" = $pro0 ]; then
"$cli" --select-profile $pro1
else
"$cli" --select-profile $pro0
fi
When I try to directly run it as shell script, it says
So my guess is I need to set permission for BetterTouchTool to execute scripts in Terminal, but how? I can't figure. Maybe you have figured from the screenshots, that my BTT version is old v.2.428.. not even know what the most recent version number is... mine does everything I need just fine, but would be willing to upgrade if the shell script option could trigger blueutil.. is this the case?
edit1: Seeing other questions here with mojave tags, I am thinking of switching back to mojave again... -.-
also edit1: thank you so much for this tool, Andreas... using it for a decade now and wouldn't do without!
It is most likely a problem with the permissions of the sh file. Possibly try to make it executable using chmod +x bluetoggle.sh
If you want to use the shell script option in BTT you need to provide a launch path (/bin/sh) a command (-c) and the actual script content "/path/to/blueutil -p toggle" (you need to use the full path)
actually permission of the file wasn't set properly. thank you for that.. now I am at the same point as with the script where it says command not found
Executing a script which simply echo's Hello works just fine.. could it be that since blueutil is a tool installed via brew, I need to set a different path?
you would not call the sh file with the shell script task action. The shell script action would contain the content of that sh file as shell script part. But every executable that is called from within needs to be referenced by it's full path (e.g. /usr/bin/blueutil -p toggle)
If you need to use sh inside the shell script task you also need to use the full path for it (/bin/sh )
By the way, BTT does have an action to toggle Bluetooth On/Off, but I don't know whether it was included in the version you use
ah nice. then I will maybe go with that since I was thinking about to buy a lifetime licence anyway. my version does not have the option. but will try to figure the shell thing first. thank you!
ps. I also asked for a feature to trigger the context menu via shortcut years ago.. is this option also available with newer versions?
would be even more tempting to upgrade then
You can use this apple script to right click the selected item in Finder:
tell application "System Events"
tell process "Finder"
set _selection to value of attribute "AXFocusedUIElement" --focused element (selected element)
tell _selection to perform action "AXShowMenu"
end tell
end tell