GoldenChaos-BTT: A complete Touch Bar UI replacement preset

touch-bar
window-snapping
keyboard

#647

That is weird. Well, in this new version I moved the location of the toggle scripts, so it should work this time! Hopefully :stuck_out_tongue:

GoldenChaos-BTT 2.608-2 changelog

  • Added Skype for Business dock badge widget
  • Fixed an issue where Skype's dock badge widget would mistakenly look for Telegram's badge
  • Added third state to menu bar collapse, now cycles between Large / Medium / Small sizes
  • Adjusted emoji and app switcher widgets to take advantage of all three menu bar sizes

Screenshots





Download: GoldenChaos-BTT 2.608-2


#679

New experimental version! Quite a few changes in this one.

GoldenChaos-BTT 2.610

  • Dramatic energy and CPU usage improvements
  • Preset no longer requires High Sierra Media Key Enabler
  • Moved to native Now Playing widget, deprecated previous Now Playing widgets
  • iTunes and Spotify Actions are now combined into a single Now Playing Actions group
  • Added GC-BTT settings modal
    • Enable the GC-BTT Settings button inside of BetterTouchTool, then tap it to access settings
    • Easily toggle between using combo and normal esc keys across the preset
    • Includes button to hide the settings button when you're done
    • More settings to come, feel free to suggest some!
    • Also, someone please suggest a keyboard shortcut to trigger the settings modal :stuck_out_tongue:

Known issues

  • Trying to view 7-Day Forecast crashes BTT for some reason @Andreas_Hegenberg
  • Chrome Now Playing no longer works because it is not supported by the native Now Playing widget; I may re-include Now Playing widgets for unsupported apps

Screenshots


New GC-BTT settings button (disabled by default)



Toggle all the things (just two things for now)



Fullscreen buttons automatically added to UI when using normal esc keys



Normal esc key works everywhere!


Customized layouts like this can now be set up in just a few seconds.

Download: GoldenChaos-BTT 2.610


#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