8

In macOS Big Sur, there is a very useful feature for people like me who need to write in multiple languages, which pops up a small menu of additional characters when you hold down a letter.

For instance, when I hold down the letter ''E'', I get:

enter image description here

This is great when I'm writing in French for example. However right now I need to write something in Czech; however, the Czech letter ě (looks like the 3rd letter in the popup with the accent flipped) does not appear in the popup.

Is there a way to tell macOS Big Sur to include Czech or other additional characters in those popups?

Note: I do not want to use the Czech keyboard layout; I found switching layouts for each language is somewhat unpractical.

5
  • There may be a keyboard plist you can edit to include additional characters/accents mapped to a specific key, but I’m not sure how to do it anymore. You may have to do a defaults write command on the plist. I don’t have a Mac handy at the moment, but the plist may be located in ~/Library/Preferences and may be titled com.apple.keyboard.plist or something along those lines
    – AVelj
    Dec 15, 2020 at 1:32
  • Thank you for your fast response! I checked inside ~/Library/Preferences and only found a file called: com.apple.keyboardservicesd.plist
    – Endeavor
    Dec 15, 2020 at 2:10
  • The feature is 10 years old. See the earlier answer. apple.stackexchange.com/questions/20505/… Dec 15, 2020 at 2:32
  • Ok I’ve found out where the keyboard plist is located. It is located in /System/Library/Input Methods/PressAndHold.app/Contents/PlugIns/PAH_Extension.appex/Contents/Resources/Keyboard-en.plist. However, with the extra layer of security added to Big Sur, it is difficult to modify system files without disabling the new SSV volume structure. I won’t be able to advise you how to modify the system files, as I am not confident with disabling SSV, mounting the system volume and then creating a snapshot of the system under Big Sur, but you may have some luck looking around the internet. Best of luck
    – AVelj
    Dec 15, 2020 at 3:42
  • Also, once you disabled SSV and mounted the system volume, you can go into that plist and scroll down to the key you want to map the additional characters to. If this is too complicated you may wish to just use text/keyboard replacements in Keyboard settings. So for example if I type \pi, this will be automatically replaced by π. Note: I use a \ before pi because otherwise it will replace those letters in words like pineapple to πneapple so to avoid accidentally replacing those letters I add a \ in front in the keyboard text replacement for π as \pi
    – AVelj
    Dec 15, 2020 at 4:00

2 Answers 2

3

Open the below file:

/System/Library/Input\ Methods/PressAndHold.app/Contents/PlugIns/PAH_Extension.appex/Contents/Resources/Keyboard-en.plist

And modify these kind of blocks:

<dict>
    <key>Direction</key>
    <string>right</string>
    <key>Keycaps</key>
    <string>s ß ś š</string>
    <key>Strings</key>
    <string>s ß ś š</string>
</dict>
3
  • 1
    These files are now part of a read-only filesystem. You can't edit them. You can't even edit them after disabling System Integrity Protection.
    – masukomi
    Nov 11, 2022 at 2:22
  • @masukomi, you are right. we can't edit them anymore
    – AmerllicA
    Nov 11, 2022 at 6:20
  • 2
    I did edit mine in Catalina (with SIP disabled). Unfortunately, software update keeps wiping out my edits. I saved a copy, but restoring it after every update is a major proctalgia.
    – WGroleau
    Dec 13, 2022 at 1:29
1

This is to address productivity and not specific question.

If I am not mistaken then czech language includes letters like á, č, ď, é, ě, í, ň, ó, ř, š, ť, ú, ů, ý, ž. So ě is small subset of root problem: need to write in czech (or any other language with special characters).

Keeping this in mind there are several approaches which one can pursue to address the root problem.

I found switching layouts for each language is somewhat unpractical.

There is built-in shortcut (which may or may not need to enabled/set up): System Preferences > Keyboard > Shortcuts > Input Sources > 'Select the previous input source', 'Select next source in input menu'

After adding needed layout(s) and enabling shortcut it is very simple to switch layouts without need to raise your hand from keyboard. If one is familiar with language specific layout IMHO it is by far the simplest solution.

There is also selection under 'Input Sources' labeled 'Automatically switch to a document's input source' which can be used to automate switching.

Alternatively, there is keyboard layout in input sources called 'ABC extended'. If one uses this then there are handy shortcuts for different accents. NB! these shortcuts may or may not conflict with 'personal' shortcuts set up.

Hachek caron:

  • ⌥ + V, followed by letter (like c, e, n, r, s, z or special cases l and d) -> č, ě, ň, ř, š, ž, ľ, ď

Acute:

  • ⌥ + E followed by letter (like a, e, i, o, u, y) -> á, é, í, ó, ú, ý

U-ring:

  • ⌥ + K, followed by letter (like u) -> ů

Alternatively, there is 'Character viewer' which pop-up window can be invoked with ⌃ + ⌘ + SPACE. After adding characters needed to 'Favorites' one can use use arrow keys for navigation to needed letter and enter it to the text.

1
  • “After adding characters needed to 'Favorites' one can use arrow keys for navigation to needed letter and enter it to the text.” - When I open Character Viewer, keyboard focus does not move to it, so I cannot interact with it using the keyboard. Is that a bug? Jun 12, 2022 at 16:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .