Is there a way to bring back the pre-Tahoe macOS volume and brightness HUDs using BTT HUD somehow?
@Andreas_Hegenberg , in the changelog there's:
- Volume and brightness indicator: on macOS 27, the system indicator now appears when BetterTouchTool changes volume or brightness. On older versions, "Set Volume" has a new "Show system volume HUD" option.
Can you add "Show system volume HUD" for the "Volume Up" and "Volume Down" actions?
these will always show the system volume hud because they simulate a press of the real volume key
Got it, initially I thought you have implemented something similar to what volumeHUD does.
kind of, the script based volume changes now also show such an old style hud:
Increase by 10%
async function increaseVolume() {
const currentVolume = await get_number_variable({
variableName: "OutputVolume"
});
const newVolume = Math.min(1, currentVolume + 0.1);
await set_number_variable({
variableName: "OutputVolume",
to: newVolume
});
return false;
}
Andreas, not sure what do you mean?
now also show such an old style hud
Which version? I've tried with BTT: 6.955 on macOS: 26.6.2 25G83, but with this script nothing is shown, even the system notification/hud
ah I think I have only enabled this on macOS 27 because the system frameworks for this changed between macos versions and I didn't investigate the old ones ![]()
Possibly the explicit version works on macOS 26 as well:
async function increaseVolume() {
const currentVolume = await get_number_variable({
variableName: "OutputVolume"
});
const newVolume = Math.min(1, currentVolume + 0.1);
BTTActions.setOutputVolumeShowSystemHUD(newVolume, true);
return false;
}
//edit: ah no, this method is currently not exported to javascript so it won't do anything
Going through the set system volume action should work though ![]()
async function someJavaScriptFunction() {
const currentVolume = await get_number_variable({
variableName: "OutputVolume"
});
const newVolume = Math.min(1, currentVolume + 0.1);
const actionDefinition = {
"BTTPredefinedActionType": 373,
"BTTGenericActionConfig": String(newVolume*100),
"BTTAdditionalActionData": {
"BTTShowSystemVolumeHUD": true
}
};
return await trigger_action({json: JSON.stringify(actionDefinition), wait_for_reply: false});
return false;
}
Appreciate this Andreas. For completeness, here's the volume down script:
async function someJavaScriptFunction() {
const currentVolume = await get_number_variable({
variableName: "OutputVolume"
});
const newVolume = Math.max(0, currentVolume - 0.05);
const actionDefinition = {
"BTTPredefinedActionType": 373,
"BTTGenericActionConfig": String(newVolume * 100),
"BTTAdditionalActionData": {
"BTTShowSystemVolumeHUD": true
}
};
return await trigger_action({
json: JSON.stringify(actionDefinition),
wait_for_reply: false
});
}
