When trying to use the same keyboard with two operating systems, it can be tricky to make shortcuts work consistently.

It can be done, though, and isn't even very hard once you dig into the settings.

Matching modifiers

Windows and macOS have all the same modifier keys, but they use different names for a couple of them:

  • Windows and macOS both use Shift and Ctrl for the same keys
  • Windows uses Alt, but macOS calls the same key Option (Opt)
  • Windows uses WIN, but macOS calls that key Command (Cmd)

The tricky part is macOS makes extensive use of the Cmd modifier for many common shortcuts, while Windows uses Ctrl for most of the common shortcuts.

If you're on Windows, you want easy access to Ctrl, but having easy access to WIN is not as important. On macOS, it's the opposite. You need easy access to Cmd but Ctrl is not used that frequently.

One option is to make macOS or Windows-specific layers in your layout, which can be a good approach if you are regularly swapping between lots and lots of different computers. However, as long as you're usually using your own macOS computer, you can make a small change in the macOS settings that completely eliminates this problem.

In System Preferences > Keyboard > Keyboard Shortcuts... > Modifier Keys, tell macOS to interpret Ctrl as Cmd and Cmd as Ctrl, like this:

Swapping Cmd and Ctrl in macOS
Don't forget to swap both modifiers.

This will keep all macOS shortcuts the same, but when you push something like Ctrl + C on your keyboard, macOS will see Cmd + C instead, making the shortcuts use the same keys for you. So, you can set up your layout exactly how you want it (thinking about using it with Windows), and it will work the same for macOS for any common shortcut. This change is also keyboard specific, so it won't mess with any built-in keyboards if you're using a macOS laptop or anything like that.

Changing individual macOS shortcuts

The above solves most of the mismatch between macOS and Windows, and will probably be enough to allow most people to use one layout with both operating systems comfortably without any special layer setup.

However, if there are specific shortcuts you are used to on Windows that you would like to mirror to macOS, you can do that, too. Note that this change is not keyboard-specific, so it will also change shortcuts for a built-in MacBook keyboard.

Pre-defined Shortcuts

If you're used to taking a screenshot on Windows with WIN + PrtScn (that's the Windows key and Print Screen), you can make macOS function the same way.

By default, the macOS shortcut for a fullscreen capture is Shift + Cmd + 3. To make this match Windows, go to System Preferences > Keyboard > Keyboard Shortcuts... > Screenshots, and there you can change shortcut to match Windows. Remember that if you switched your modifiers as above, the shortcut will look different than it will on Windows.

Changing the screenshot shortcut in macOS

For example, macOS says my shortcut is Ctrl + F13, and it is, but as the person using the board, the shortcut for me uses the same keys as WIN + PrtScn. MacOS calls the PrtScn key F13 and it's using Ctrl because that's what it sees after the above change.

If that's confusing, don't worry about it too much. Just make sure you're pressing the actual keys you want to use to trigger the action in macOS, and disregard how the shortcut is displayed in settings.

Global Shortcuts

There are some actions in macOS that have shortcuts but do not have specific entries in the Keyboard Shortcuts menu. These can still be changed.

A good example is the emoji keyboard. On Windows, it is WIN + . to pull emojis up. On macOS, it's Ctrl + Cmd + Space or Globe + E depending on your OS version. You won't find a listing for the emoji keyboard shortcut in the macOS settings.

However, in this same window, if you go App Shortcuts, you can redefine any action that appears in the upper macOS toolbar. Look at the Edit menu, and you'll see the Emoji keyboard is defined there regardless of what app you're looking at.

The emoji keyboard in the macOS toolbar
Make sure to note the exact name of the action you want to remap.

So, you can click the “+" and type in the exact menu action that you want ("Emoji & Symbols" in this case) then define a different shortcut, which will be Ctrl + . to macOS, but to us, it will really the same shortcut as it is on Windows.

Changing the emoji keyboard shortcut

App-Specific Shortcuts

You can also repeat the above method for specific apps if you use an app across both operating systems, but it changes some shortcuts. Just double-check that the simple Ctrl and Cmd swap above doesn't do what you want first. Adding a bunch of shortcut overrides can get confusing, so use this sparingly.

Changing a Google Chrome shortcut
This is not actually a shortcut that's different between macOS and Windows. It's just an example of what it would look like to set up using a shortcut from Chrome.

Who should make which changes?

That was a lot! Here's a quick reference if you're not sure what applies to you:

If you use macOS and Windows and want most shortcuts to use the same keys on your keyboard, make the Cmd and Ctrl swap above. This is enough for a good 90% of people.

If there is a specific shortcut that is still different between Windows and macOS, and you want it to be the same, you can change this with the Global or App-Specific Shortcuts method. You should not need to redefine more than a few shortcuts this way. If you find yourself feeling like you need a bunch of these, double-check that it's really needed.

If you regularly swap devices (say you work in IT with lots of company computers, for example), OS specific layers in your layout may be a more practical solution. Oryx makes this straightforward as well. You can use your base layer for one OS and transparent keys to avoid remapping all the keys on your other layer. You just need to change the modifier key positions.

OS-specific layers in Oryx
Here is the default Voyager with a simple Windows and macOS layer setup.

Of course, if you have further questions about this, always feel free to email us at [email protected]. We're happy to help!