A (my) Mac setup guide

For a long time my Mac tasks have been limited to: boot into OSX, compile some C++ code, fix what needs to be fixed. If everything woks, commit and go back to Linux. This changed since I need a Mac for work. For some kind of development, as soon as iOS is a target, OSX is the only option. My Mac Pro 15 does a decent good job, and I like the hardware, but I do a lot of C and C++ compiling and I need to run the iOS simulator and the Android emulator. So having more CPUs, RAM and disk space became mandatory. This forced me to invest into a new MacBook Pro, so I (my company) ordered the 16 inch one.

Documenting the setup process

I have a check list for a Windows setup since this is something I do not very often.
I have more than one checklist for Linux in my head since I install Linux at least 2 times a year, so I kinda know what to do.
But I do have no list for a new MacBook installation, so I thought I take some notes.

I am not a Mac / OSX expert at, all and in fact I feel as a pretty noob on OSX. I think even my Windows knowledge is better than my OSX one. This is simply due to the hours of work I have spent on the various systems over the last years. So if you, dear reader, find any improvements or have any tips, please leave a comment below.

The essentials

These are, more or less, the same steps I do on any OS. Fixing the keyboard layout, getting some development tools and install some software.

First step, Keyboard layout

The very first thing I need on all of my machines is a useful keyboard layout. I have a US keyboard, since this is what I want and what works best with default shortcuts, but I need my äåßöü letters for my German and Swedish communications.

The keyboard layout that can do this is EN-US-altgr-intl nodeadkey.
I use this everywhere on each operating system, Linux, Windows, OSX.

Luckily I already found a solution some time ago so now it is just a matter of doing this:

git clone https://github.com/a4z/osxkeyboard.git

Change into the osxkeyboard directory and run

sudo cp US-Int-AltGr-No-DeadKey.keylayout /Library/Keyboard\ Layouts

Activate the layout.
System Preferences  Keyboard  Input sources, at the very end of the list (scroll down) there is a entry the others. Click on it so it will show the keyboard layout.

When this is done, it seems a reboot is required to have this keyboard fully installed and activated.

Now, having a useful keyboard, additional tasks ar possible.

Install XCode

This is required for homebrew and I need the development tools anyway..

I install XCode from the app center, only when I need an older version I install it via a download from the Apple developer site.

After installation,

xcode-select --install

Install homebrew

You can not do anything useful on a Mac without homebrew ;-)
(I know there are alternatives, but for me its homebrew)


This time I decided to use the build in terminal and get familiar with it. So far I was using iTerm2 and it is great!

But I think the terminal app from Mac has also some nice features, not sure if they are new, but, for example, clearing the Window command by command with +l is nice. So I will work with this for a while.


Since not too long ago Apple delivers zsh as the default shell. Its a license thing.

So far I did not care and used a recent bash version from homebrew. But now I will try zsh.
If Apple says this is the new shell, than I guess it is a good idea to follow this advice. 😉

Some things could be said about my first time with zsh. Maybe one day this will become a post on this blog. Just so much on this location: It is not a easy to change many years of bash habits :-)


There is a git available on OSX per default, and there is a newer one on brew. So far I am OK with the default one.

Finally generate new pairs of keys and register them where needed.

Install vs code

brew cask install visual-studio-code

Configuration is a topic for its own, I can spend quite a lot of time with a newly installed VS Code :-)

One thing is worth to mention here, I detected the new (at the time of writing this) synchronization option that let you get your settings, plugin selection and other configurations from a different machine. That is nice!

Install asdf

I am using asdf as my version manager for for a lot pf programming languages and also tools.

It is just amazing how this tool developed over the years.

With asdf installed I fetch the Ruby and Python plugin and the most recent versions of both, the rest can follow later.

Other tools

Then there are some additional tools, but those can be installed step by step when needed since they all exists either via brew or asdf. Maybe I will put them in a setup script the next time.


I do not do a lof of configuration on a Mac and use it mostly as it is. But there are a few things.

Mac Touch Bar

Some people do not like the touchbar at all, I have to say, I find it not that bad.

Configure touchbar to show F keys for some apps, for example VS Code.

My notes says it was in System Preferences  Keyboard  Shortcuts  Touchbar but now I have a System Preferences  Keyboard  Shortcuts  FN Function keys entry :-)
Anyhow, add there the apps that shall show the FN Keys per default there.


I remove most of the icons from doc, make doc smaller and make it auto hide. I do not use the dock very often, and if, then I just want to see what I use.


I need a simple calendar widget in the menubar beside the clock that can show me week numbers and itsycal does this.


Now, with the minimum config done, it is time to get some applications. I do not need many.


I have multiple browsers installed. I use vivaldi for my work profile and firefox for my private browsing. This is a nice split, since I use this notebook for work and at home. Just close Firefox and I am at work. I close Vivaldi, and work time is over.

This is also a good setup if you do home office or want a distraction free work environment. Use a browser for work where you are not locked in into social media, emails, streaming services, and all the other time eaters.

And I will also test Edge on OSX, just for fun :-)

All three browsers, and more, are available via brew (cask).

Some more IDEs

I have a JetBrains subscription for all the tools, so I install the toolbox app and use it to keep the JetBrains apps I use up to date.

Since I live in VS Code these days, this is basically just Android Studio, but from time to time I might have a need for one of the other apps, mostly CLion, mabye PyCharm and RubyMine.
And there is nothing I know about that could replace DataGrip


Of course I have to use some office apps (Microsoft) for work, I fetch them from the App Store.


Spotify comes via brew.


For VPN I like Tunnelblick which is available via brew.

Some notes to the new hardware

The good aspects

The Touch Bar
The touch bar is a nice gimmick. A lot of people do not like it, but I am OK with hardware experiments like that.

The speakers
Those are awesome. For a notebook
Even if this is not relevant at all because usually I have headphones if I need sound.

The specs
Compared to my 2015 MacBook this is a huge upgrade, and especially my most time consuming tasks will benefit tremendously.

Thunderbolt 3
Being on a dock with just one cable into the notebook is great!

The not so shiny aspects

The price …​
If it would not be for work and it therefore pays for it self (over a long time), I think I would not buy it (new).

A super huge trackpad …​
Far too large. It is ridiculous. It was much better on the 2015 model. I never had any issues with it, palm detection worked perfect.
On the new one I get random mouse events. I know, I am holding it wrong …​ ;-)

Just to be clear, I have nothing against big trackpads. On my desk I have a Magic Trackpad 2. This is huge but does not come into my way, since it is beside my keyboard. I like it. But that one on the new notebooks, this is just too much.

Only thunderbolt 3
I get it, but, …​ until the world is ready you need to run around with some additional equipment. I wish all the ports of my MacBookPro 2015 would be additional available.

What I miss

The magnetic charger was great, I miss it. I understand that the thunderbolt contact works different, but I find it somehow sad .


Over all, the notebook is not bad, I like the more CPUs, the more RAM, and the bigger storage. I like the screen and I think the keyboard is OK (even if I prefer ThinkPad keyboards).

After the basic setup I have the machine in a state I can use for work, the rest can be done step by step. As mentioned above, some utilities and tools are missing but they will be fetched when needed.

It is quite a fast process to get a new Mac work ready. If you know what to do as fast as other systems. And the next time I will be even faster thank to this list :-)

For me it is also possible to get a bit lost in detecting new details and try out new things when landing on a new machine. But this will follow later, now I can start using this MacBook as my new daily driver.