I recently switched to the Unicode Hex Input to make typing technical symbols easier. It seems, though, that the way it uses the option key to detect unicode input overrules the +arrow method of navigating text.

Is there any way to use both Unicode Hex Input and this shortcut?

2 Answers 2


I've disabled the ++space shortcut for Spotlight window (since I never used it anyway), but enabled the same shortcut to switch to the next input method. (You can configure this in the Keyboard preference pane.)

So whenever you need to use the key to navigate, you can punch the three keys, do your navigating, punch them again, and be back in Unicode mode (if you only have two input sources; otherwise you'll cycle through them.)

  • That's a good idea! I may do that. Is that just within System Preferences, or does it require a third-party macro?
    – Tuesday
    Feb 24, 2012 at 23:11
  • 1
    @TimothyMueller-Harder Nope, it's just System Preferences.
    – jan.h
    Feb 24, 2012 at 23:13

Downlolad Ukelele and copy System Keyboards/Unicode/Unicode Hex Input.keylayout from the disk image to /Library/Keyboard Layouts/. Keyboard layouts in the user library can't be selected in password dialogs or the login window.

Open the keylayout file in a text editor and replace <keyMap index="3"> with this:

<keyMap index="3">
    <key code="0" action="10" />
    <key code="2" action="13" />
    <key code="3" action="15" />
    <key code="8" action="12" />
    <key code="11" action="11" />
    <key code="14" action="14" />
    <key code="18" action="1" />
    <key code="19" action="2" />
    <key code="20" action="3" />
    <key code="21" action="4" />
    <key code="22" action="6" />
    <key code="23" action="5" />
    <key code="25" action="9" />
    <key code="26" action="7" />
    <key code="28" action="8" />
    <key code="29" action="0" />
    <key code="82" action="0" />
    <key code="83" action="1" />
    <key code="84" action="2" />
    <key code="85" action="3" />
    <key code="86" action="4" />
    <key code="87" action="5" />
    <key code="88" action="6" />
    <key code="89" action="7" />
    <key code="91" action="8" />
    <key code="92" action="9" />
    <key code="1" output="s" />
    <key code="4" output="h" />
    <key code="5" output="g" />
    <key code="6" output="z" />
    <key code="7" output="x" />
    <key code="9" output="v" />
    <key code="10" output="&#x00a7;" />
    <key code="12" output="q" />
    <key code="13" output="w" />
    <key code="15" output="r" />
    <key code="16" output="y" />
    <key code="17" output="t" />
    <key code="24" output="=" />
    <key code="27" output="-" />
    <key code="30" output="]" />
    <key code="31" output="o" />
    <key code="32" output="u" />
    <key code="33" output="[" />
    <key code="34" output="i" />
    <key code="35" output="p" />
    <key code="36" output="&#x000d;" />
    <key code="37" output="l" />
    <key code="38" output="j" />
    <key code="39" output="'" />
    <key code="40" output="k" />
    <key code="41" output=";" />
    <key code="42" output="\" />
    <key code="43" output="," />
    <key code="44" output="/" />
    <key code="45" output="n" />
    <key code="46" output="m" />
    <key code="47" output="." />
    <key code="48" output="&#x0009;" />
    <key code="49" output=" " />
    <key code="50" output="`" />
    <key code="51" output="&#x0008;" />
    <key code="52" output="&#x0003;" />
    <key code="53" output="&#x001b;" />
    <key code="54" output="&#x0000;" />
    <key code="55" output="&#x0000;" />
    <key code="56" output="&#x0000;" />
    <key code="57" output="&#x0000;" />
    <key code="58" output="&#x0000;" />
    <key code="59" output="&#x0000;" />
    <key code="60" output="&#x0000;" />
    <key code="61" output="&#x0000;" />
    <key code="62" output="&#x0000;" />
    <key code="63" output="&#x0000;" />
    <key code="64" output="&#x0000;" />
    <key code="65" output="." />
    <key code="66" output="&#x001d;" />
    <key code="67" output="*" />
    <key code="68" output="&#x0000;" />
    <key code="69" output="+" />
    <key code="70" output="&#x001c;" />
    <key code="71" output="&#x001b;" />
    <key code="72" output="&#x001f;" />
    <key code="73" output="&#x0000;" />
    <key code="74" output="&#x0000;" />
    <key code="75" output="/" />
    <key code="76" output="&#x0003;" />
    <key code="77" output="&#x001e;" />
    <key code="78" output="-" />
    <key code="79" output="&#x0000;" />
    <key code="80" output="&#x0000;" />
    <key code="81" output="=" />
    <key code="90" output="&#x0000;" />
    <key code="93" output="&#x0000;" />
    <key code="94" output="&#x0000;" />
    <key code="95" output="&#x0000;" />
    <key code="96" output="&#x0010;" />
    <key code="97" output="&#x0010;" />
    <key code="98" output="&#x0010;" />
    <key code="99" output="&#x0010;" />
    <key code="100" output="&#x0010;" />
    <key code="101" output="&#x0010;" />
    <key code="102" output="&#x0010;" />
    <key code="103" output="&#x0010;" />
    <key code="104" output="&#x0010;" />
    <key code="105" output="&#x0010;" />
    <key code="106" output="&#x0010;" />
    <key code="107" output="&#x0010;" />
    <key code="108" output="&#x0010;" />
    <key code="109" output="&#x0010;" />
    <key code="110" output="&#x0010;" />
    <key code="111" output="&#x0010;" />
    <key code="112" output="&#x0010;" />
    <key code="113" output="&#x0010;" />
    <key code="114" output="&#x0005;" />
    <key code="115" output="&#x0001;" />
    <key code="116" output="&#x000b;" />
    <key code="117" output="&#x007f;" />
    <key code="118" output="&#x0010;" />
    <key code="119" output="&#x0004;" />
    <key code="120" output="&#x0010;" />
    <key code="121" output="&#x000c;" />
    <key code="122" output="&#x0010;" />
    <key code="123" output="&#x001c;" />
    <key code="124" output="&#x001d;" />
    <key code="125" output="&#x001f;" />
    <key code="126" output="&#x001e;" />
    <key code="127" output="&#x0000;" />

Save the file, log out and back in, and enable the new input source in System Preferences.

To apply changes to a keylayout file, you have to log out and back in after for example running sudo touch /Library/Keyboard\ Layouts/.

You can disable other input sources by editing the HIToolbox plist.

  • Before I do this, what exactly does this do?
    – Tuesday
    May 3, 2013 at 2:23
  • Key combinations like ⌥← don't work in some views unless they are assigned to some ASCII control characters. I just copied the elements for the missing key codes from the U.S. keylayout.
    – Lri
    May 3, 2013 at 7:34
  • Thanks @Lri for this answer. Almost 10 years later it has allowed me to fix my own version of the Unicode Hex Input layout. If anyone comes across this question and only care about the arrow keys, they're the ones with codes 123 to 126. I made my version of this layout available on Github here: github.com/ldanet/unicode-hex-input-fix You can download and install the keylayout file and enjoy the Unicode Hex Input layout with the text navigation without having to switch layouts back and forth!
    – Loonie
    Jan 23, 2023 at 1:09

You must log in to answer this question.

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