There are at least as many reasons to move to macOS as to stay away from it. So before starting this post, let me make a clear statement:
It's only your choice what OS you prefer! End the war about the best/worst OS.
I got the opportunity to try MacOS, and this is a collection of issues and how to fix them. Some of them feel like Bob Ross would have worked at Apple some time ago.
Control Speaker Volume of a HDMI/DP Device
It is not possible because MacOS does not support Customer Electronics Control. It would be nice to have this in <insert-any-year>, right? I think you should use SoundSource. It's a fine piece of software to overcome this issue and has excellent bonus features. It's worth every Cent.
Window Control is Inconsistent
Double click on the text within the title of Outlook for Mac does not enlarge the window to the full-screen size. It's probably a bug within all Microsoft for Mac products. No fix is available.
Change Scroll Behaviour per Device
You can not disable natural scrolling just for the mouse. Once you do, it is also disabled for the Trackpad. Also, if you toggle natural scrolling, it inverts horizontal scrolling. Well, it's a matter of taste. It is very odd being unable to configure input devices separately.
Fix 1: If you have a Logitech mouse, you can install Logitech Options to change the scrolling direction for each wheel on our mouse.
Fix 2: Somehow, I just got used to a dedicated Trackpad, and all my issues are gone.
Fix 3: I cannot remember how often BetterTouchTool repeatedly fixed something for me. Hands down: If you have any problem with any input device, this tool is the solution. Also, for the scroll direction problem:
Case Insensitive File System per Default
The file system is case-insensitive. That produces problems if you check out a git repository, which contains files which only differentiate by the case of the letters. Git will show you this message:
warning: the following paths have collided (e.g. case-sensitive
paths on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:
'AIProgrammer.Fitness/Concrete/CountDownFitness.cs'
'AIProgrammer.Fitness/Concrete/CountdownFitness.cs'
Honestly, something like this should not appear in a well-maintained repository (and this case has been fixed already).
You can fix this using a case-sensitive format like the one described in this blog post. Another way is to rerun your setup after changing your APFS partitions to the case-sensitive variant. But there are some trade-offs: Adobe programs and Steam may not run.
If your team uses Windows with case-insensitive file systems, it's okay! But watch out: Windows can activate case sensitivity per directory by now.
Home and End Key like in Windows/Linux
If your keyboard has a home and end key, you might observe a different behavior than Linux and Windows. Fortunately, there is a fix for it: https://www.iexplain.org/remap-home-and-end-buttons-for-external-keyboard-on-mac/.
Custom Keyboard Layout
Let's admit it: The German MacOS keyboard layout was never made for German developers as most commonly used chars like symbols, and braces are awkwardly hard to type. Therefore, most programmers use the US layout for their keyboard. But if you have German colleagues, you might need to umlauts like äöüß. There are two possible solutions to this.
Fix 1: A good friend of mine told me to use this layout by Uni Aachen. It maps the German special characters as option modifier input. The downside is that you might need some time to get used to it, as it's inconvenient, and different options keys (left, right) might be necessary.
Fix 2: Therefore, I started to use this keyboard layout, which keeps the position of all characters compared to the German keyboard layout but hides them by the Options key. So you need to learn to press the option key to write special chars – lean enough to me.
Control and Fn keys...
That's not only a problem of macOS or Macbooks, but also in Thinkpads: The outer left button is not [Ctrl] but [Fn], which can confuse your muscle memory.
Fix 1: While you can switch those buttons in most Thinkpads' BIOS, Karabiner comes to the rescue for macOS. Since the features partly overlap with BetterTouchTool, one or the other is sufficient for what you need.
Window Tiling Shortcuts
As clunky as Windows can be, as convenient are some of their shortcuts. Window tiling shortcuts are just one kind of feature I miss on macOS. Therefore, I suggest either Magnet, Tile, or BetterTouchTool. All are fine, but only Tile if for free. I recommend donating a few Euros if you go for Tile.
Shortcuts to display Finder or the Desktop
Another example of essential shortcuts to me is [Win] + [d] to show the Desktop and [Win] + [e] for the Explorer. The first one is not a real problem, though. You can use Touchbar for this or use [F5]. I suggest using [cmd] + [shift] + [d], as function keys with a Touchbar are not blind-type safe.
For the latter shortcut, you can use BetterTouchTool to configure a custom shortcut. It's not for free but brings a lot of features, and the 20 Euros are worth it. (Right now, you might sit in front of one of our planet's most luxurious technical devices. 20 Euros to support a developer? Common!)
A last alternative is to use the Finder search window, which is accessible by the global hotkey [cmd] + [opt] + [space]. It is not a real alternative, as it opens a search window after every keypress instead of bringing Finder to the front.
Switching apps, not Windows
The App Switcher switches between running programs and not opening Windows. Well, if you are used to working in a terminal like me, you might say: Sure makes sense this way. This approach is a bit rusty (40 years), and it has its pros and cons, but you need time to get used to it.
A possible lean fix for this might be Quitter, which kills your applications once they idle for too long.
Show Calendar by Click on System Clock
I never realized how many times I clicked on the date in the menu bar. Most of the time, I'd like to know what day in the week a particular day is. It doesn't matter if I am using Gnome or Windows because both will show you the current month – Gnome will even display all your appointments right in one place.
But not if you are using macOS!
Fix 1: A neat fix for this issue might be this small app. It's free, and it does what it should be. Besides, your appointments are missing. But ItSyCal is an alternative, which has appointments and is pretty customizable. Please consider a donation if you like it. Think about the countless hours developers are sitting on things like this. 5 Euros is a nice way to say thanks.
The final solution for this was a change in Layer 8. 😏
Fix 2: Use the Outlook Widget in your menu bar