GoldenChaos-BTT: A complete Touch Bar UI replacement preset

touch-bar
window-snapping
keyboard

#706

New experimental version - the menu bar update :open_mouth: I recommend disabling the "Animate Group Open & Close" global Touch Bar setting for the best effect in this version. @Andreas_Hegenberg can there PLEASE be a setting inside each button group's preferences to force animating/not animating on group open?

The only thing left is dock settings, I think, so that will be next.

GoldenChaos-BTT 2.620 changelog

  • [Settings] Press โŒ˜โŒฅโ‡ง, to access the GC-BTT settings menu
  • [Settings] Added menu bar customization to GC-BTT settings menu
  • [Settings] Added Show GC-BTT Settings menu bar item
  • [Menu Bar] Browser Tabs menu bar item now appears and disappears more reliably
  • [Menu Bar] Menu bar items, including collapse/expand controls, now show up inside widget groups and reflect your personal settings
  • [Menu Bar] Made medium sized menu bar slightly more medium
  • [Now Playing] Album art now shows correctly on pause
  • [bananas] holy fraking bananas this preset is getting complex

Screenshots



So many toggle switches.


You can go ultra-minimal and disable literally everything except the clock.


Volume and brightness menu bar items are present in the option menu even if you disable them.


My personal daily set. I'd love to see other peoples' configurations!

Download: GoldenChaos-BTT 2.620


#722

New experimental version! Dock settings + GC-BTT Config Presets!

GoldenChaos-BTT 2.620-2 changelog:

  • [Settings] Added dock badge settings
  • [Settings] Added presets category
  • [Settings] Added default preset
  • Copy the default preset and make your own config that can be saved separately from GC-BTT and persist between upgrades! :open_mouth:
  • Likewise, GC-BTT is now scriptable! You can trigger the action associated with any button in the settings menu using standard BTT AppleScript functions.

Known issues

  • Applying presets is very slow and buggy and kind of doesn't work. Please test out this feature and let me know if you know a way to make it work more reliably/faster.

Screenshots


Download: GoldenChaos-BTT 2.620-2


#727

New version! The holy-crap-presets-work update :open_mouth:

GoldenChaos-BTT 2.620-3 changelog:

  • [Settings] Default preset now works
  • [Settings] Copy the default preset to make your own config
  • [Settings] All setting buttons now trigger named setting triggers. Use these named triggers to automate the GC-BTT UI however you like, or to make your own GC-BTT preset.
  • Made the separation between widget categories in BTT Preferences more obvious, let me know if it looks too obnoxious

Screenshots




Download: GoldenChaos-BTT 2.620-3


#737

I made a new version that makes it a bit easier to decipher how to add your own preset :slight_smile: I also got the language picker done (finally)!

GoldenChaos-BTT 2.624 changelog:

  • [Settings] Added "GC's GC-BTT" preset for GC-BTT preset for BetterTouchTool (my personal daily driver preset)
  • [Settings] Added "Custom Preset" example preset; edit it and make your own! Copy it and make presets for different situations!
  • [Menu Bar] Current Language now displays flags for 47 different languages
  • [Language Picker] Language Picker now gets up to 10 languages from the Text Input menu bar item
  • [Language Picker] Language Picker will hide button for currently selected language
  • [Connectivity Actions] Made on/off states for Wi-Fi and Bluetooth toggles more clear
  • [Now Playing] Fixed album art for Spotify
  • [bananas] words cannot describe how much i love having a "default" button for making releases

Screenshots



Presets are at the top of the "Other" tab.


Don't forget to edit the settings button after you customize your preset!

Download: GoldenChaos-BTT 2.624


#756

New version!

GoldenChaos-BTT 2.625 changelog:

  • [Settings] "Mute Microphone" trigger renamed to "Microphone Mute"
  • [Settings] Added Volume Mute menu bar item (disabled by default, enable in settings)
  • [Connectivity Actions] Added Airplane Mode toggle
  • [Languages] Language Picker is now called Languages
  • [Languages] Will now prompt you to enable the Input menu in the macOS menu bar appropriately
  • [Now Playing] Now Playing widget once again hides if no player is running
  • Preset now uses built-in font colors to change the icon color instead of loading a different icon
  • Better Do Not Disturb icon

Screenshots


Download: GoldenChaos-BTT 2.625


#766

New version!

GoldenChaos-BTT 2.626 "Stitch" changelog:

  • [Now Playing] All-new logic for Play/Pause, Previous, and Next buttons using system media status
  • [Now Playing] Deprecated standalone Play/Pause button in favor of newer more capable media controls
  • [Now Playing] Added Fast Forward/Rewind support to browser media controls in Safari and Chrome
  • [Now Playing] Added browser media control detection for Netflix, Hulu, and HBO Go in Safari and Chrome
  • [Now Playing] Added media control support for YouTube, Netflix, Hulu, and HBO Go single-site apps
  • [Now Playing] Expanded Now Playing widget will now display an error if left open while no media players are running
  • [Now Playing] Media controls now appear when opening video or audio workstation apps
  • [Menu Bar] Microphone Mute now appears when opening video or audio workstation apps
  • [Menu Bar] Microphone Mute now appears when opening Skype for Business
  • [bananas] couldn't help myself with the version name

Screenshots


That's one sexy error message.

Download: GoldenChaos-BTT 2.626 "Stitch"


#786

I actually prefer the lighter buttons myself. In an unreleased version I had set all the buttons to the system default, but I thought they were too dark and didn't provide the amount of contrast I wanted between the scrollable container and the menu bar.

In any case - new version! :smile:

GoldenChaos-BTT 2.627 changelog:

  • [Escape Keys] New combo button behavior based on user feedback! Tap for esc, hold for fullscreen :slight_smile:
    • If you avoided or disabled the combo button in the past, please try this new one out and let me know what you think!
  • [Settings] Added setting to choose your preferred calendar app to open when tapping on calendar widgets (Fantastical/Apple Calendar)
  • [Settings] Updated built-in presets with default calendar setting
  • Improved rendering of Back/Forward and Play/Pause icons

Notes for testers

Thank you everyone for your feedback about the combo button! I really want to keep improving this particular key, so please let me know what you think of this new one and what you would change.

Screenshots

Download: GoldenChaos-BTT 2.627


#802

New version! @PhilMac try this one out and see if it works for you. I'm not sure what's causing your issue but maybe reimporting will do the trick.

GoldenChaos-BTT 2.627-2 changelog:

  • [Now Playing] Widget will no longer prioritize iTunes over other media players
  • [Connectivity Actions] Device connection indicators will now move to the front of the list when connected
  • [Connectivity Actions] Cleaned up AirPods battery display
  • [Connectivity Actions] Added Beats battery display
  • [Option Menu] Sleep button automatically appears next to Lock Screen button when Menu Bar is set to small or medium sizes
  • Eliminated unused alternate icons and settings across the preset (reduced uncompressed file size by 3.5MB!)

Screenshots


Download: GoldenChaos-BTT 2.627-2


#819

New version!

GoldenChaos-BTT 2.628 changelog:

  • [Now Playing] Completely rewritten media controls logic (again) - this time with no additional performance cost! Much simpler and uses BTT's native internal variables.
  • [Connectivity Actions] Fixed an issue with AirPods battery display
  • [7-Day Forecast] Improved rendering of High/Low arrows
  • [7-Day Forecast] Fixed inconsistent padding between items

Developer's notes

This took a while to debug. Turns out you have to wrap these get_string_variable statements in tell statements, otherwise they won't work. Here's the full code for the Play/Pause button:

tell application "BetterTouchTool"
	try
		set showMediaControls to get_string_variable "BTTCurrentlyPlayingApp"
		set playerState to get_number_variable "BTTCurrentlyPlaying"
	end try
end tell
if showMediaControls is not "" then
	if playerState is 1.0 then
		return "Pause"
	else
		return "Play"
	end if
else
	return ""
end if

And the rest of the buttons:

tell application "BetterTouchTool"
	try
		set showMediaControls to get_string_variable "BTTCurrentlyPlayingApp"
	end try
end tell
if showMediaControls is not "" then
	return " "
else
	return ""
end if

Much simpler, super performant, and has identical behavior to the Now Playing widget.

Screenshots

Download: GoldenChaos-BTT 2.628


#877

Alright, I think it's ready for the first test run. This is a hefty update to settings!

GoldenChaos-BTT 2.634 changelog:

  • [Keyboard Shortcuts] New GC-BTT Settings shortcut: โŒ˜โ‡งP
  • [Keyboard Shortcuts] New Toggle Stock Touch Bar UI shortcut: โŒ˜โ‡ง0
  • [Gestures] Brightness control gesture now also adjusts external displays
  • [Settings] Added date/time size settings
  • [Settings] Added weather widget show/hide settings
  • [Settings] Added Spotlight key show/hide settings
  • [Settings] Added Siri key show/hide settings
  • [Settings] Added Notification Center key show/hide settings
  • [Settings] Updated Default preset with new settings
  • [Settings] Updated GC's GC-BTT preset with new settings
  • [Settings] Removed Custom Preset template because it was taking up menu space and you can easily just copy the Default preset

Known issues

  • The collapse/expand menu bar control currently will not automatically disable itself if all dynamic buttons are hidden and the dynamic date display is off; this will be implemented in the next version

Developer's notes

  • I'll document all the new variables I made in a future release. For now, if you're feeling adventurous, have a look around the new named setting triggers and the collapse/expand menu bar triggers.
    • @oldgreydog if you find the date size named triggers it should be pretty clear how to edit those variables to your liking :slight_smile:
  • Once all the kinks are worked out of this, that essentially completes the first run of settings - and that means it's stable version time. Please beat this with a hammer and let's get all the issues worked out!

Screenshots



Download: GoldenChaos-BTT 2.634


#903

New version!

GoldenChaos-BTT 2.635 changelog:

  • [Escape Keys] Fixed issue where the normal esc key was erroneously hiding its text label
  • [Menu Bar] Added AM/PM display to small date/time format
  • [Settings] Improved date/time format picker
  • [Settings] Fixed some variable name issues with the new settings

Known issues

  • Still gotta implement the chevron auto-hiding behavior if you disable all dynamic things
  • Microphone Mute button does not work with Zoom.us (needs testing)

Screenshots

Download: GoldenChaos-BTT 2.635


#928

New version! No screenshots for this one, but a lot of under-the-hood changes that make the behavior of the dynamic buttons a lot less janky and unpredictable. Please test out these new dynamic button settings! Especially from a fresh setup, I need to see if they initialize properly.

GoldenChaos-BTT 2.636 changelog

  • [Keyboard Shortcuts] Changed GC-BTT keyboard shortcuts to avoid app conflicts
    • Use โŒ˜โŒฅโ‡งP to access GC-BTT settings
    • Use โŒ˜โŒฅโ‡ง0 to toggle stock Touch Bar UI
  • [Settings] Refactor of Date/Time settings to be MUCH more reliable by @oldgreydog!
  • [Settings] Refactored Weather/Spotlight/Siri/Notification Center key settings using similar logic
  • [Calendar] Calendar widgets now display all-day events by default

Download: GoldenChaos-BTT 2.636


#941

Tiny new version - please test and see if there are still issues with the date not being properly initialized.

@Sahaj.Patel making upgrading easier is what these latest experimental releases are all about :smiley:

GoldenChaos-BTT 2.636-2 changelog

  • [Settings] Attempt to fix dynamic button string variable initialization issue

Download: GoldenChaos-BTT 2.636-2


#943

Small new version once again! Now that I know things are working properly, some tidying up :slight_smile:

GoldenChaos-BTT 2.636-3 changelog

  • [Dock Badges] Added Trello dock badge
  • [Settings] Added Trello dock badge settings to built-in presets
  • [Settings] Added nice comments to all named trigger scripts describing their function

Download: GoldenChaos-BTT 2.636-3


#960

New version!

GoldenChaos-BTT 2.638 changelog

  • [Settings] Added Time Format settings
    • Choose between 12-Hour and 24-Hour time formats
    • Default values added to built-in presets, too

Notes for testers

  • Logic for setting the Time Format is currently not super efficient, but should tell me if it works. Please try out the 24-Hour Time option and make sure it sets properly everywhere. If you encounter any issues getting the option to work, report them here.

Screenshots





Huh. I think I need to replace my contacts after I'm done with this Netflix.

Download: GoldenChaos-BTT 2.638


#1012

New version!

GoldenChaos-BTT 2.639 changelog

  • [Settings] Main Scrollable Container is now called the Home Strip
  • [Settings] Added Home Strip key toggles for Back/Forward, Refresh, and New Tab
  • [Settings] Added default Home Strip settings to built-in presets
  • [Settings] 24-Hour Time will now display the day of the month before the month's name

Coming soon

  • Move remaining legacy settings over to new persistent variable setup
  • Convert empty script widgets to Touch Bar buttons
  • Make dock badges actually click the dock icon instead of launching the app
  • New settings UI using floating HTML view

Screenshots




Download: GoldenChaos-BTT 2.639


#1013

New version! On a roll, can't stop won't stop

GoldenChaos-BTT 2.639-2 changelog

  • [Keyboard Shortcuts] Small-step brightness adjustment (โŒฅโ‡งโ˜€) now also adjusts the brightness of external displays
  • [Settings] Date Format previews now change dynamically to reflect your Time Format setting
  • [Dock Badges] Dock badges now click the actual dock icon instead of just launching the app
  • [Dock Badges] This means that dock badges actually work with handoff now!!

Notes for testers

  • Yes I know the date format preview doesn't actually change to 24-hour time but it's still technically the correct format even if it's sometimes a measly 12 hours off :stuck_out_tongue:
  • Let me know if any of the new dock badges fail to click their dock icons! I wasn't able to test all of them.

Coming soon

  • Move remaining legacy settings over to new persistent variable setup
  • "Restore Previous Settings" button to restore your "lost" settings after an upgrade
  • Firefox dock badge (not sure if FF even has badges, but why not)
  • Fix for Microphone Mute button failing to mute microphone
  • Convert empty script widgets to Touch Bar buttons
  • New settings UI using floating HTML view

Screenshots


Download: GoldenChaos-BTT 2.639-2


#1018

New version!

This version is massive. It contains the "true" settings implementation, a full refactor with persistent variables and a master script to check and reapply all settings. The end result of all of this is that upgrades should finally be totally seamless, with no loss of settings provided you configured GC-BTT using the built-in settings panel.

Additionally, presets have been completely rebuilt to use this new system. All you have to do is set the persistent variables to your liking, then run the "Check All Settings" trigger. This means that presets can be contained in a single AppleScript now, too - check out the example below.

If you've been holding out on trying experimental versions because you didn't want to lose your settings, this is the version to try.

GoldenChaos-BTT 2.639-3 changelog

  • [Settings] Completed transition to persistent variables for all settings
  • [Settings] New preset format contained within a single AppleScript
  • [Settings] Added "Reapply All Settings" button; tap this after you upgrade to restore your settings from a previous version!
  • [Dock Badges] Added Firefox dock badge
  • [Calendar] Calendar widget now respects system time format preference
  • [bananas] huge shout-out to @oldgreydog, whose initial refactor of the Date/Time settings pretty much single-handedly led to the solution for seamless upgrades. amazing work!

Coming soon

  • Fix for Microphone Mute button failing to mute microphone
  • Convert empty script widgets to Touch Bar buttons
  • New settings UI using floating HTML view

Notes for testers

  • Import this version and attempt to restore your settings by tapping "Reapply All Settings" in the GC-BTT Settings menu. Wait for the loading message to disappear (it's pretty slow, so give it a minute), then close GC-BTT Settings to confirm that your settings were reapplied successfully. Report back with results, please!
  • If you make a preset using the new preset format, post it here and I'll include it in GC-BTT! I would love to provide a Community Presets section in GC-BTT itself :slight_smile:

Sample preset

This is the default preset in the new version. It sets the desired persistent variables and then calls the "Check All Settings" named trigger.

-- Default Settings
-- This is a PRESET script, called from group GC-BTT Settings

tell application "BetterTouchTool"
	try
		-- Set Escape Key persistent variables
		set_persistent_string_variable "escKeyStyle" to "combo"
		
		-- Set Calendar App persistent variables
		set_persistent_string_variable "calendarApp" to "fantastical"
		
		-- Set Home Strip persistent variables
		set_persistent_string_variable "showBackForward" to "true"
		set_persistent_string_variable "showRefresh" to "true"
		set_persistent_string_variable "showNewTab" to "true"
		
		-- Set Menu Bar persistent variables
		set_persistent_string_variable "showCollapseMenuBar" to "true"
		set_persistent_string_variable "showSettings" to "false"
		set_persistent_string_variable "showBrowserTabs" to "true"
		set_persistent_string_variable "showEmojiPicker" to "true"
		set_persistent_string_variable "showCurrentLanguage" to "false"
		set_persistent_string_variable "showAppSwitcher" to "false"
		set_persistent_string_variable "showConnectGamepad" to "false"
		set_persistent_string_variable "showConnectBeats" to "false"
		set_persistent_string_variable "showConnectAirPods" to "false"
		set_persistent_string_variable "showBluetooth" to "false"
		set_persistent_string_variable "showWifi" to "false"
		set_persistent_string_variable "showMicrophoneMute" to "true"
		set_persistent_string_variable "showVolumeMute" to "false"
		set_persistent_string_variable "showVolumeDown" to "true"
		set_persistent_string_variable "showVolumeUp" to "true"
		set_persistent_string_variable "showBrightnessDown" to "true"
		set_persistent_string_variable "showBrightnessUp" to "true"
		
		-- Set Date/Time persistent variables
		set_persistent_string_variable "dateSize" to "dynamic"
		set_persistent_string_variable "timeFormat" to "12hour"
		
		-- Set Weather Widget persistent variables
		set_persistent_string_variable "showWeather" to "dynamic"
		
		-- Set Spotlight Key persistent variables
		set_persistent_string_variable "showSpotlight" to "dynamic"
		
		-- Set Siri Key persistent variables
		set_persistent_string_variable "showSiri" to "dynamic"
		
		-- Set Notification Center Key persistent variables
		set_persistent_string_variable "showNotificationCenter" to "dynamic"
		
		-- Set Dock Badge persistent variables
		set_persistent_string_variable "showSafariBadge" to "true"
		set_persistent_string_variable "showSafariPreviewBadge" to "false"
		set_persistent_string_variable "showChromeBadge" to "false"
		set_persistent_string_variable "showChromeCanaryBadge" to "false"
		set_persistent_string_variable "showFirefoxBadge" to "false"
		set_persistent_string_variable "showFaceTimeBadge" to "true"
		set_persistent_string_variable "showiMessageBadge" to "true"
		set_persistent_string_variable "showWhatsAppBadge" to "false"
		set_persistent_string_variable "showTelegramBadge" to "false"
		set_persistent_string_variable "showFranzBadge" to "false"
		set_persistent_string_variable "showSkypeBadge" to "false"
		set_persistent_string_variable "showSkypeBusinessBadge" to "false"
		set_persistent_string_variable "showYakYakBadge" to "false"
		set_persistent_string_variable "showChattyBadge" to "false"
		set_persistent_string_variable "showCaprineBadge" to "false"
		set_persistent_string_variable "showGoofyBadge" to "false"
		set_persistent_string_variable "showAppleMailBadge" to "true"
		set_persistent_string_variable "showOutlookBadge" to "false"
		set_persistent_string_variable "showSparkBadge" to "false"
		set_persistent_string_variable "showAstroBadge" to "false"
		set_persistent_string_variable "showAirmailBadge" to "false"
		set_persistent_string_variable "showPolymailBadge" to "false"
		set_persistent_string_variable "showBoxyBadge" to "false"
		set_persistent_string_variable "showMailplaneBadge" to "false"
		set_persistent_string_variable "showPostboxBadge" to "false"
		set_persistent_string_variable "showTrelloBadge" to "false"
		set_persistent_string_variable "showSlackBadge" to "false"
		set_persistent_string_variable "showDiscordBadge" to "false"
		set_persistent_string_variable "showDiscordCanaryBadge" to "false"
		set_persistent_string_variable "showTweetbotBadge" to "false"
		set_persistent_string_variable "showTwitterBadge" to "false"
		set_persistent_string_variable "showTwitchBadge" to "false"
		set_persistent_string_variable "showFacebookBadge" to "false"
		set_persistent_string_variable "showTumblrBadge" to "false"
		
		-- Refresh the Touch Bar
		trigger_named "Check All Settings"
	end try
end tell

Screenshots


Download: GoldenChaos-BTT 2.639-3


#1025

New version!

GoldenChaos-BTT 2.639-4 changelog

  • [Settings] Fixed an issue where toggling certain settings would cause the Touch Bar to go black for several seconds
  • [Settings] Reduced the appearance of graphical artifacts when toggling settings
  • [Settings] Added placeholder progress bar when applying settings (non-functional)

New preset format! (from 2.639-3, but it's still awesome)

GC-BTT 2.639-3 introduced expanded scripting support and a massively streamlined preset format that's easy to duplicate and customize yourself. This is an incredibly powerful way to make GC-BTT bend to your will and do things I never intended it to (in a good way). Please try it out!

Here's what the default preset looks like in the new version. It sets the desired persistent variables and then calls the "Check All Settings" named trigger, which refreshes every widget on the Touch Bar. But look a little closer and you'll see how between here and there you could do a lot more than just setting variables:

-- Default Settings
-- This is a PRESET script, called from group GC-BTT Settings

tell application "BetterTouchTool"
	try
		-- Set Escape Key persistent variables
		set_persistent_string_variable "escKeyStyle" to "combo"
		
		-- Set Calendar App persistent variables
		set_persistent_string_variable "calendarApp" to "fantastical"
		
		-- Set Home Strip persistent variables
		set_persistent_string_variable "showBackForward" to "true"
		set_persistent_string_variable "showRefresh" to "true"
		set_persistent_string_variable "showNewTab" to "true"
		
		-- Set Menu Bar persistent variables
		set_persistent_string_variable "menuBarSize" to "large"
		set_persistent_string_variable "showCollapseMenuBar" to "true"
		set_persistent_string_variable "showSettings" to "false"
		set_persistent_string_variable "showBrowserTabs" to "true"
		set_persistent_string_variable "showEmojiPicker" to "true"
		set_persistent_string_variable "showCurrentLanguage" to "false"
		set_persistent_string_variable "showAppSwitcher" to "false"
		set_persistent_string_variable "showConnectGamepad" to "false"
		set_persistent_string_variable "showConnectBeats" to "false"
		set_persistent_string_variable "showConnectAirPods" to "false"
		set_persistent_string_variable "showBluetooth" to "false"
		set_persistent_string_variable "showWifi" to "false"
		set_persistent_string_variable "showMicrophoneMute" to "true"
		set_persistent_string_variable "showVolumeMute" to "false"
		set_persistent_string_variable "showVolumeDown" to "true"
		set_persistent_string_variable "showVolumeUp" to "true"
		set_persistent_string_variable "showBrightnessDown" to "true"
		set_persistent_string_variable "showBrightnessUp" to "true"
		
		-- Set Date/Time persistent variables
		set_persistent_string_variable "dateSize" to "dynamic"
		set_persistent_string_variable "timeFormat" to "12hour"
		
		-- Set Weather Widget persistent variables
		set_persistent_string_variable "showWeather" to "dynamic"
		
		-- Set Spotlight Key persistent variables
		set_persistent_string_variable "showSpotlight" to "dynamic"
		
		-- Set Siri Key persistent variables
		set_persistent_string_variable "showSiri" to "dynamic"
		
		-- Set Notification Center Key persistent variables
		set_persistent_string_variable "showNotificationCenter" to "dynamic"
		
		-- Set Dock Badge persistent variables
		set_persistent_string_variable "showSafariBadge" to "true"
		set_persistent_string_variable "showSafariPreviewBadge" to "false"
		set_persistent_string_variable "showChromeBadge" to "false"
		set_persistent_string_variable "showChromeCanaryBadge" to "false"
		set_persistent_string_variable "showFirefoxBadge" to "false"
		set_persistent_string_variable "showFaceTimeBadge" to "true"
		set_persistent_string_variable "showiMessageBadge" to "true"
		set_persistent_string_variable "showWhatsAppBadge" to "false"
		set_persistent_string_variable "showTelegramBadge" to "false"
		set_persistent_string_variable "showFranzBadge" to "false"
		set_persistent_string_variable "showSkypeBadge" to "false"
		set_persistent_string_variable "showSkypeBusinessBadge" to "false"
		set_persistent_string_variable "showYakYakBadge" to "false"
		set_persistent_string_variable "showChattyBadge" to "false"
		set_persistent_string_variable "showCaprineBadge" to "false"
		set_persistent_string_variable "showGoofyBadge" to "false"
		set_persistent_string_variable "showAppleMailBadge" to "true"
		set_persistent_string_variable "showOutlookBadge" to "false"
		set_persistent_string_variable "showSparkBadge" to "false"
		set_persistent_string_variable "showAstroBadge" to "false"
		set_persistent_string_variable "showAirmailBadge" to "false"
		set_persistent_string_variable "showPolymailBadge" to "false"
		set_persistent_string_variable "showBoxyBadge" to "false"
		set_persistent_string_variable "showMailplaneBadge" to "false"
		set_persistent_string_variable "showPostboxBadge" to "false"
		set_persistent_string_variable "showTrelloBadge" to "false"
		set_persistent_string_variable "showSlackBadge" to "false"
		set_persistent_string_variable "showDiscordBadge" to "false"
		set_persistent_string_variable "showDiscordCanaryBadge" to "false"
		set_persistent_string_variable "showTweetbotBadge" to "false"
		set_persistent_string_variable "showTwitterBadge" to "false"
		set_persistent_string_variable "showTwitchBadge" to "false"
		set_persistent_string_variable "showFacebookBadge" to "false"
		set_persistent_string_variable "showTumblrBadge" to "false"
		
		-- Refresh the Touch Bar
		trigger_named "Check All Settings"
	end try
end tell

If you make a preset using the new preset format, post it here and I'll include it in GC-BTT! I would love to provide a Community Presets section in GC-BTT itself :slight_smile:

Screenshots

Download: GoldenChaos-BTT 2.639-4


#1043

A new stable version of GC-BTT arrives like the sun rises... once a month.

GC-BTT 2.641 represents an absolutely massive leap forward for the preset. There's so much to unpack, but the biggest have to be seamless upgrading and the sparkly new settings menu.

Once you upgrade, any settings you change will be preserved for future releases!

There's also a really cool new connectivity actions widget with headphone connection buttons and an Airplane Mode toggle. Tap and hold on Volume Up to get to it.

Finally, this version is also even more energy efficient than GC-BTT 2.600, ditching the custom Now Playing widget in favor of the newer native implementation. It also trims out extraneous scripts, and there are additional optimizations all over the place. Almost every script has been completely rewritten.

The result is the most flexible and functional GC-BTT - and, I think, the Touch Bar - has ever been, and sets the stage for expanded app support in the versions to come.

A huge thank you to everyone who installed and tested the experimental versions. You made this release amazing. If you think it can't get any better than this... hold on to your butts.

Full changelog below. Enjoy the release, everyone!

GoldenChaos-BTT 2.641 (Stable) changelog

This changelog contains all changes made since the previous stable version, 2.600.

  • [Helper Apps] No longer requires High Sierra Media Key Enabler! Uninstall it, you won't miss it.
  • [Keyboard Shortcuts] New keyboard shortcuts that don't conflict with other apps
    • Press โŒ˜โŒฅโ‡งP to access GC-BTT settings
    • Press โŒ˜โŒฅโ‡ง0 to toggle stock Touch Bar UI
    • Small-step brightness adjustment (โŒฅโ‡งโ˜€) now also adjusts the brightness of external displays
  • [Gestures] Three-finger swipe now adjusts brightness with small steps
  • [Gestures] Three-finger swipe now adjusts brightness of external displays
  • New GC-BTT Settings Menu
    • Customization options for:
      • Esc key selection
        • Use Combo Esc key
        • Use Normal Esc key
      • Home Strip key toggles
        • Back/Forward
        • Refresh
        • New Tab
      • Default calendar app selection
        • Fantastical
        • Calendar.app
      • Menu Bar icon toggles
        • Enable and disable individual menu bar icons
        • You can even disable the primary menu bar widgets, and they'll still show up when you hold Option.
      • Date/Time formats
        • Pick one of three static date/time formats or use the new Dynamic Date/Time option
        • 24-Hour Time option
      • Spotlight/Siri/Notification Center key settings
        • Set keys to always show, never show, or display dynamically
      • Dock badge toggles
        • Enable and disable individual dock badges
        • Make sure to enable only the dock badges you need, since these cost more energy than other widgets.
    • Seamless upgrades with just a tap with the "Reapply Settings" button
      • 8-step progress bar shows how far along GC-BTT is in restoring your settings or applying a preset
    • GC-BTT Presets! Presets are collections of settings that can be applied all at once.
      • All-new preset format contained within a single AppleScript; make your own and share it here! I'll include it in a future GC-BTT version :slight_smile:
    • Fully scriptable: You can use presets in combination with the new named setting triggers to make GC-BTT bend to your will.
      • For the full list of trigger names, check out the "Other" tab in the BTT preferences
    • Presets included with GC-BTT:
      • Default
        • Apples the "factory default" settings for GC-BTT
      • GC's GC-BTT
        • My personal daily driver made into a preset
  • [Now Playing] Native Now Playing widget with dramatic CPU usage improvements
  • [Calendar] Calendar widget now respects your system time format
  • [Calendar] Calendar widget now displays all-day events
  • [Menu Bar] Collapsible Menu Bar with three sizes
    • Date/Time dynamically reformats to small/medium/large sizes
    • Spotlight/Siri/Notification Center keys dynamically appear/disappear based on menu size
  • New Connectivity Actions modal widget
    • Airplane Mode toggle
    • Wi-Fi Toggle
    • Volume slider with percentage display
    • Connect to AirPods
    • Connect to Beats
    • Connect to Gamepad
  • New Current Language and Language Picker menu bar icon and widget group with flags for 47 different languages
  • [Dock Badges] Dock Badges now work properly with Handoff
  • [Dock Badges] New Dock Badges:
    • Firefox
    • Trello
  • Bug fixes, optimizations, and performance improvements across the board

New preset format!

GC-BTT 2.641 introduces expanded scripting support and a massively streamlined preset format that's easy to duplicate and customize yourself. This is an incredibly powerful way to make GC-BTT bend to your will and do things I never intended it to (in a good way). Please try it out!

Here's what the default preset looks like in the new version. It sets the desired persistent variables and then calls the "Check All Settings" named trigger, which refreshes every widget on the Touch Bar. But look a little closer and you'll see how between here and there you could do a lot more than just setting variables:

-- Default Settings
-- This is a PRESET script, called from group GC-BTT Settings

tell application "BetterTouchTool"
	try
		-- Set Escape Key persistent variables
		set_persistent_string_variable "escKeyStyle" to "combo"
		
		-- Set Calendar App persistent variables
		set_persistent_string_variable "calendarApp" to "fantastical"
		
		-- Set Home Strip persistent variables
		set_persistent_string_variable "showBackForward" to "true"
		set_persistent_string_variable "showRefresh" to "true"
		set_persistent_string_variable "showNewTab" to "true"
		
		-- Set Menu Bar persistent variables
		set_persistent_string_variable "menuBarSize" to "large"
		set_persistent_string_variable "showCollapseMenuBar" to "true"
		set_persistent_string_variable "showSettings" to "false"
		set_persistent_string_variable "showBrowserTabs" to "true"
		set_persistent_string_variable "showEmojiPicker" to "true"
		set_persistent_string_variable "showCurrentLanguage" to "false"
		set_persistent_string_variable "showAppSwitcher" to "false"
		set_persistent_string_variable "showConnectGamepad" to "false"
		set_persistent_string_variable "showConnectBeats" to "false"
		set_persistent_string_variable "showConnectAirPods" to "false"
		set_persistent_string_variable "showBluetooth" to "false"
		set_persistent_string_variable "showWifi" to "false"
		set_persistent_string_variable "showMicrophoneMute" to "true"
		set_persistent_string_variable "showVolumeMute" to "false"
		set_persistent_string_variable "showVolumeDown" to "true"
		set_persistent_string_variable "showVolumeUp" to "true"
		set_persistent_string_variable "showBrightnessDown" to "true"
		set_persistent_string_variable "showBrightnessUp" to "true"
		
		-- Set Date/Time persistent variables
		set_persistent_string_variable "dateSize" to "dynamic"
		set_persistent_string_variable "timeFormat" to "12hour"
		
		-- Set Weather Widget persistent variables
		set_persistent_string_variable "showWeather" to "dynamic"
		
		-- Set Spotlight Key persistent variables
		set_persistent_string_variable "showSpotlight" to "dynamic"
		
		-- Set Siri Key persistent variables
		set_persistent_string_variable "showSiri" to "dynamic"
		
		-- Set Notification Center Key persistent variables
		set_persistent_string_variable "showNotificationCenter" to "dynamic"
		
		-- Set Dock Badge persistent variables
		set_persistent_string_variable "showSafariBadge" to "true"
		set_persistent_string_variable "showSafariPreviewBadge" to "false"
		set_persistent_string_variable "showChromeBadge" to "false"
		set_persistent_string_variable "showChromeCanaryBadge" to "false"
		set_persistent_string_variable "showFirefoxBadge" to "false"
		set_persistent_string_variable "showFaceTimeBadge" to "true"
		set_persistent_string_variable "showiMessageBadge" to "true"
		set_persistent_string_variable "showWhatsAppBadge" to "false"
		set_persistent_string_variable "showTelegramBadge" to "false"
		set_persistent_string_variable "showFranzBadge" to "false"
		set_persistent_string_variable "showSkypeBadge" to "false"
		set_persistent_string_variable "showSkypeBusinessBadge" to "false"
		set_persistent_string_variable "showYakYakBadge" to "false"
		set_persistent_string_variable "showChattyBadge" to "false"
		set_persistent_string_variable "showCaprineBadge" to "false"
		set_persistent_string_variable "showGoofyBadge" to "false"
		set_persistent_string_variable "showAppleMailBadge" to "true"
		set_persistent_string_variable "showOutlookBadge" to "false"
		set_persistent_string_variable "showSparkBadge" to "false"
		set_persistent_string_variable "showAstroBadge" to "false"
		set_persistent_string_variable "showAirmailBadge" to "false"
		set_persistent_string_variable "showPolymailBadge" to "false"
		set_persistent_string_variable "showBoxyBadge" to "false"
		set_persistent_string_variable "showMailplaneBadge" to "false"
		set_persistent_string_variable "showPostboxBadge" to "false"
		set_persistent_string_variable "showTrelloBadge" to "false"
		set_persistent_string_variable "showSlackBadge" to "false"
		set_persistent_string_variable "showDiscordBadge" to "false"
		set_persistent_string_variable "showDiscordCanaryBadge" to "false"
		set_persistent_string_variable "showTweetbotBadge" to "false"
		set_persistent_string_variable "showTwitterBadge" to "false"
		set_persistent_string_variable "showTwitchBadge" to "false"
		set_persistent_string_variable "showFacebookBadge" to "false"
		set_persistent_string_variable "showTumblrBadge" to "false"
		
		-- Refresh the Touch Bar
		trigger_named "Check All Settings"
	end try
end tell

If you make a preset using the new preset format, post it here and I'll include it in GC-BTT! I would love to provide a Community Presets section in GC-BTT itself :slight_smile:

Screenshots


More screenshots coming later today - wanted to get this out as soon as I could!

Download: GoldenChaos-BTT 2.641