MacOS for PC users
A guide for lost souls
April 18, 2022 Ā· Felipe Vogel Ā·- Mouse usability
- Keyboard usability
- Banishing the top menu
- Scaling on my 1440p monitor
- A clipboard manager
- A better terminal
- Conclusion
Iāve always been a PC user, and I remained one even after I got into software development. Unpleasant and awful are words that come to many peopleās minds when they fathom development on Windows. But by the time I started coding just a few years ago, WSL had come onto the scene, which I think is even more developer-friendly than MacOS because itās real Linux.
But recently, as I started my first developer job, I got an obligatory MacBook Pro in the mail. I could no longer avoid the switch. And so, resigned to my fate, I proceeded to customize my Mac to suit my PC-tainted tastes. Hereās what I did.
Mouse usability
MacOS is not friendly to mouse users (except for Appleās Magic Mouse, but I shudder at the thought of using a mouse with only two buttons). My main issues out of the box were that the mouse cursor was way too slow, and scrolling was unusable with the mouse wheel. SteerMouse gave me options to fix both issues.
Keyboard usability
To enable Windows-style keyboard shortcuts, I did the following:
- Installed AltTab.
- Edited
~/Library/KeyBindings/DefaultKeyBinding.Dict
to consist of the snippet below. In case youāre wondering, hereās a full list of possible commands, hereās more documentation, and here are a bunch of examples.
{
"\UF729" = "moveToBeginningOfLine:"; // home
"\UF72B" = "moveToEndOfLine:"; // end
"$\UF729" = "moveToBeginningOfLineAndModifySelection:"; // shift home
"$\UF72B" = "moveToEndOfLineAndModifySelection:"; // shift end
"@\UF729" = "moveToBeginningOfDocument:"; // cmd home
"@\UF72B" = "moveToEndOfDocument:"; // cmd end
"@$\UF729" = "moveToBeginningOfDocumentAndModifySelection:"; // cmd shift home
"@$\UF72B" = "moveToEndOfDocumentAndModifySelection:"; // cmd shift end
"@\UF702" = "moveWordBackward:"; // cmd left
"@\UF703" = "moveWordForward:"; // cmd right
"@$\UF702" = "moveWordBackwardAndModifySelection:"; // cmd shift left
"@$\UF703" = "moveWordForwardAndModifySelection:"; // cmd shift right
"@\177" = "deleteWordBackward:"; // cmd backspace
"@\UF728" = "deleteWordForward:"; // cmd delete
}
- Added this script to Zsh config to enable familiar text-editing shortcuts in the terminal.
- Followed these steps to remove alt shortcuts for Unicode characters. This way I can use alt shortcuts for other things.
- Installed Keyboard Maestro and set up additional keyboard shortcuts that I like. Iām also using Keyboard Maestro for text expansion. (On Windows I use Beeftext.)
Banishing the top menu
I donāt like the MacOS top menu because it forces apps to break Fittsās Law, which suggests that important UI elements should be hard to miss with the mouse. For example, when Iām a fullscreen browser and I flick the mouse up to a tab that I want to switch to, the cursor usually ends up flying past the browser tabs and up into the top menu, requiring me to move back down a bit. This may seem like no big deal, but when I do these mouse movements many times every day, the extra movement adds up.
To fix this, I set the top menu to auto-hide. Then, to prevent the cursor from revealing the menu, I created a macro in Keyboard Maestro that sets a variable to %CurrentMouse[2]%
(the cursor Y position), and then moves the mouse down 10 pixels if that value is less than 10 pixels. This macro always runs, repeating every 0.03 seconds. In other words, Iāve made an invisible barrier 10 pixels below the top of the screen. To reveal the menu, Iāve set a shortcut in MacOS keyboard settings. The fact that I can no longer access the menu with the mouse is fine because I only rarely need to access the menu, compared with how often I need to press something at the top of an app.
Another annoyance of the top menu is that, shockingly, thereās no overflow menu for menu bar icons. When Iām using my laptop screen rather than my external monitor, thereās not much extra space on the right side of the menu, and not all the menu bar icons fit. Which means Iām out of luck if I need to get to an icon that isnāt one of the lucky few that are visible. Bartender adds the much-needed overflow menu so that all icons are accessible.
Scaling on my 1440p monitor
On my laptop monitor I can scale text and UI elements to be larger, but MacOS doesnāt give me the same option for my external monitor, where everything appears even more tiny. I could switch to a lower (non-native) resolution, but then everything gets blurry. Apparently, MacOS allows scaling only for 4K monitors. To fix this, Iām using BetterDummy, which gives me those missing scaling options.
A clipboard manager
Clipboard manager apps are awesome, and there are a bajillion of them out there. On Windows I use Ditto. The closest thing I found for MacOs is PasteBot.
A better terminal
To replace MacOSās ugly Terminal I downloaded iTerm2 and configured it according to this guide (minus installing Zsh, which now ships with MacOS).
Conclusion
I donāt think Iāll ever buy a Mac for personal use, and you can bet that if my company ever gives the option of a company PC laptop, Iāll jump on it and make the switch back without a second thought. But until then, my MacBook is at least tolerable. Plus, I can finally stop feeling inferior for using a PC when so many developers rave about their Apple products. Now Iāve been to the other side, and the grass is not greener there.