Bettertouchtool Touch Bar
Love it or hate it, it seems that the Touch Bar is here to stay on the MacBook Pro. As such, it seems wise to me to make it more useful.
A little backstory first, though… earlier this year, David Sparks finally talked me into buying a Stream Deck to use at my desk. As with most things, he was right about how much I would come to love it.
The Stream Deck is incredibly flexible, but one of my most common use cases is to tap a single button on it to open a bunch of related Safari tabs when it comes time to prepare for a show.
For example, if I press the button with the MPU logo, it opens these pages:
- How to blank out your Touch Bar (almost) completely. If you don’t want to see anything on your Touch Bar unless you absolutely need it, you’re going to need to pay up for BetterTouchTool, an.
- BetterTouchTool offers a way to answer a lot of the Touch Bar’s most glaring deficiencies. This isn’t its only function, it’s actually a full on suite that let’s you customize virtually any interface on a Mac: mouse, keyboard, trackpad, even the Apple TV Siri remote.
进入设置 - Touch Bar (图一)。 图一、Touch Bar 设置. 关于AirPods连接问题,如果你是中文作为主要文字的系统,根据图二,将“connect”改为 “连接”、“disconnect”改为“断开连接”。 图二、AirPods设置.
- MPU episode schedule
- Folder of MPU Outlines
- The MPU page in Relay’s ad-tracking system
- The MPU page in the Relay FM CMS
I’m doing this via with Keyboard Maestro, another incredibly flexible tool. Here’s what that looks like, with my secret URLs redacted:
As you can see, on my Mac Pro, this is triggered by a specific button my Stream Deck, as pictured above.1
To re-use these macros on my MacBook Pro, I made a copy of them in Keyboard Maestro, which I have sync its data over Dropbox.
I then fired up BetterTouchTool, which among many other things, allows you to create custom UI elements on your notebook’s Touchbar, tying them to a wide range of actions. Turns out, you can even have BetterTouchTool become a trigger for Keyboard Maestro.
First, create a button in the Touch Bar section of BetterTouchTool, or a group that you can place buttons in, like I have:
The action you need to use is named “Execute Terminal Command (Async, non-blocking),” which makes the button fire off a script. Here’s the script itself:
osascript -e 'tell application 'Keyboard Maestro Engine' to do script 'PLACEHOLDER'
Where I have that placeholder text, you’ll need to paste in the UUID of the Keyboard Maestro macro you want to execute. To get that, you will need to select “Copy as UUID” in Keyboard Maestro:
… and then paste it into BetterTouchTool.
(While in Keyboard Maestro, be sure to set the trigger for the macro to be a script.)
When this is all done, you can tap a button on the Touch Bar and fire any Keyboard Maestro macro you desire.
Happy automating!
- The non-show buttons control various lights in my office and control media playback on the computer. The Migration Assistant icon launches my normal set of apps after a reboot. ↩
I love the Touch Bar. That's why I was so upset that Apple just sat on its useless user interface. So, inspired by Vas3k's popular blog post on the subject, and determined to make good on the promise that Apple broke, I've spent a (ridiculous) amount of time reworking the foundations of the Touch Bar into GoldenChaos-BTT: a true general purpose Touch Bar UI with support for tons of apps that's intuitive enough to make you love your Touch Bar again - or, more likely, for the first time.
Want to buy me a coffee? You can donate here: https://paypal.me/GoldenChaos
Thinking about buying BetterTouchTool because of this preset?Use this link and I'll get 40%. 🙂
Need help or have a feature request? Visit the GC-BTT thread on the BetterTouchTool forums and make a post!
Latest stable version: GoldenChaos-BTT 3.392
Latest experimental version: None
How to Install
- Make sure you're using the latest version of BetterTouchTool.
- Follow one of the two release links at the top of this post and click 'Direct import to BTT'.
- Say yes to BTT when it asks if you want to import the preset.
- [Upgrades only] Say yes when BTT asks if you want to overwrite your existing GC-BTT.
'Singlehandedly vindicates the Touch Bar's existence.' kdhyde on the BetterTouchTool forums
'Whenever someone calls the Touch Bar useless, I just show them this.' KungFuJoe on the BetterTouchTool forums
'The way Apple should have implemented the Touch Bar in the first place.' @wowthatisrandom, developer of Forecastbar and InstaCal
'What I would have wanted the Touch Bar to be stock.' truublue on the BetterTouchTool forums
'SUPERB.' u/townfox on Reddit
'Genius.' Harrumph on the BetterTouchTool forums
'INCREDIBLE.' peripatew on the BetterTouchTool forums
'A very big preset' Andreas Hegenberg, developer of BetterTouchTool
Home Strip
The default key set when nothing is open. Fullscreen doubles as escape key; tap for escape, long-press for fullscreen.
Open a browser, and browser controls appear in the Home Strip.
Open more apps to reveal a wide range of dynamic controls and widgets. Close apps to dismiss their controls.
Modifier Menus
Hold command, option, or control to access the app switcher, control strip, or window snapping controls.
Dynamic Menu Bar
Dynamic Menu Bar with three size options lets you dedicate as much or as little space to widgets as you like.
Widget Groups
Widget Groups like Emoji Picker, Browser Tabs, and Language Switcher replace the Home Strip, but not the Menu Bar.
Modal Widgets
Access expanded-view Modal Widgets by long-pressing on Weather, Now Playing, Reminders, Calendar, Volume, and more.
Dock Badges
Bettertouchtool Touch Bar Spotify
Dock Badges appear on the left side of the Touch Bar and remain sticky.
Built-in Dock Badge support for all of your favorite third party apps; enable or disable them in the GC-BTT Settings menu.
Dock Badges also support handoff!
Convenient Settings Window
The straightforward GC-BTT Settings panel (⌘⌥⇧P) makes it easy to deeply customize your Touch Bar.
Only install the latest version unless you have a specific troubleshooting reason. If you do need to install an older version for whatever reason, make sure the version of BetterTouchTool you're running is greater than or equal to the GoldenChaos-BTT version you're installing.
Notes
- Versions 3.186 and earlier require icalBuddy (
brew install ical-buddy
) for the reminders widgets to work. - Versions 3.065-4 and earlier require icalBuddy (
brew install ical-buddy
) for the calendar and reminders widget to work. - Versions 2.543 and earlier require the Python Requests module (
pip install requests
) and Locateme (brew install locateme
) for the weather widget to work. - Versions 2.531 and earlier require the calendar widget to first be edited to include the names of the calendars that you wish to display.
- Versions 2.516 and earlier require Location Helper and JSON Helper for the weather widget to work. Not compatible with macOS Mojave.
Version history
Bettertouchtool Touch Bar Presets
- [Verified] [Stable] 3.392 (Jun 30 2020)
- [Verified] [Stable] 3.368 (May 2 2020)
- [Experimental] 3.358 (Apr 16 2020)
- [Experimental] 3.352 (Mar 29 2020)
- [Experimental] 3.346 (Mar 17 2020)
- [Experimental] 3.335 (Feb 20 2020)
- [Verified] [Stable] 3.202 (Sep 18 2019)
- [Verified] [Stable] 3.201 (Sep 14 2019)
- [Verified] [Stable] 3.200 (Sep 13 2019)
- [Stable RC2] 3.194 (Sep 9 2019)
- [Stable RC1] 3.187 (Sep 8 2019)
- [Verified] [Experimental] 3.186 (Aug 23 2019)
- [Verified] [Experimental] 3.176 (Aug 8 2019)
- [Verified] [Experimental] 3.173 (Aug 8 2019)
- [Verified] [Experimental] 3.172-3 (Aug 4 2019)
- [Experimental] 3.172-2 (Aug 4 2019)
- [Verified] [Experimental] 3.172 (Aug 3 2019)
- [Experimental] 3.167 (Jul 24 2019)
- [Experimental] 3.065-4 (Jun 8 2019)
- [Experimental] 3.065-3 (Jun 8 2019)
- [Experimental] 3.065-2 (Jun 8 2019)
- [Experimental] 3.065 (Jun 6 2019)
- [Experimental] 3.061 (Jun 6 2019)
- [Experimental] 3.061 (Jun 5 2019)
- [Experimental] 2.850 (May 18 2019)
- [Experimental] 2.825 (May 12 2019)
- [Experimental] 2.814 (May 11 2019)
- [Experimental] 2.763 (Apr 23 2019)
- [Experimental] 2.760 (Apr 19 2019)
- [Experimental] 2.754 (Apr 8 2019)
- [Experimental] 2.723-5 (Mar 4 2019)
- [Experimental] 2.723-4 (Mar 2 2019)
- [Experimental] 2.723-3 (Mar 2 2019)
- [Experimental] 2.723-2 (Mar 1 2019)
- [Experimental] 2.723 (Feb 28 2019)
- [Experimental] 2.720 (Feb 26 2019)
- [Experimental] 2.719 (Feb 23 2019)
- [Experimental] 2.718 (Feb 22 2019)
- [Experimental] 2.706 (Feb 2 2019)
- [Experimental] 2.700 (Jan 26 2019)
- [Experimental] 2.698 (Jan 26 2019)
- [Experimental] 2.689 (Jan 10 2019)
- [Experimental] 2.686 (Jan 1 2019)
- [Experimental] 2.685 (Dec 30 2018)
- [Experimental] 2.671-2 (Dec 23 2018)
- [Experimental] 2.671 (Dec 22 2018)
- [Experimental] 2.670 (Dec 22 2018)
- [Experimental] 2.669-2 (Dec 21 2018)
- [Experimental] 2.669 (Dec 19 2018)
- [Experimental] 2.667 (Dec 18 2018)
- [Verified] [Stable] 2.641 (Sep 25 2018)
- [Experimental] 2.639-4 (Sep 23 2018)
- [Experimental] 2.639-3 (Sep 23 2018)
- [Experimental] 2.639-2 (Sep 22 2018)
- [Experimental] 2.639 (Sep 22 2018)
- [Experimental] 2.638 (Sep 12 2018)
- [Experimental] 2.636-3 (Sep 10 2018)
- [Experimental] 2.636-2 (Sep 10 2018)
- [Experimental] 2.636 (Sep 9 2018)
- [Experimental] 2.635 (Sep 7 2018)
- [Experimental] 2.634 (Sep 6 2018)
- [Experimental] 2.628 (Sep 4 2018)
- [Experimental] 2.627-2 (Sep 3 2018)
- [Experimental] 2.627 (Sep 3 2018)
- [Experimental] 2.626 'Stitch' (Sep 2 2018)
- [Experimental] 2.625 (Sep 1 2018)
- [Experimental] 2.624 (Aug 31 2018)
- [Experimental] 2.620-3 (Aug 31 2018)
- [Experimental] 2.620-2 (Aug 30 2018)
- [Experimental] 2.620 (Aug 30 2018)
- [Experimental] 2.610 (Aug 28 2018)
- [Experimental] 2.608-2 (Aug 27 2018)
- [Experimental] 2.608 (Aug 27 2018)
- [Experimental] 2.605-2 (Aug 26 2018)
- [Experimental] 2.605 (Aug 25 2018)
- [Verified] [Stable] 2.600 (Aug 23 2018)
- [Experimental] 2.566-4 (Aug 23 2018)
- [Experimental] 2.566-3 (Aug 22 2018)
- [Experimental] 2.566-2 (Aug 22 2018)
- [Experimental] 2.566 (Aug 22 2018)
- [Experimental] 2.563-6 (Aug 17 2018)
- [Experimental] 2.563-5 (Aug 17 2018)
- [Experimental] 2.563-4 (Aug 16 2018)
- [Experimental] 2.563-3 (Aug 16 2018)
- [Experimental] 2.563-2 (Aug 16 2018)
- [Experimental] 2.563 (Aug 16 2018)
- [Experimental] 2.561-5 (Aug 15 2018)
- [Experimental] 2.561-4 (Aug 15 2018)
- [Experimental] 2.561-3 (Aug 15 2018)
- [Experimental] 2.561-2 (Aug 15 2018)
- [Experimental] 2.561 (Aug 15 2018)
- [Experimental] 2.557-4 (Aug 14 2018)
- [Experimental] 2.557-3 (Aug 14 2018)
- [Experimental] 2.557-2 (Aug 14 2018)
- [Experimental] 2.557 (Aug 14 2018)
- [Experimental] 2.555 (Aug 13 2018)
- [Experimental] 2.553-2 (Aug 13 2018)
- [Experimental] 2.553 (Aug 12 2018)
- [Experimental] 2.551-2 (Aug 11 2018)
- [Experimental] 2.551 (Aug 11 2018)
- [Experimental] 2.550 (Aug 10 2018)
- [Experimental] 2.543 (Aug 7 2018)
- [Verified] [Experimental] 2.536-5 (Aug 2 2018)
- [Verified] [Stable] 2.536-4 (Aug 1 2018)
- [Verified] [Stable] 2.536-3 (Jul 30 2018)
- [Experimental] 2.536-2 (Jul 27 2018)
- [Experimental] 2.536 (Jul 27 2018)
- [Experimental] 2.532 (Jul 24 2018)
- [Experimental] 2.531-3 (Jul 24 2018)
- [Experimental] 2.531-2 (Jul 24 2018)
- [Experimental] 2.531 (Jul 24 2018)
- [Experimental] 2.530-2 (Jul 12 2018)
- [Experimental] 2.530 (Jul 10 2018)
- [Experimental] 2.526 (Jun 27 2018)
- [Experimental] 2.525-2 (Jun 23 2018)
- [Experimental] 2.525 (Jun 21 2018)
- [Experimental] 2.518-3 (Jun 15 2018)
- [Experimental] 2.518-2 (Jun 14 2018)
- [Experimental] 2.518 (Jun 13 2018, download unavailable)
- [Experimental] 2.516 (Jun 6 2018)
- [Verified] [Stable] 2.513 (Jun 1 2018, initial public release)