Czech typing on a Mac

If you’re a full-time or part-time Czech typist with a Mac you’ve got a the Czech keyboard enabled in your Language & Region Keyboard preferences and you’re skilled at using the alternate keyboard layout (which assigns the special Czech characters to the number keys and also shuffles the punctuation around and might swap your Y and Z keys).

A few years ago macOS introduced popovers for accented characters. Hold down the S key on your keyboard and you get a little bubble with options for alternate letters from various languages. Unfortunately Czech is not included. A few of the special Czech characters are in there because they’re the same as in one of the languages that’s supported, but good luck typing “Ď”. What’s particularly galling, there’s no easy way to modify these popovers. No setting, and not even a third-party utility to edit these that I know of.

It turns out there is a way to do it, but it ain’t easy. There’s a plist file buried in the system files you can edit, but doing so requires rebooting your computer a few times to disable and then re-enable System Integrity Protection.

Warning: Don’t do this. You might mess up your computer. These steps worked for me on a Mac running Sierra, and similar steps may or may not work on other systems. You’re on your own.

  1. The file you’re looking for is /System/Library/Input Methods/PressAndHold.app/Contents/PlugIns/PAH_Extension.appex/Contents/Resources/Keyboard-en.plist. (On other systems it might be /System/Library/Input Methods/PressAndHold.app/Contents/Resources/Keyboard-en.plist or something else.) If you’re looking for this file you may have to right-click and select “Show package contents” once or twice.
  2. Make a copy of this file somewhere else. Heck, make two: one to edit, one as a backup if things go sideways.
  3. You can open this file in a text editor and make changes. Or you can download my version of it (Keyboard-en.plist) but be extra-careful to make sure the format matches, especially if you’re on an os version other than Sierra.
  4. Now, to replace the file with your edited version, you need to disable System Integrity protection. Reboot while holding down Command-R, select Terminal from the Utilities menu, and type csrutil disable. Then reboot back into your computer.
  5. Drag the edited file into the folder location and select “replace.” The changes should take effect immediately, so you can try holding down the D key in a text field and see if you get a Ď popup.
  6. To re-enable SIP, repeat step 4 but with the command csrutil enable.

More about System Integrity Protection here, and more about disabling it here. For a much easier way to type Czech characters, you can visit the online Czech typing page. Thanks to scilling on DuoLingo for suggesting this.