Making the Touch Bar finally useful
By abandoning crappy Apple guidelines
02 april 2018 :: 168623 views :: 2877 words

15-inch MacBook Pro with Touch Bar is my main work tool for more than a year. I use it every single day, all day long — to code, to process photos, and to write my blog posts, of course.

Back in 2017, I thought the Touch Bar had a vast potential to become engaging and helpful. I believed developers might support it in their applications. I was hoping there was a use for it. A year has passed, applications have been updated, but as a Pro user of Pro 15-inch laptop with a 3K Euro price tag, I do declare now — the Touch Bar still remains the useless shit and there is no hope Apple will fix it.

Things got even worse when Apple "reinvented" the Play/Pause button in High Sierra. Now it controls everything, from browser ads to notifications sound. Everything, except music. WAT?

As a machine, MacBook Pro is great. But not because of the Touch Bar. Touch Bar is an inflamed appendix, the same dumb shit as Siri. If Apple had implemented it as an additional row and not the F-keys replacement, everyone would forget about it in a couple of days.

The reason is simple — that's how you see your laptop 99% of the time:

If you have, well, HANDS, you hardly see the Touch Bar more than twice in two hours. The first time, when you're leaving to get some coffee, second time — when you back with the cup of hot flat white.

No pro-user ever thought of copying text using Touch Bar or something like this, but Apple guidelines restrict any unique features. So why do I even need this crap, if it does not give me unique capabilities and takes away my F-keys.

We're doomed. MacBooks treated us well, and any other laptop feels like a cheap plastic toy nailed to the floor. MacOS is still the best, combining the usability of popular operating systems and flexibility of Unix.

What else do we have? Ubuntu? To use Photoshop in Wine? To watch Plasma crashes like in good old days? No, thanks.

For the whole year, I've pushed myself to use the Touch Bar. I've paid for that!

Here's my pro opinion: Fuck your guidelines, Apple. The Touch Bar should always be predictable. I don't want to remember button configuration for every app. I want it to be useful and informative. Just give me an additional screen, like in the early fan renders.

Early renders from Martin Hajek.

Saying "extra screen" gives me childhood flashbacks. To my sleepless nights, when I was coding Conky configs in ArchLinux to display on my desktop the most important things: the weather, CPU-usage, IP-address, and a FULL-SCREEN CLOCK, of course — a pride and envy of every nerdy schoolboy.

If you were lucky to be an average healthy teenager, I'll show you this nightmare:

Ew, creeps! Let this shit stay in 2007. I went through it. I grew up. It looks cool and "cyberpunky" for literally one evening. You never use it afterwards.

Things must be useful, not "beautiful"

The grown-up me started to track my everyday habits and search Reddit for ideas. The only proper app for Touch Bar customization I've found, is BetterTouchTool. It's still buggy, user-hostile and drains the battery, but it only costs $5. Reasonable price, I recommend it.

I've read every single guide to the BetterTouchTool setup and came up with the following conclusions based on whether it works for me or not.

Cool Crap
Name of track playing
Deadly necessary feature. I'm always wondering what Spotify's Discover brings me.
Bitcoin price
No idea why this widget is so popular. Worthless distraction.
Volume buttons
Buttons rock. It's always faster to tap, not slide.
Brightness slider
Requires lots of space but used once a week when watching "Futurama" at night.
Finder in one click
I want to have instant access to Finder, anywhere. Default Touch Bar can't do that. Weird.
RAM usage
Useless. In modern OS it's always nearly 100%. That's natural.

No, I'm not only listening to music and open Finder all day. I code, deploy my dockers, etc. All my work instruments are set up flawlessly. Touch Bar can't make them work better.

However, a lot of processes are always running in the background. Music keeps playing. New ideas pop-up — would be good to write them down. Touch Bar is a perfect place for everything you don't need all the time, but it's a pain in the ass to look for such things when they're needed.

E.g., the eyedropper tool, to take the hex color code from the screen.

Two weeks of experiments — writing widgets, trying them, observing, and now I have something to show you:

Obviously, something will change with time, but today I already see that I've started to use the Touch Bar more. Now I remember where every button is. Eat it, Jony Ive!

Here's the story of every single button.

ESC forever!

Several times My Touch Bar stopped working while Esc was hidden. No idea why hide it at all. Esc must always be tied to its rightful place. It is now, thanks to BetterTouchTool.

The button next to Esc returns the default Touch Bar, just in case you need something from standard functionality. Haven't used it yet, though.

A predictable Finder

Imagine, you want to drag a picture to a browser to upload. You click the Finder, but instead opening a new window at the same screen, it carries you away somewhere. Just because there's another Finder window opened there. And it's fucking impossible to fix that with standard MacOS tools.

Here comes the AppleScript. First, it forces a Finder to open a new window, then tells it to switch to home folder and opens it on top. That's the only way I've found.

Despite that, AppleScript is fun. You feel like playing a text RPG when coding.

tell application "Finder"
    make new Finder window
    set target of front window to path to home folder as string
end tell

upd: Found a nasty bug. Holding the Finder button for a while will launch a million Finder windows, so you're gonna have a really bad time.

Sublime Text and Notes

I've found out that I always use these two apps and want to access them from anywhere. I don't want to exit the full-screen of my IDE to write down something to Notes.

These are two simple app buttons. Just like at the Dock. You can add any. At first, I've added a bunch of unnecessary ones, but only those two survived. I don't want to replace the Dock but improve usability.

Currently playing Spotify or iTunes track

Standard Touch Bar will never support the most useful feature — to display the name of track playing. Instead, Apple provides you with huge and useless timeline slider. I don't know what's playing but know the moment in time. Handy.

Fuck sliders and buttons. I only need a track name and a cute pictogram. You can easily google AppleScript configuration for that. It works with both Spotify and iTunes, even when both are active.

In my script, the click on the name of track playing works as "next". Priceless. Especially when "Nickelback" song interferes the AI-generated playlist.

Whether there is a way to get back to the previous track? Nope. The "prev" button used rarely. No need to waste space. When I need that for some reason, I just open an app.

if application "Spotify" is running then
    tell application "Spotify"
        if player state is playing then
            return (get artist of current track) & " - " & (get name of current track)
            return ""
        end if
    end tell
end if
if application "iTunes" is running then
    tell application "iTunes"
        if player state is playing then
            return (get artist of current track) & " - " & (get name of current track)
            return ""
        end if
    end tell
end if
return ""


Would be cool to display the name of the YouTube video on the Touch Bar, right?

There's a script for that too. It looks through open Safari tabs and finds one that starts with Then, displays tab title on the Touch Bar. Clicking on it gets you to the exact tab. Neat!

We have a little problem here, though. BetterTouchTool can only run the script by a timer. There's no way to make a simple browser plug-in for displaying the text. You have a script running once in 20 seconds, and praying it won't overload the CPU.

upd: CPU is fine, but the battery doesn't. I've turned it off, for now, waiting for BTT updates or will probably write my own tool with external scripting support.

if application "Safari" is running then
    tell application "Safari"
        repeat with t in tabs of windows
            tell t
                if URL starts with "" then
                    return name of t as text
                end if
            end tell
        end repeat
    end tell
end if
return ""


I do not practice a time-management. My life cycle only requires a simple todo-list and the It would be nice to see the top reminder on the Touch Bar.

It turned out very well. E.g., for the whole week, I was trying not to forget to extend my insurance. Did that immediately when it became an eyesore on my Touch Bar. Now I can even tell my dumb Siri "hey, remind me to buy milk" and it appears on the Touch Bar. Nailed it — two useless things replaced with the useful one. Nice.

Clicking on the reminder opens the full Reminders list, so you can check the completed and add more.

Nay, it's not a problem if the reminder is too long, or Spotify grabbed the whole space since you can scroll this area of Touch Bar.

tell application "Reminders"
    set activeReminders to name of (reminders of list "Reminders" whose completed is false)
    if activeReminders is not {} then
        return first item of activeReminders
        return ""
    end if
end tell


My personal guilty pleasure is to see what's the weather outside now. Imagine this — there's freaking cold, and you're sitting by the fireplace, covered in bees plaid, with a glass of hot wine. Or — it seems like there's a sunny and warm day, which means the adventures time!

A long time ago I even had a little utility for tracking the current weather in a tray. Probably the first app I bought.

Now I decided to make one for the Touch Bar. The main issue of such things is the hardcoded location. I always forget to change it when traveling. It's nicely done in, where location traced through an IP.

With JSON Helper and Location Helper installed, you can write it youself in couple of lines of AppleScript. No need to buy $1.99 app from AppStore. PROFIT!

If you need a full report, clicking brings you straight to the local weather website. You can even add emojis to display the cloud cover. Take a look at our GitHub repo at the end of the article, some of my readers already made that.

tell application "Location Helper"
    set clocation_coords to get location coordinates
    tell application "JSON Helper"
        set weather to fetch JSON from "" & item 1 of clocation_coords & "&lon=" & item 2 of clocation_coords & "&units=metric&appid=YOUR_OWM_APP_ID"
        set temp to temp of main of weather as string
        return temp & "°C"
    end tell
end tell

The "coffee break" button

Vital rule of the office life — block your laptop when leaving. No need to explain this.

I'm not a fan of "hot corners" so I always used the Ctrl + Shift + Power shortcut before. Pity, it doesn't work on new MacBooks because of the Touch ID. The good news is you can add a button for this action to the standard Touch Bar.

I decided to steal this feature and make the "coffee break" button. It locks the laptop and switches the screen off. Extremely useful and has an adorable pictogram — everyone notices it and asks how to get one too.

No-slider volume

Once again. I hate sliders on Touch Bar. Changing them to buttons was the first thing I did. Now I can tap them blindly. Guess, even my stress level significantly dropped when I stopped trying to put the sliders in the desired position. It was same to adjusting hot water in a shower — you're never gonna get it without burning yourself.

Look how close the buttons to each other at this part of the Touch Bar. Guidelines state to place them 2x wider. For me though, it seems like the perfect placement. My favourite size.

Smart "Play"

Starting from MacOS High Sierra Play/Pause button globally controls the system sounds. It is not a problem on iPhone, but on Mac it controls every ad that pop-up with more priority than Spotify. You tap the button and don't understand, why it doesn't stop the music. Thanks, Apple. Very convinient.

It seems like Apple is extremely proud of their amazing innovative idea and don't even think of fixing it. Some random guy from the Internet solved it with a High Sierra Media Key Enabler utility. Works neatly.

Also take a look at the BeardedSpice if you want even more control.

The AppleScript for my Play/Pause button controls iTunes and Spotify, depending on active one. If both are not running, it will automatically launch Spotify. No need to think of it.

if application "iTunes" is running then
    tell application "iTunes" to playpause
    tell application "Spotify" to playpause
end if

Here's one more script to change the play/pause pictogram:

if application "Spotify" is running then
    tell application "Spotify"
        if player state is playing then return "pause"
    end tell
end if

if application "iTunes" is running then
    tell application "iTunes"
        if player state is playing then return "pause"
    end tell
end if

return "play"

THE Clock

Yeah, previously I've mentioned that only Linux nerds set clock everywhere. All so. Though, there are two important and unobvious uses for them on Touch Bar.

First: you will always occasionally tap any key, placed above the Backspace/Delete button. That's the suffering area, where no action must be placed, if you don't want to activate it every 5 minutes. Probably, that's why Apple put Siri there (analysts were satisfied, I bet). For us, it's merely a spot for a clock.

Second: full-screen apps. Most of the day my PyCharm opened in a full-screen. It helps me to efficiently use the screen and not get distracted by "critical bug fix asap" messages. The thing is, you can't see time in a full-screen mode you and could easily miss the important meeting.

In short, it's useful.

Here's how my full config looks like:

Don't forget to uncheck MacOS Control Strip in Settings to fully replace the default Touch Bar:

Here's the complete preset, as promised: vas3k_btt_v2.json. To import it into your BetterTouchTool, click Manage presets —> Import. To make Weather work, you also need the JSON Helper and Location Helper.

Try it. It's easy. You only need an evening to sort it out. Probably you compile something great, and Apple will hire us all because we're cool.

upd: A lot of cool guys wanted to share their presets too, so we created a GitHub-repo for that. Feel free to add your own:

Comments ↓
kshmir ⸬ 04 April 2018, 20:51 ⸬ Buenos Aires, AR ⸬ Apple logs
I've done the same ever since the first day I got my touch bar, I just added a keyboard shortcut to roll back to default mode, in some apps it's useful, some apps it's not.

I have automatic F2 and F12 appear when using VSCode for example.
Delete ⸬ 04 April 2018, 21:52 ⸬ IT ⸬ Windows logs
Esc is nice, but I would pay for a real Delete key at the very right...
cowardlydragon ⸬ 04 April 2018, 21:55 ⸬ Minneapolis, US ⸬ Apple logs
If they wanted a dedicated widget display space, why not put two lcds in the unused area next to the touchpad below the keyboard? There are two solid 4" x 5" areas that could display widgets.

As for "interactive" sections, custom buttons should go on bars on the left and right sides of the keyboard. Oh there's two speakers there? who gives a crap, impress us Apple. Make a combined speaker/display.

Or put some stuff on the unused bezel where the CIA monitoring camera already is.

But keep the goddamn function keys.
JosPatat ⸬ 05 April 2018, 02:04 ⸬ Geluwe, BE ⸬ Apple logs
Unless I'm mistaken, when using a fullscreen app, you can just hover your mouse where the menubar supposed to be and it pops up. That's how I check the time when in fullscreen.
Steve ⸬ 05 April 2018, 02:27 ⸬ Aix-en-Provence, FR ⸬ Windows logs
In response to your rhetorical question "What else do we have? Ubuntu? To use Photoshop in Wine? "

There is the Windows Linux subsystem in Windows 10. You can leave Apple and its bullshit behind.
Nah ⸬ 05 April 2018, 02:57 ⸬ San Jose, US ⸬ Apple logs
@Steve but then you have to use Windows. No thanks.
Alex ⸬ 05 April 2018, 06:46 ⸬ Bucharest, RO ⸬ Apple logs
Hmmm, I'm trying to import your json but for some reason i get an error saying: "Sorry, the preset couldn't be imported as it seems to be in the wrong format".
I'm using the version: 2.422
Any ideas?

Alex ⸬ 05 April 2018, 07:06 ⸬ Hellevoetsluis, NL ⸬ Apple logs
Nevermind, I found a workaround (or actually I think this is how you should do it in the first place).
I exported the default preset and overwrite the code in your json and import it back again.
Sorry if that was the obvious way for anyone else.
AshNehete ⸬ 05 April 2018, 07:36 ⸬ Mumbai, IN ⸬ Linux logs
Might be completely unrelated, but since you have put so much thought into the touch bar and the fact that it occurred to me while reading this article:

How would you feel if the whole keyboard was converted into a touch bar (board). Moving away from the mechanical keys to one's on the touch surface.

I'm not a Mac user although love the touch and feel of the touch bar. Makes me ecstatic to think the whole keyboard can be given that look and feel. Maybe customisations can be made as mentioned in this article, but with more flexibility in terms of position (from 1D to 2D space).

Anyway, wondering what are your views on this?
meh ⸬ 05 April 2018, 08:29 ⸬ CH ⸬ Apple logs
sadly you can't fix the keyboard itself. in comparison to the pre touch-bar macbooks, the pressure point for the keys is way to low...

if you are a terminal user (if they may really exist), another handy option for the missing ESC-key is to change the capslock (who is using that anyway) to escape.
vas3k ⸬ 05 April 2018, 08:40 ⸬ LT ⸬ Apple logs
AshNehete, if Apple makes a new MacBook Pro generation with a screen-keyboard (as we see in the patents), it will be very sad for me. After all these years with Apple I will forced to look for another laptop, sorry. I can not imagine how it is possible to type on the screen just as effectively as on a physical keyboard.

But it seems to me that this patent is made just to be here (like thousands of other unused Apple patents). To troll other companies or something like that. Maximum I believe that this can be an "absolutely new" device, something in between the ipad and macbook. But who knows.
Alexander Hultnér ⸬ 05 April 2018, 10:04 ⸬ SE ⸬ Apple logs
In case you missed it you can lock the screen with CMD+CTRL+q nowadays, threw me up as well when they changed the behaviour but once you learn the new shortcut it's much nice to have it on the keyboard anyway :)

Anyway nice article. I don't really use the touchbar a lot personally but I'm also mainly using my computer docked with an external keyboard so it doesn't really bother me that much.
Andreas Hegenberg ⸬ 05 April 2018, 10:13 ⸬ Munich, DE ⸬ Apple logs
BetterTouchTool author here :-)
Thanks a lot for the cool guide (and for the critique which is definitely welcome and valid. I'm just starting to work on the Touch Bar functionalities again after having created them about a year ago).

I think you have an important point in that it should be possible to update widgets from outside of BTT.
So this morning I have made a few changes and added the ability to either trigger the widget's script via Apple Script or via a custom URL (btt://refreshwidget/uuid) or to update the content of a widget via either Apple Script or a custom URL.

Triggering a custom url should be easily possible from within a Browser extension (e.g. via window.location or

This will be available in the next alpha later today and I'd appreciate feedback on whether this helps your usecase ( or on Github: ).
NM is too short ⸬ 05 April 2018, 12:24 ⸬ Minneapolis, US ⸬ Apple logs
Gave up on Apple a long time ago, but the following 3 'features' are unforgivable:
1. The touch bar
2. Trading all ports for USB-C (including the mag-safe power connection, which could be its own sin)
3. The new keyboard

For the price, you can buy two Dells and set them up with your preferred Linux distro.
Jason Osgood ⸬ 05 April 2018, 12:29 ⸬ Renton, US ⸬ Apple logs
Nicely done. Thanks for sharing.

TL;DR: You used BetterTouchTool to transform the Touch Bar into a useful, usable, touchable Menu Bar.
Simon ⸬ 05 April 2018, 13:25 ⸬ Ingersheim, DE ⸬ Apple logs
Doesnt work for me....

unable to import your .json... also exporting the default.json and overwrite with your data doesnt work...

anyone able to import that json or could explain how to do it in more detail?

Done... now it works
Andreas Hegenberg ⸬ 05 April 2018, 13:32 ⸬ Munich, DE ⸬ Apple logs
@Simon save this json file to your computer:

Then go to the BetterTouchTool preferences and click "manage presets", then click the import button.
Vital ⸬ 05 April 2018, 15:54 ⸬ Chicago, US ⸬ Windows logs
Haha! I love this blog post! One of the best I've read. Screw Apple. I just switched back to a Windows Machine out of frustration.. the results? 5x USB ports (2x 2.0, 2x 3.0, 1x C) + Thunderbolt3 + SD + HDMI + Mini DisplayPort. The machine is a MSI GS63VR STEALTH Pro-078 for reference.
Diragor ⸬ 05 April 2018, 16:32 ⸬ Phoenix, US ⸬ Apple logs
My whole preset is not that interesting, but I do have one super useful button that people might be interested in.

I have several external drives connected to a dock that I use with my MacBook Pro at my desk. When I want to disconnect the laptop and take it away from the desk, it's a pain to eject all of those drives manually, so I made a BTT button that disconnects them all and then opens a Finder window so I can see when it's done (as a separate action following this script).

tell application "Finder" to eject (every disk whose ejectable is true and local volume is true and free space is not equal to 0)
Anjin ⸬ 05 April 2018, 19:28 ⸬ Venice, US ⸬ Apple logs
If you are a Safari user, and you've adopted using the reading list to easily remember and share articles between devices, I highly recommend adding an "Add to Reading List" button and a "Open Reading List" button. I use them all the damn time now!
Hex ⸬ 06 April 2018, 09:50 ⸬ Jacksonville, US ⸬ Apple logs
Kudos, on listening to Hybrid, one of my favorites :)
Vince ⸬ 06 April 2018, 12:11 ⸬ El Segundo, US ⸬ Apple logs
One day my 17" 2011 MacBook will breakdown and I'll get this.

(Actually, I'll probably get it repaired again. It still does everything just fine.)
Leo Tindall ⸬ 06 April 2018, 13:39 ⸬ Beloit, US ⸬ Linux logs
> MacBooks treated us well, and any other laptop feels like a cheap plastic toy nailed to the floor.

Uh. Have you used any non-Apple laptops that cost more than $700?

> MacOS is still the best [...] What else do we have? Ubuntu? To use Photoshop in Wine? To watch Plasma crashes like in good old days? No, thanks.

This makes me think you haven't tried a Linux-based operating system SINCE the "good old days". Works fine, nowadays.

> RAM usage: Useless. In modern OS it's always nearly 100%. That's natural.

If you include buffers and cache, maybe, but why would you? Or do you mean that your applications often use nearly 100% memory? If so, I hate to break it to you, but that's a symptom of your ridiculously expensive laptop... not having enough RAM.

I know these seem like pointless gripes, but like... why are you such a jerk to people who use Linux? You spend time in three separate places making fun of Linux users. What the heck does that accomplish?
Jasper ⸬ 06 April 2018, 20:48 ⸬ Rotterdam, NL ⸬ Apple logs
It would be cool to have this bar just below the menubar on the mac itself :-)

Any cool tools that can do that?
Lusiphur ⸬ 07 April 2018, 18:45 ⸬ Arnold, GB ⸬ Apple logs
Just doesn't work I am afraid.

Installed BTT.
Imported your config.
Touchbar remains the same.

Got it working but I am not sure how. I had to disable Touch Bar support in BTT. Quit the app. Restart. Enable Touchbar Support and it worked from then on.
Toxblh ⸬ 09 April 2018, 13:33 ⸬ London, GB ⸬ Apple logs
I writing analogue BTT only for TouchBar customisation. - welcome
Jeff ⸬ 09 April 2018, 16:13 ⸬ Stockton, US ⸬ Apple logs
Just a heads up: if you're writing out the widgets yourself be sure to set the interval for the reminder widget to a high value. I noticed my battery tank and found tccd sucking up 50-60% of CPU time because it was busy checking that BTT was authorized to read reminders. Even at the default 5 seconds the impact was huge.
fitzage ⸬ 10 April 2018, 22:24 ⸬ Tucson, US ⸬ Apple logs
Your article prompted me to finish mine. I'm using BTT in significantly different ways from you, but it's made me really depend on the Touch Bar.

I'm going to look at some of the ideas you have here and come up with ways to tweak my global BTT settings without breaking the app-specific shortcuts I use now.
Daniel ⸬ 03 May 2018, 19:42 ⸬ São Paulo, BR ⸬ Apple logs
Hi, Just a quick question. The weather is returning a value which is too long.
Something like: 22, 71ºC instead of 22ºC.

Do you know can I fix it?

Thank you. Great presets, BTW.
Alex ⸬ 20 May 2018, 06:37 ⸬ Tacoma, US ⸬ Apple logs
Firstly, I see you were listening to M|O|O|N. You’re a man of culture.

Secondly, this is a great article. Thank you for the read, looks like I’ll finally find some use in the touch bar.

josh909 ⸬ 21 May 2018, 01:00 ⸬ Maroubra, AU ⸬ Apple logs
Great article - cheers!

Can anyone tell me how to customise the weather widget for a certain location - in this case, Sydney Australia.

Thanks in advance!
John Soboll ⸬ 29 May 2018, 13:58 ⸬ Brooklyn, US ⸬ Apple logs
Hi everyone. Quick question:

Does downloading/using this in any way void/affect my Mac's warranty with Apple? I'm still within the 14-day grace period for this MacBook, and testing this tool would be the determining factor of whether or not I return it. Would hate if this did anything to prevent me from doing that.

Thanks in advance!
Nick ⸬ 03 June 2018, 21:24 ⸬ NL ⸬ Apple logs
Hi John,

You can test any software you want, there is no way it would affect your warranty or return period in any way.
J ('try Billy') ⸬ 25 June 2018, 18:43 ⸬ Stockholm, SE ⸬ Apple logs
Sorry, it looks like too much work for little result.

I only interact with the touch bar when I sit down at the computer then I change volume and brightness and then I never look back.

For me it's a no-touch-bar.

Sure, I use the touch bar occasionally to access the escape and function keys when really necessary.

But it breaks my workflow since I have to "look down" and figure out what is going on down there. I really avoid using it as much as possible.

Yes. It would be nice to have a system wide touch bar displaying custom widgets like clock, weather, cpu etcetera.

But personally I would prefer it to display RSS news a like a scrolling text spanning the full with of the bar. I mean that would be a really useful since the dimensions are really optimal for scrolling text.

But this is Apple and their message to their customers is FU.

I mean the users are not even allowed to change theme anymore. It really confuses me that the user is still allowed to change the desktop wallpaper. It doesn't make any sense, Apple wise. People should be working so they can buy more Apple products right, not changing wallpapers?

I will wait for the hack that takes full control of the touch bar. Full width scrolling text, system wide, customizable. Taking control of some space the corner is not for me.

Nice work and effort but no.
(don't fill this field) :: telegram :: twitter :: instagram :: facebook :: github