My first experiences with with computers were with my dad’s Macintosh Plus, but when I left home for university and in all subsequent jobs I was using a Windows PC. My whole academic and working life I was typing the Windows way, and certain keypresses just became second nature – most frequently CTRL+C and CTRL+V.
After 15 years of this I decided I wanted an all in one computer to tidy up my home desk, and the iMac was easily the nicest option available in 2012, and in my opinion still is. I also wanted to learn something new so I decided to go for it and get my head around OS X (now macOS).
Typing proved to be the biggest challenge. Particularly since my work computer was still a PC running Windows. You can’t drop ingrained habits if you have to do them every day!
Annoyances
#, @ and “
The first thing I noticed was that British Mac keyboards have the @ and the ” switched. Given that we all type the @ key a lot these days when addressing email, this became frustrating.
The hash key (or “pound” if you are American) is not directly typed on a British Mac keyboard. It’s located on the same key as the £ sign, but you have to press Option to get it. As I started to do more programming, I started needing # more often, and having to use a modifier key slowed me down.
Copy/Paste
Secondly was Copy/Paste. Mac uses the Command key (⌘) instead if CTRL for many shortcuts, while Windows uses Ctrl (^). Since the ⌘ key is in a different position on the keyboard to ^, touch typing Copy and Paste when switching gets difficult.
Ultimately this slowed me down noticeably, and I opted to get myself a Windows keyboard to replace the Apple Magic Keyboard. I went for a Logitech K810, which is a nice Bluetooth keyboard, unfortunately no longer available.
Pairing this keyboard with my Mac meant I could touch type again. But there were still a few annoyances that I fixed:
Spotlight
I really like Spotlight, and did get used to hitting ⌘+Space and typing instead of using the dock. I had also started using Executor at work and set Alt+Space to bring it up. When you use a Windows keyboard on a Mac the Alt and key is treated as Option, not Command, so the same physical movements don’t do the same thing.
` and \
Another programming key is the and \. For some reason macOS keeps treating the K810 as ANSI mapped rather than ISO, which swaps the
and \ keys.
Fixes
Here’s what I did to get rid of the annoyances.
#, @ and “
Just switching to a Windows keyboard fixed these. I did need to add a new Keyboard mapping under System Preferences > Keyboard > Input Sources. The best one I found is British – PC, but more on this later.
Copy/Paste
macOS allows you to change shortcuts. In System Preferences > Keyboard switch to the Shortcuts tab and select App shortcuts on the left. You can add custom shortcuts here for specific apps or everything. Click on the + button to create a new one. Type the command in Menu Title, and type the desired Keyboard shortcut. I did this for Copy, Cut, Select All, Paste, Undo and set them all to use Ctrl instead of ⌘. Here are all my Shortcuts:

Don’t set ^V to Paste and Match Style if you want to use this shortcut to paste into Microsoft apps like Office or Code – it won’t recognise the command.
Spotlight
The fix for this is to switch Modifier keys. In System Preferences > Keyboard, on the Keyboard tab, click the Modifier Keys button. If you switch Option to Command, and Command to Option, this brings the Command key next to the keyboard, and treats the Windows key as Option. You’ll have to remember that one.

` and \
This was the biggest challenge. I thought I had it fixed when I set up my keyboard, as when connecting a new keyboard, macOS often asks if it is ANSI (US), ISO (British) or Japanese or detects it correctly. However, there seems to be a bug in macOS where this setting is lost and it defaults to ANSI. This is a different thing from Keyboard Mapping but barely documented! You should be able to correct the setting using the Change Keyboard Type button in System Preferences > Keyboard, but often that button just doesn’t appear. I found a few suggestions for how to fix this involving deleting /Library/Preferences/com.apple.keyboardtype.plist and then rebooting – but that means rebooting in the middle of programming. No good.
I fiddled around with Karabiner-Elements, which did allow me to bring up the Change Keyboard Type, but seconds later macOS would decide my ISO keyboard was actually ANSI.
The eventual fix is more of a workaround. I created two keymappings using Ukelele. I started with the British – PC mapping, and then made a new one that has ` and \ swapped. You can go further with Ukelele, and add all the special characters from the macOS British mapping, and even add custom icons to your keyboard maps. Once these are installed, when macOS decides to swap your keys around, you can just switch between the two mappings. No reboot required.

This is what I have learnt so far, and frankly I hope I’m done. This post is as much for my reference as I am sure I’ll need to apply these settings on another Mac in future. I hppe this helps other people who find themselves frustrated switching between Mac and Windows.
If you have any other tips relating to using a Windows keyboard on a Mac, please share them below!