29

I constantly keep touching my MacBook Pro's Touch Bar by accident. I have larger hands and my fingers accidentally press buttons on the Touch Bar without me noticing all the time.

I like the Touch Bar and I'd like to use it, but I can't seem to find anywhere that will allow me to enable a lock screen type feature on the Touch Bar.

I'd really like to disable input unless explicitly enabled. How do I do that?

6
  • @qwerty why is the answer by n1000 below not usable ?
    – anki
    Jan 13 '20 at 18:54
  • @ankii Looks like an app for the previous one even without ESC (shudder).
    – qwerty_so
    Jan 14 '20 at 8:07
  • @ankii I installed the trial version, but it even did do anything with the touch bar. Looks too bloated (no, actually it IS too bloated). I'm about trying to 3D-print something (though there's little space above the strip).
    – qwerty_so
    Jan 14 '20 at 13:19
  • 1
    After 2 years suffering with the touch bar, my solution is to not buy any Mac that has one. Jan 9 at 17:30
  • 1
    @JohnChurchill Now there is one...
    – qwerty_so
    Oct 22 at 8:11
14

You can tinker with the Keyboard Settings to get something close to your desired behavior. Here's one idea:

Set "Touch Bar shows" to "Expanded Control Strip" and remove all buttons on the Control Strip using "Customize Touch Bar...". Then set "Press Fn key to" to "Show App Controls".

Now your Touch Bar will be empty unless you press fn to show the App Controls.

I also outline some ways to use Better Touch Tool to temporarily disable the Touch Bar in my answer on a related question.

2
  • Thanks for the idea. I wish I could toggle touch input instead though! Sick of blowing my ears out when I bump the volume on accident. May 31 '20 at 12:46
  • Спасибо, брат!! Feb 18 at 19:10
8

For my 2019 16" MBP I ended up with this:

$fn = 20;

module RoundRect(w, d, h2, r, scale=1) {
  h = h2/2;
  linear_extrude(height=2*h, scale=scale)
  translate([-w/2+r, -d/2+r, 0])
  minkowski() {
    circle(r=r);
    square([w-2*r, d-2*r]);
  }
}
//RoundRect(10, 11, 1, 2);

module Cover() {
  w = 242;
  d = 11;
  h = 1;
  h1 = 0.5;
  xside = 15;
  holeDist = 5;
  solid = xside + 11 * holeDist;
  holeW = (w - solid)/12;
  x0 = -w/2 + xside/2 + holeW/2;
  xDist = holeW + holeDist;

  mirror([0, 0, 1])
  difference() {
    union() {
      RoundRect(w+2, d+2, h, 3);
      translate([0, 0, h]) RoundRect(w+2, d+2, h1, 3, [w/(w+1), d/(d+1)]);
    }
    translate([0, 0, -1]) RoundRect(w, d, h+1, 2);
    for (x = [0:11]) translate([x0+x*xDist, 0, 0]) RoundRect(holeW, d-6, h+1, 1);
  }
}

Cover();

This is a cover for the touch bar you can create with OpenSCAD.

enter image description here

It fits snugly (at least for the over-extrusion my DIY Prusa creates). For now this thingy converts that nonsense-bar into something more like a "keyboard". You can rest your fingers on the strip and to actually press a key you need some explicit force inside the holes. And if eventually in some future I might have the need for that touch bar I can pull the cover off and store it aside.

For another MBP (elder one or different size) you need to adapt the sizes. The ones I used were measured with a caliper.

1
  • P.S. I found an (expensive) alternative way: sell the MBP and get the new one where they came to senses and restored a real keyboard. Well, giving them extra money for that does not really make me feel happier, though.
    – qwerty_so
    Oct 22 at 8:10
6

Fully disabling it seems not to be possible, as some vital functions like the Escape key require it.

What I found others doing was to put scotch tape over the touch bar. This makes it less sensitive up to completely unresponsive.

If you configure the touch bar to just show the control or function keys (whichever you prefer), and put some holes in the scotch tape before applying it, you can still press the keys and not do it accidentally.

I also suggest to log a complaint with Apple that the touch bar is too sensitive and gets pressed accidentally, so their engineers get a reason to improve it in future models, so no scotch tape is needed.

4
  • 2
    This is an awful kludge, but I might have to resort to this. I truly hate the Touch Bar on my new MacBook, enough so that I am thinking of ending my 30+ love affair with all things Apple in favor of Linux machinery. Dec 7 '19 at 13:42
  • @DavidHammen Yeah, too silly that thing? Who dares to let this run free for any Apple customer? I had been skipping that Esc-disater and thought it would be ok now. It isn't. Anyhow, I paid more than 3k and my old MBP really had its best days. The printed cover makes it acceptable. Somehow. At least it doesn't dang all times any more.
    – qwerty_so
    Feb 25 '20 at 22:53
  • apple's user experience gets worse every day. now we are down to scotch taping their garbage products Feb 26 '20 at 22:53
  • the very latest macbooks have a physical Esc key... must be from too many complaints about having only a virtual one... i just bought a "refurb" macbook pro but i knew instantly it wasn't a refurb when i opened it.. Apple will call new macbooks refurbs when clearing out defunct models at a lower price... i predicted the return of the physical Esc key because of my own frustration at accidental touches and new macbooks selling at refurb prices... additionally: i use Karabiner to disable the touch bar Esc button and map the tilde/backtick key to Esc
    – aequalsb
    Sep 25 '20 at 21:19
4

My Touch Bar was going cuckoo, and it would randomly press the buttons in it for no reason. Restarting the computer or killing the process did not solve the problem. While changing the Touch Bar options to "Expanded Control Strip" gave me the option to empty it, the 'esc' button was still there, randomly being pressed and driving me insane.

The way I solved the issue was less gentle than some of the options suggested here (but I didn't want to download a new app to deal with the touch bar):

  1. Find the touch app process in the "Activity Monitor", in my case named "Control Strip".
  2. Find its PID number (e.g. pidnum).
  3. Open the terminal and type kill -STOP pidnum. This will suspend the touch bar, which will now become unresponsive. Alternatively, one can also use: killall -STOP "ControlStrip"
  4. Since my 'esc' button is in the damn touch bar, I also changed my keyboard settings to use my 'caps lock' as 'esc' button. That is, System Preferences > Keyboard > Modifier Keys, and change accordingly.

If you need to turn the touch bar on again, you can always type kill -CONT pidnum.

One of the problems (potentially many) of my solution is that whenever you restart your computer, the touch bar will be enabled again. So you will need to kill -STOP the process again. You can always run a little script at the login that finds the PID number and runs the kill -STOP command. I haven't tried doing so, but it should be fairly straightforward.

2
  • 2
    Super use of signals! Great solution
    – bmike
    Oct 20 at 10:01
  • Great answer. Thankfully my touch doesn't include the ESC key so I can continue to use that. 2 mins ago
2

Unfortunately I do not have a touchbar Mac to test, but it seems like BetterTouchTool is able to do what you want:

enter image description here

3
  • 1
    With BetterTouchTool, you can also put a bunch of non-interactive widgets in there. I added a clock & calendar, mostly inspired by the post here: vas3k.com/blog/touchbar Super useful.
    – mik01aj
    Jun 29 '20 at 21:27
  • A limitation is that this does nothing to disable the touch bar on the Mac's lock / login screen. I added an answer to at least disable those keys via Karabiner-Elements, even though they're still visible.
    – user163629
    Nov 7 '20 at 7:17
  • I bought BetterTouchTool specifically because of that infuriating touch bar. It has a lot of nice features, but ultimately had to stop using it because the system was less stable while it was running. Sometimes sticking with the base OS is best if you have work to do. Jan 9 at 17:29
1

After checking this post and not finding a right and free option, I found Bar None:

https://shauninman.com/archive/2020/04/12/bar_none

It allows you to lock the Touch Bar unless you press the fn key. Now I have F controls by default, but they do not work, unless I press fn and then I get the Control Strip :D

1

As part of disabling the Touch Bar as much as possible on the Mac, here is how to prevent the default Touch Bar buttons on your lock screen / login screen from being able to do anything, if you accidentally press them.

My example is the 2019 16-inch MacBook Pro (physical Esc key) so it has 8 default irremovable buttons:

enter image description here

  1. Install Karabiner-Elements. Make sure your Touch Bar device is ticked under Devices tab for what it can modify.

  2. In Simple modifications tab, this is what it looks like to disable all the above 8 keys: enter image description here

  • The last four buttons are listed under Media controls list by default.

  • The first four buttons need to be added manually via key detection by Karabiner-EventViewer (Karabiner-Elements menu bar > EventViewer). For each button, press it in EventViewer then add it to Karabiner-Elements as shown by the arrow. enter image description here

  • Remap each key to VK_none to make them do nothing.

I have not found a way to disable the Touch Bar at the driver level (i.e. the kext files), based on a cursory look.

1

It's possible to completely remove everything from the touchbar by switching it to Expanded Control Stip mode in Keyboart Settings and then using "Customise Control Strip ..." in the same settings dialog to remove all the buttons from it.

Well, it's not physically disabling the device, but there's nothing in it to accidentally touch.

The volume keys can be re-mapped to something like Option <> (with Karabiner Elements for example)

Works on Big Sur 11.2.1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .