In OS X Lion, 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:

e

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 OS X 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.

up vote 87 down vote accepted

The characters included in the popovers are defined in property lists inside the /System/Library/Input\ Methods/PressAndHold.app/ bundle.

I was able to change à to y by editing /System/Library/Input\ Methods/PressAndHold.app/Contents/Resources/Keyboard-en.plist and logging out and back in.

(note the escape in "Input Method" if you're copy pasting)

<key>Roman-Accent-a</key>
<dict>
    <key>Direction</key>
    <string>right</string>
    <key>Keycaps</key>
    <string>a y á â ä æ ã å ā</string>
    <key>Strings</key>
    <string>a y á â ä æ ã å ā</string>
</dict>

  • 20
    How do you keep on finding these hidden gems? Are you an OS X engineer? ;) – Mathias Bynens Mar 21 '12 at 14:17
  • 12
    And it goes a little something like this.... i.stack.imgur.com/Kyx2v.png :) – stuffe Apr 22 '12 at 18:27
  • 4
    I've tried to use this to add squared and cubed characters for press-and-hold on 2 and 3, but I don't know the dictionary key names for the plist. I've tried <key>2</key>, <key>Number-2</key>, and <key>Roman-Accent-2</key> but none of these worked. Is there a list of possible key-names somewhere? – jhabbott Jun 19 '14 at 17:15
  • 4
    It seems that this file is no longer editable in El Capitan... – Michiel de Mare Oct 16 '15 at 7:21
  • 3
    @MichieldeMare That’s because of System Integrity Protection, a new feature in OS X v10.11 El Capitan that makes it impossible for even root to write to system folders. As noted in the Wikipedia article though, it can be disabled. – アリスター Nov 12 '15 at 16:10

I know this is a little late, but I feel it's an important contribution: you can not only press-and-hold keys to input special characters; you can also input strings of text. For example, I configured my Keyboard-en.plist file so when I hold the "p" key, I can choose between my first name (which is pretty long), last name, and email address (which is also long). I feel this might be useful to some people, so this is what it looks like:

<key>Roman-Accent-p</key>
<dict>
    <key>Direction</key>
    <string>right</string>
    <key>Keycaps</key>
    <string>p firstname lastname email</string>
    <key>Strings</key>
    <string>p firstname lastname email</string>
</dict>
  • Cool! Out of curiosity what's your first name if you don't mind sharing? Given how long it waits I'd imagine this would give me a benefit only like upwards of 10-15 chars... My names are pretty short, but it could be useful for the email. – houbysoft Aug 3 '12 at 1:17
  • @houbysoft - You're right. I guess it's not that useful for my name, as mine is only 8 letters long, but for my emails which are upwards of 25 letters long each, it's very useful. – pasawaya Aug 3 '12 at 1:19
  • btw, I just realized, do you know if something like this is possible on iOS? Given the small keyboards on iPhones for instance this could be very useful for those devices. – houbysoft Aug 3 '12 at 1:22
  • @houbysoft - Well you might have heard of text expanders, which you can configure so for example when I type "addr", it will autocomplete my complete address. I just did a quick google search and it looks like there's an iOS text expander app. You can find it here: <itunes.apple.com/us/app/textexpander/id326180690?mt=8> – pasawaya Aug 3 '12 at 1:57
  • 1
    @OghmaOsiris - Duplicate it, save it to your Desktop, make the desired edits, then rename it to the original (ex. "Keyboard-en-duplicate.plist" -> "Keyboard-en.plist") and place delete the original file. Then place the renamed duplicate in the original directory. – pasawaya Aug 28 '12 at 16:52

If you are using macOS Sierra, you need to look elsewhere to change it. Here are my instructions, inspired from Custom Characters in OS X Accent Popup - George Garside:

  1. Disable System Integrity Protection as detailed in How to turn off rootless in Mac OS X El Capitan - MacWorld.

  2. Navigate to /System/Library/Input Methods/PressAndHold.app/Contents/PlugIns/PAH_Extension.appex/Contents/Resources/ in the Finder. To go to it quickly, press ⇧⌘G and paste the string in.

  3. Find your keyboard plist file. If you are using the English layout, you would be looking at Keyboard-en.plist and if you are using the German layout it would be Keyboard-de.plist. It could have other names as well, depending on your keyboard language.

  4. Back this file up by pressing ⌘D. Rename the copy you made to something with "backup" in its name.

  5. Open up the original file (without backup in its name) and edit the characters you want to in. After that, save it.

  6. Enable System Integrity Protection as detailed in the same page as step 1.

My solution (for Czech):

  1. Backup /System/Library/Input Methods/PressAndHold.app/Contents/Resources/Keyboard-en.plist file
  2. Copy /System/Library/Input Methods/PressAndHold.app/Contents/Resources/Keyboard-cs.plist and rename it to /System/Library/Input Methods/PressAndHold.app/Contents/Resources/Keyboard-en.plist
  3. Remove useless characters from new /System/Library/Input Methods/PressAndHold.app/Contents/Resources/Keyboard-en.plist
  • good idea, I only switch between one other international keyboard ATM, this will make that almost unnecessary!!! (not to mention the layout has me typing with numbers all the time…) – NOTjust -- user4304 May 17 '13 at 17:27

Using the info in this thread I answered the same question on MacRumors.

I made a custom .plist file specifically for Chinese Pinyin input. So I wanted to link to a plist that is created for Chinese phonetics. You can download it here.

I got it to work on OS X 10.11!

Looks like they changed the location to: /System/Library/Input Methods/PressAndHold.app

—> Right Click + Show Package Contents

/Contents/PlugIns/PAH_Extension.appex

—> Right Click + Show Package Contents

/Contents/Resources/Keyboard-en.plist (or whatever keyboard you use).

In there you can click the drop-down arrows, then double click next to "Keycaps" and change the keys to your desired keys. enter image description here

enter image description here

See, it works!

  • Are you sure you are talking about 10.11 El Capitan? In mine, the location of the .plist files is not what you say, but the one in the original answer. If you are really talking about 10.12 Sierra, you should delete this, because it was already fully answered by Skeleton bow months ago. – Tom Gewecke Oct 12 '17 at 4:44

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.