82

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.

0

6 Answers 6

96

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>

18
  • 26
    How do you keep on finding these hidden gems? Are you an OS X engineer? ;) Commented Mar 21, 2012 at 14:17
  • 14
    And it goes a little something like this.... i.sstatic.net/Kyx2v.png :)
    – stuffe
    Commented Apr 22, 2012 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
    Commented Jun 19, 2014 at 17:15
  • 6
    It seems that this file is no longer editable in El Capitan... Commented Oct 16, 2015 at 7:21
  • 4
    @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. Commented Nov 12, 2015 at 16:10
19

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>
8
  • 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
    Commented Aug 3, 2012 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
    Commented Aug 3, 2012 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
    Commented Aug 3, 2012 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
    Commented Aug 3, 2012 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
    Commented Aug 28, 2012 at 16:52
6

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.

1
  • And after doing this, don't update your OS, because Apple will overwrite your changes.
    – WGroleau
    Commented Dec 13, 2022 at 18:09
5

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.

3

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
1
  • 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…) Commented May 17, 2013 at 17:27
2

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!

1
  • 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. Commented Oct 12, 2017 at 4:44

You must log in to answer this question.

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