From Windows to MacOS


Charles Onesti

Head of Engineering FY22

Charles is the up-and-coming Head of Engineering, charged with leading the engineering team into FY22 (and beyond)!


Since starting my work at DEV, I have had to make the adjustment to the Mac operating system.  This article is especially relevant to developers who also are making the switch from Windows to MacOS.  I will be showcasing the various adjustments I made to my Mac to make the transition more comfortable.  I believe this article is also helpful for people who are already familiar with MacOS who might want to implement some of the features I think Windows does better.  Thankfully for Macs, the System Preferences have extensive customizability and in cases where it doesn’t, I have always been able to find third party programs to get the job done.


Starting at the surface level, while most PC keyboards have a row of function keys above the numbers, the newest Macbooks have a touch screen bar.  At DEV, our software engineers use VSCode which supports many keyboard shortcuts with function keys.  For a full list of VSCodes shortcuts visit Keyboard shortcuts for macOS.  On most machines that run windows, the function keys are built in and there is generally a function lock key that can switch their utility from system wide preferences like volume, brightness etc. to the application specific Fn shortcuts.  The touch bar on new Macbooks seems to prevent this, In order to access the function keys on a mac you must hold the Fn key in the bottom left and then the touch bar will display F1-F12.  You can, however, achieve the same result as a PC function lock by going into your Mac’s System Preferences > Keyboard > Keyboard > Touch Bar Shows option and setting it to “F1, F2, etc. keys”.  If you are someone who uses the F1-12 shortcuts I would recommend this because it eliminates the need to hold down the Fn key every time.


The Macbook trackpad is excellent, but for someone who is used to a right click partition it can be a bit frustrating.  This ones a quick fix so give it a try and see if you like it. System Preferences > Trackpad > Point & Click > Secondary Click > “click in the bottom right corner”.


Ever been typing quickly only to get your writing destroyed like tHIS?  I have never found a good use for the caps lock key.  In fact it only exists on the keyboard as a relic from the past when it was used on typewriters where the shift key was more difficult to hold.  These days, the shift key is so easy to press that I don't see why the caps lock still exists.  On a Macbook, I was happy to find out that it can easily be disabled or rebound to another function by going to System Preferences > Keyboard > Keyboard > Modifier Keys > Caps Lock.  Currently, I have it bound to do nothing but if your mac doesn’t have an escape key, it might be handy to bind it to the caps lock key. Test around with it!


When I work on projects, I generally connect my Macbook to a monitor and a mouse to speed up navigation and organize my work.  Plugging in a mouse, however, did not work because the scroll wheel was inverted.  Under System Preferences > Trackpad > Scroll & Zoom, I prefer the “scroll direction: Natural” setting for scrolling with two fingers on the trackpad.  However, this setting extends to a mouse if you use one so scrolling down on the wheel makes the viewer move up.  Changing the setting made it work properly for the mouse but inverted scrolling for the trackpad.  To resolve the conflict, I installed a small third party program: Scroll Reverser for macOS.  Now I can pinpoint and reverse the scrolling for only a mouse and keep natural scrolling only for the trackpad.


If I could choose one thing that Windows 10 clearly does better than MacOS is with managing open windows (makes sense right!?).  What I mean is opening, closing, resizing, minimizing, and moving your application windows.  Starting with minimizing, Macs do this weird thing where they put the window in the dock at the bottom of the screen.  Personally I prefer activating the setting found at System Preferences > Dock > “Minimize windows into application icon”.  I am the kind of person who likes to keep their workspace very organized so I prefer having windows of the same application collapse into their application icon in the dock.  In the case of minimizing multiple windows of the same application I use a force click on the app icon to bring up all the application windows.

Next, let’s look at maximizing the viewer for an app and split screening.  Clicking the green button in the top left of any application will “enter fullscreen mode” This creates a new desktop-like space for your application at the very end of your existing desktops. This also eliminates the dock and header unless you hover your mouse towards the top or bottom of the screen.  Coming from Windows, I find this feature more disruptive than helpful since it makes navigation away harder and it messes with where my viewer is relative to the  other desktops I have open.  Instead I would rather have an easy way to maximize the window within the same desktop the window is already in without removing the dock or header.  Fortunately this is easily achieved by holding down the option key.  Hovering over the button will also give you the option to “Move Window to Left/Right Side of Screen” which is handy for split screening applications.  If you are used to the way Windows does this you can install a third party program like  BetterTouchTool to make your application windows maximize when slammed against the top of the screen and split screen when slammed against the sides.

And lastly but most importantly, if you are someone who ever uses multiple desktops or “Spaces” as your Macbook calls them (which you definitely should use if you don’t), for your own sake please disable this setting found at: System Preferences > Mission Control > Automatically rearrange Spaces based on most recent use.  If you don’t disable this setting I have found that your desktops will get shuffled around every so often and it will make navigation a nightmare if you are using multiple desktops.  For web developers this can mean moving from your IDE (Integrated Development Environment) to the terminal or to a web browser and back.


On the more technical side, Macbooks differ from PC’s in their command lines.  The Mac OS uses a Unix terminal.  In the newest macbooks, the default command line is the Z-Shell, often abbreviated to zsh.  In previous versions, macbooks have used the Bourne-again Shell or Bash for short.  The differences between the two shells are very subtle but one main difference is that zsh has more customizable autocomplete options.  By default, however, the tab autocompletion in zsh is case sensitive which is annoying if you want to navigate directories or find files quickly.  If you haven’t made tab autocomplete case insensitive already I highly recommend it. Here’s how: 

  1. Navigate to your user folder within the finder application (generally named after you or whatever you set up your user as).
  2. Within the user folder is a file called “.zshrc” the leading dot means that it is normally hidden. To reveal this hidden file within finder press Command+Shift+Dot when in the finder. Open this file with a text editor of your choice
  3. Edit the file by adding the line “zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'”
  4. Save and close the file
  5. Next, go to your terminal and go to “Terminal” dropdown in the top left and select “Preferences”.
  6. In your current profile, select the “shell” tab
  7. Under the “startup”  option check the run command box and replace the input box with the line: “autoload -Uz compinit && compinit”
  8. Close the preferences window and restart the terminal after a force quit.

Every time you open a new terminal, now, the “autoload -Uz compinit && compinit” command should be run on startup and this will enable case insensitive tab completion. Enjoy!


I have found that fighting against the changes between PC and Mac make the changes more disruptive.  Although the Mac OS tends not to allow the user as much control over the system as a PC would in terms of permissions, the user experience is highly customizable and offers more options than a PC.  Third party software can really help make a system work better for you.  I would not have had an easy time working on a Macbook if it were not for the Scroll reverser I installed and the additional Better Touch Tool settings I implemented.  The truth is neither operating system is perfect and each have their own strengths which should be embraced.


Content Management Systems


The Web in Motion

An Introduction to Simple Animations Using CSS


Psychology Snacks in Design