A .NET Developer Moves to the Mac
Disclaimer. I am not a Windows, Mac, or Linux zealot. As I get older and hopefully wiser, I realize that like most similar things (Ford vs. Chevy, etc.) one is not truly better than the other. They’re just different and most people like what they know best. So I’m now getting to know the Mac.
This is part one of a series of posts about my journey as a developer moving from a Microsoft OS to macOS. To give you an idea of how long I’ve been with OSes from Redmond, I was really excited when I could upgrade MS-DOS to support double-sided 5¼” disks. My travels since then have taken me through OS/21 Windows 3.1 (and 3.11) and finally to Windows 10.
I am all about using the command line and keyboard shortcuts. This series will focus on my efforts to become a productive .NET developer on a Macbook Pro (M1 processor) running macOS Monterey. There are other very useful blogs out there (see links below), but I haven’t found one that really helps to migrate from a keyboard-loving Windows developer to using the Mac.
The OS
The macOS is Unix-based, so if you use WSL or Linux, you’ll have a head start. The folder structure is quite different and the Mac’s UI does its best to hide it from you. This isn’t a Unix lesson, but a brief list of things you know how to do on Windows, but where is it on the Mac. In future posts, I’ll cover the terminal and dev tools.
Menus
There is only one menu and it’s always on the top of the screen, regardless of where the app’s window is on the screen. As you change apps, the menu changes to that app’s menu, which is pretty subtle. The min, max, and restore buttons are on the left instead of the right, and you’ll always be looking in the lower right for the clock, but it’s on the upper right along with “tray” icons.
Keyboard and Mouse
The keyboard is similar enough to be familiar, yet foreign enough to trip you up. This will take some getting used to.
You can map the keyboard to be pretty close to a PC using Karabiner and then installing
Complex Rules
by searching forPC
on the site
In Windows, you can scroll or click on buttons in a window regardless of focus. On the Mac, you can only click on something in a window if it has focus. For example, you’re in a Slack call, muted, and open the browser to watch some funny cat videos. When someone mentions you, you have to quickly unmute to pretend you’ve been paying attention, but clicking the unmute button only sets focus back to Slack. Click again to unmute.
Note I use Alt for the Option key on a mac keyboard. The ⌘ symbol is the Windows key.
Common Hotkeys
Action | Windows | Mac |
---|---|---|
Close app | Alt+F4 | ⌘+Q (usually) |
Close window | Ctrl+F4 | ⌘+W |
Cut/Copy/Paste/Find/SelectAll/Undo/Print | Ctrl+key |
⌘+key |
Delete | Delete | Delete or backspace |
File New/Open/Save | Ctrl+key |
⌘+key |
Find next | F3 | ⌘+G |
Find prev | Shift+F3 | Shift+⌘+G |
List box select | Click | Click |
List box select items | Click, Ctrl+Click | Click, ⌘+Click |
List box select range | Click, Shift+Click | Click, Shift+Click |
Open Emoji dialog | Win+. | ⌘+Shift+Space |
Replace | Ctrl+R or Ctrl+Shift+F | Alt+⌘+F, or ⌘+Shift+H |
SaveAs | Ctrl+Shift+S, Alt+F+A | ⌘+Shift+S (Duplicate) |
Undo/Redo | Ctrl+Z/Ctrl+Y/Ctrl+Shift+Z | ⌘+Z/Shift+⌘+Z |
You can’t use the keyboard in a Message Box by default. Change this by System Preferences → Keyboard → Shortcuts then check “Use keyboard navigation…”
Screen Capture
Action | Windows | Mac |
---|---|---|
Copy area of screen to clipboard | Shift+Win+s | Ctrl+Shift+⌘+4 |
Screen capture & record menu | Shift+⌘+5 | |
Screen to clipboard | Win+PrintScreen | Ctrl+Shift+⌘+3 |
(Leave off the Ctrl key on the Mac to save to a file on the desktop.)
Once an image is on the clipboard run Preview.app and do ⌘+N (File->New from clipboard). Then you can click the pen icon on the right (in blue below) to get some nice editing tools.
Cursor Movement
Another basic operation that’s just different enough to give you some heartburn.
Action | Win | Mac |
---|---|---|
Beginning/end of Line | Home/End | ⌘+left/right |
Move word left/right | Ctrl+arrow | Alt+Arrow (Ctrl+Arrow switches desktop) |
Top/Bottom of text | Ctrl+Home/End | ⌘+Up/Down |
Word right/left | Ctrl+left/right | Alt+left/right |
(Add shift to select text when moving on Win and Mac)
Window Management
Action | Windows | Mac |
---|---|---|
Cycle through windows of current app | Alt+Tab | ⌘+` |
Cycle through running apps | Alt+Tab | ⌘+Tab |
Dock a window left/right | Win+Left/right or drag | menu->Window->Tile Window to Left/Right |
Focus on the menu bar | Alt | Ctrl+F2 |
Maximize a window | Win+up, Dragging a window to top, double click title bar | Double click title bar |
Minimize a window | Win+down | ⌘+M |
Move window to v-desktop | Win+Tab, drag | Drag Window up passed the top of the screen to see virtual desktops and move windows around |
New v-desktop | Win+Ctrl+D | Drag Window up passed the top of the screen to add virtual desktop |
Peeks desktop | Win+, | F11 |
Put focus on the Dock | Ctrl+F3 , arrows, type a name to move, enter to launch | |
Show Mission Control (show all Windows) | Win+Tab | Ctrl Up (F3 supposed to) |
Switch v-desktops | Win+Ctrl+left/right | Ctrl+Left/Right |
Toggle dock | ⌘+Alt+D | |
Window Management tool | PowerToy’s FancyZones | Rectangle app |
One thing that you’ll find unsettling is that ⌘+tab cycles through apps, but not each window. So if you have multiple instances of Chrome open, ⌘+tab to get to Chrome, then ⌘+` to cycle between Chrome windows – that are not minimized. If a window is minimized it shows up in the Window menu with a diamond next to it.
And if you minimize all the windows and ⌘+tab to it, only the menu switches, and you’re gobsmacked as to where Chrome is. But if you look in the Window menu you see this. And you can select one to make it appear.
Find or Run Things (Win+s, Win+r)
Mac has Spotlight (⌘+space) for searching and launching anything. Windows PowerToys has Alt+space, which is very similar.
File Open Dialog
Like Finder mentioned below this is hard to use if you’re used to using file paths. The column view will make it a bit more Windows-friendly, but you can’t just put in a path like ~/myfile.txt
You can use the hotkeys mentioned below, but ⌘+Shift+G opens a dialog that allows you to paste or type in a path.
Sleep, Restart, Shutdown
The apple icon in the upper left has options for sleeping and shutting down the Mac.
Windows Feature Analogs
Clipboard history (Win+V)
You can install a third-party utility. I used FlyCut and so far it’s ok. I set Ctrl+Shift+⌘+V as its hotkey. Backspace will delete from the buffer, not delete.
Control Panel (Win+i and Control Panel)
System Preferences app in the Dock (TaskBar) has the most functionality. Search for the option you want. Monitors are under Displays.
Event Viewer, Device Manager
Hold Alt and press the Apple icon in the upper left then click System Information...
to get a read-only view of system settings.
- Hardware has device Info
- Network
- Software
- Frameworks
- Installation to show the history of installs
- Logs
For more logging check out Finder, then Shift+⌘+U
Utilities then Console
Explorer (Win+E)
Finder (⌘+Alt+Space) gets you close. If you’re used to accessing paths, you’ll be frustrated. There are some hotkeys to get to some folders, and Column view makes it a bit more of what you’re used to, but try going “up” to a parent folder. Put your common folders in Favorites for easier access.
- Shift+⌘+C Computer
- Shift+⌘+D Desktop
- Shift+⌘+H Home folder
- Alt+⌘+L Downloads
- Shift+⌘+N New folder
- Shift+⌘+O Documents
- Shift+⌘+U Utilities (see below)
- Move folders to Favorites by dragging (not shown in context menu)
- Shift+⌘+. to show hidden files
)
Task Manager (Ctrl+Shift+Esc)
Finder, then Shift+⌘+U Utilities then Activity Monitor
From here you can see running processes, and kill them. Note often lists, like in the activity monitor show up blank for a while with no indication something is happening. So some times you don’t know if the list is empty, or just waiting to be filled.
Next
In this blog, I’ve tried to give you a step up to quickly become familiar with using the macOS if you’ve come from a Windows environment. There is more to macOS that I’ve covered, but this should be a good start to get you going.
In Part 2, I’ll show how I customized the terminal and installed PowerShell.
Links
- Tips for developers switching from Windows to Mac by Cathal
- Making The Switch to MacOS by Brett Miller
- Apple’s Mac keyboard shortcuts
- Printable shortcut
-
OS/2 was an IBM-Microsoft venture and was a great OS, but alas the marketing of Microsoft was much better. (See Betamax) ↩