MacOS for PC users

A guide for lost souls

April 18, 2022 · Felipe Vogel ·

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:

”@\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 } ```

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.

👉 Next: Dot syntax and deep_fetch for Ruby hashes 👈 Previous: SQL and Active Record for junior Rails developers 🚀 Back to top