I was a Windows fan all my life, both at home since I was 10 years old, and at work for 8 years of my frontend development career. However, when I moved jobs recently I was given a MacBook Pro, and so I had little choice but to dive headfirst into everything MacOS. It was a bit strange at first and it honestly took me a few days to get settled in with the Mac, but once I did, I really started to like it.
From the beginning, there were a couple of things I missed about Windows, and some alternative apps that I had to find. In this article, I go through some of the things that helped me, in the hope that I can help smoothen the ride for other developers starting out on their Windows to Mac journey.
Package manager ๐ฆ
I used to use Chocolatey as my package manager on Windows. I found it really useful to install and organise all of my various packages, and so I wanted to find the best alternative for Mac. Brew was the answer! I've been using it for the past year and haven't had any issues or missing features compared to Chocolatey.
Terminal ๐บ
ConEmu was my go-to terminal on Windows and so I was pretty bummed out when I realised that it wasn't supported on Mac. After asking some folks on my team, they suggested iTerm2 and I must admit it's equally fantastic.
One feature that is not included in iTerm2 though is the ability to display the currently active git branch at a glance. Worry not! oh-my-zsh to the rescue ๐ฆธโโ๏ธ You can install it using this curl command and hey presto, you now see those nice pretty git branches in your terminal.
Similar to ConEmu, I use a feature in iTerm2 called "window arrangements" to automatically launch tabs whenever I open the terminal. I find this really handy, as it automatically navigates to the correct directory and opens my regular 3 git
, serve
and test
tabs for me. This feature has saved me countless hours over the years!
Finder ๐
Finder is the default file manager on the Mac and it's equivalent to Windows Explorer, with some differences. The biggest difference for me was the lack of a classic cut and paste. On Windows you could simply press ctrl
+ x
and ctrl
+ v
. However, to do this on Mac you have to select the file and then press cmd
+ c
and cmd
+ option
+ v
.
Hidden Files
To show hidden files in Finder just press command
+ shift
+ .
.
If you want to show hidden files by default just open your terminal and run this command:
defaults write com.apple.finder AppleShowAllFiles YES; killall Finder;
Split screen ๐ป
I often use split screen to view both the browser and VS Code side by side. On Windows, this is quite simple to do using a feature called Snap Assist. You simply just drag a window to the edge of the screen and then select the other window you want to show beside it.
Again I was pretty disappointed to find out that you couldn't easily achieve this on the Mac. Not to worry though, it does have a feature called Split View, which is close enough for me. It's not as quick and easy but gets the job done.
Window management app
A reader suggested Rectangle for split screen window management and I must say, I'm impressed!
MS Paint ๐จ
Oh man, how I loved this app. As a frontend developer, I was constantly taking screenshots, pasting them into Paint and then drawing arrows, boxes and text on top of them to include in JIRA tickets, emails etc. I even remember using it to create some icons back in the day. I couldn't believe the Mac didn't have a native paint app. However, I found two solutions that helped me dry my tears.
1. Shape detection in Preview
I may be easily amused, but this feature blew my mind when I first tried it. When you take a screenshot (command
+ shift
+ 3
), a thumbnail will appear in the bottom right corner of the screen. Once you click on the thumbnail, the native Preview app on the Mac will open. From here you can draw a rough circle, square, or arrow and if it's recognised as a standard shape, itโs replaced by that shape. How cool is that?!
2. Sketchpad
One drawback to the native Preview app is that you can't simply copy and paste two images onto one canvas. Again, I do this a lot when creating "before and after" screenshots of tasks I'm working on. It's so much easier to convey this in one single side-by-side image instead of two separate ones.
Again MS Paint was great for this, so I had to find an alternative. I tried lots of Mac apps, browser extensions and web apps but struggled to find anything suitable, user friendly, and free, which had similar features to MS Paint. Finally, I found it! Sketchpad is a fantastic web app where you can quickly copy and paste images side by side, draw, add text, fill vectors and lots more.
Screenshots and video recording ๐น
I touched on this earlier, but as a frontend developer, I take a lot of screenshots and recordings so that I can attach them to JIRA tickets, Slack messages, emails and so on. I think that this is an important part of any frontend developer's workflow, so I wanted to go through it in a bit more detail.
Basic screenshot
Using the command
+ shift
+ 3
shortcut, you can take a screenshot of the currently active screen. You should then see a thumbnail appear in the right bottom corner of your screen. Clicking on this will bring up the native Preview app, which (as mentioned earlier) you can use to draw on the image. It will save the image to your default screenshots folder on your Mac, which is useful if you want to refer back to it later.
Capture a portion of the screen
Using the command
+ shift
+ 4
shortcut, you can take a screenshot of a portion of the screen. This will save the image to your Mac. Out of all the screenshot options, I probably use this the most.
Capture a portion of the screen and copy to clipboard
Using the command
+ shift
+ control
+ 4
shortcut, you can take a screenshot of a portion of the screen. The difference between this and the previous shortcut is that it will only copy the image to your clipboard. It will not save the image to your Mac. This is useful if you want to quickly copy and paste screenshots into chat or an email body, but not take up space on your hard drive.
Screenshot a window
Using the command
+ shift
+ control
+ space
shortcut, you can take a screenshot of a particular window.
Record the screen
Using the command
+ shift
+ 5
shortcut, you will see a toolbar appear which allows you to record the entire screen, or just a portion of it.
To stop recording, just press the same command
+ shift
+ 5
shortcut again and press the "stop" button. I use this very often in PRs, or when showing my team some early progress of a feature I'm working on.
You can even trim the beginning and end of the video using this button:
Noteworthy screenshot app
I thought it was worth calling out a great free tool which I've found very useful called Shottr. It hasn't fully replaced the native screenshot functionality for me, but it's mighty close.
Shortcuts โจ๏ธ
First of all, the keyboard is subtly different compared to Windows. The command
key is what you'll use for most shortcuts and commands, it's mostly similar to the ctrl
key on Windows. In most cases, shortcuts that require the use of the alt
key on windows will use the option
key on Mac.
Once I got used to these differences I started to look up various shortcuts for applications I use every day. Below are only some of the shortcuts I use, but here is the full list if you need it.
Basics
Shortcut | Description |
---|---|
command + x
|
Cut |
command + c
|
Copy |
command + v
|
Paste |
command + w
|
Close window |
command + z
|
Undo |
command + spacebar
|
Open spotlight to quickly find and open apps, documents, and other files. |
command + tab
|
Switch apps |
command + n
|
New finder window |
command + delete
|
Delete file / folder |
command + shift + .
|
Show hidden files in Finder |
control + down arrow
|
Show all windows of the active app (i.e all Chrome windows) |
command + shift + 3
|
Take a screenshot of the currently active screen |
command + shift + 4
|
Take a screenshot a portion of the screen |
command + shift + 4 + space
|
Take a sccreenshot of a window of your choosing |
command + shift + control + 4
|
Take a screenshot of a portion of the screen and copy it to the clipboard |
command + c then command + option + v
|
Cut and paste files in finder |
enter |
Rename selected file or folder |
Text editing
Shortcut | Description |
---|---|
command + left arrow
|
Go to beginning of line |
command + right arrow
|
Go to end of line |
command + control + spacebar
|
Show Emoji viewer ๐ |
command + shift + v
|
Paste without formatting |
option + backspace
|
Delete word |
command + backspace
|
Delete all text left of cursor |
Chrome
Shortcut | Description |
---|---|
command + option + i
|
Open dev tools |
command + r
|
Reload page |
command + f
|
Search within the page |
command + shift + t
|
Open last closed tab |
Slack
Shortcut | Description |
---|---|
command + shift + c
|
Format higlighted text to code |
command + k
|
Quick switcher |
command + shift + u
|
Add link text (You can also paste a link directly onto highlighted text to achieve the same) |
iTerm2
Shortcut | Description |
---|---|
control + u
|
Delete line |
control + y
|
Restore previous deleted line. This is handy if you need to run another command then come back to the previous one. |
command + t
|
New tab |
VS Code
For VS Code, I have customised a lot of the shortcuts myself as I personally think they make more sense and are easier to remember, so I've included them below. However, here's a list of the default out-of-the-box shortcuts.
Shortcut | Description |
---|---|
command + click
|
Go to definition |
command + p
|
Quick search |
option + left arrow
|
Go back |
option + right arrow
|
Go forward |
command + d
|
Copy lines down i.e duplicate line of code |
control + e
|
Add cursor to next matching text |
command + /
|
Comment out line |
command + backspace
|
Delete line |
command + \
|
Open file in side pane |
Final thoughts ๐ค
You might wonder if I miss Windows for frontend development, well my answer is "kinda but not really". Yes, Windows does some things better, but Mac has some of its own advantages. I think Mac is a happy medium for software developers who work on a lot of backend code as it's based on Unix, runs most Linux applications but is still user friendly. However, as a frontend developer, all I really need is VS Code and a browser to do my work, both of which work exactly the same regardless of which OS I'm using.
Hopefully, this article can make the Windows to Mac switch that small bit easier for you. If you found this article useful, or have some tips of your own, feel free to leave a comment ๐
Useful resources ๐
I found these resources useful when learning the basics during my Windows to Mac switcharoo:
- Mac tips for Windows switchers
- A list of Windows and Mac terms to help you find what youโre looking for.
Want more? ๐ข
I mainly write about real-world tech topics I face in my everyday life as a frontend developer. If this appeals to you, then feel free to follow me on Twitter for more: https://twitter.com/cmacdonnacha
Bye for now ๐
Top comments (28)
What caused me more trouble to get used to it was the window management, which is very easily done in windows with
win key
+direction
is not that easy in mac. For that, I use Magnet (magnet.crowdcafe.com/index.html). Which has a ton of options for window management. I use a 34"screen alongside a 15" laptop screen. It makes my life much easier!Yea readers have suggested Spectacle and Rectangle too so it's a hot topic. You have to pay for Magnet right? How does it differ to Rectangle? I like how Rectangle has snap assist but I'd really love if when I drag one windows that the other takes up the remaining space.
Oh I know what you mean. Like in windows, where if you place lets say, the window in the right side, you'd get the option to set the left side with any remaining window. Sadly this doesnt happen with magnet, however, you'get like 20+ of sizing options that really make a difference when you are working with big screens. I personally like it very much and it's the closest I've found to windows window management.
Great thanks ๐
if you have a trackpad (that is very cool) you can use swish, I love it
I don't but I've heard good things about them. I've been pretty happy with my MX Master mouse as it has a lot of shortcut buttons too. I really like the trackpad on the laptop but I have the laptop closed most of the time when at home so I might look at getting on external one.
I don't know if it could fit here but I found this calculator, Numi, very helpful when using a Mac.
Nice and helpful article by the way ๐
Numi is incredibly useful. @leviarista good share!
Thanks, glad you found it helpful and thanks for the suggestion, looks cool!
I had a similar experience years ago. I still maintain a Windows environment, but MacOS is my platform of choice.
There are a couple of things I want to recommend that I think you'll enjoy. Have a look at PowerLevel10k for zsh in iTerm. Here's what your CLI might look like after setting it up:
Also I have been really enjoying JetBrains Mono font with ligatures enabled:
Lastly, if you're a die-hard VSCode fan, check out Azure Data Studio and don't let the name fool you as it's not only for Azure. I use this regularly at work for MSSQL and most often no longer need SSMS. So much faster and easier to deal with.
Hope this is useful. Thanks for the post.
Nice one. Thanks for all those recommendations ๐
Very well written and very helpful!
For split screen window adjustments I would suggest Spectacle (spectacleapp.com). It's free and it offers pretty much any possible window layout customization and you can adjust the keyboard shortcuts yourself.
Also a small note - I notice you mentioned command + shift + i to be the hotkey for showing hidden files in Finder. I don't know if you have a different configuration, but in my case it is the shortcut to open the iCloud drive in Finder and the hotkey for displaying hidden files is command + shift + . (which I think is the default).
Thanks, glad you found it helpful!
Thank you for the tip on Spectacle, I didn't even think to look at apps to solve this problem for me so I will check that out.
Also thanks for heads up on the incorrect shortcut, I have fixed that now ๐ค
I thought it will be an article like:
"How to switch from windows to mac? - don't, use linux, spare money instead of stupidity" :D
Thx the shortcuts, there were a few what I did not know before.
An extra thing for screen recording.
By default the recorder does not have any audio, so better to create a sound aggregate in the midi config tool, then use that to have mic and output in the same time.
Yea, money doesn't matter when it's a company issued Macbook ๐
For screen recording I personally never need audio, just use it to show a feature working. Good tip though. I use the new Slack video recording feature if I do need to explain things which is great!
A free alternative to Spectacle is Rectangle this is just as good a tool as spectacle.
Alfred is also good but honestly speaking unless you need to get into an app really fast or run some macro or something it's really not "entirely" worth the effort. I think the default spotlight search is a blessing
Additionally like one other user here mentioned, Azure Data studio is a must have if you're working with DB's often.
I'm pretty sure Spectacle is free, probably since it's no longer being maintained.
I'll give Rectangle a go though, thanks.
Very useful article, one of the most surprising things coming from Windows/Linux to Mac are the touchpad gestures which are amazing and once you learn them you use them all the time. ๐
I actually use a Magic Keyboard and MX Master mouse most of the time while I work from home. I use the touchpad while on the road though and agree, it's very intuitive.
Same!
I don't work on mac, but I'm surprised that Alfred isn't on here. Mac people seem to love it.
Yea, I'm still pretty new to Mac, been Windows pretty much my whole life. Never heard of Alfred so will give it a go thanks ๐
Most important of all : To OPEN A FILE --> Command + โฌ๏ธ
Since "Enter" Key just renames it. LOL
Yea, I found that funny when I first tried to open a file ๐
Great ๐๐ป
Some comments have been hidden by the post's author - find out more