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.
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.
, 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.
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.
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.
What I do is configure git for multiple personalities.
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!
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.
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
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.
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.
Those are awesome. For a notebook
Even if this is not relevant at all because usually I have headphones if I need sound.
Compared to my 2015 MacBook this is a huge upgrade, and especially my most time consuming tasks will benefit tremendously.
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.