Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
#!/bin/bash -eu
#
# PlistBuddy のパスを獲っておく
#
# 期待される値:
# pb=/usr/libexec/PlistBuddy
pb=$(mdfind -onlyin /usr/libexec -name Plistbuddy)
#
# KeySetting_Default.plist のパスを獲る
#
# 期待される値:
# plistis=/System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist
echo "'locate' コマンドの準備 1/2; データベースの生成..."
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist &
wait
echo "...終了."
echo "'locate' コマンドの準備 2/2; データベースを更新..."
sudo /usr/libexec/locate.updatedb &
wait
echo "...終了."
plistis=$(sudo locate "KeySetting_Default.plist")
if [ -z "${plistis}" ]; then
echo "'KeySetting_Default.plist' が見つかりませんでした。処理を中断しました。"
exit 1
fi
function keyCheck {
echo "${pb}" -c "Print :keys:${1}:${2}:character" "${plistis}"
val=$("${pb}" -c "Print :keys:${1}:${2}:character" "${plistis}" 2>/dev/null || true)
if [ "${val}" = "" ]; then
echo "add ${2}"
sudo "${pb}" -c "Add :keys:${1}:${2}:character string ${3}" "${plistis}"
else
echo "set(modify) ${2}"
sudo "${pb}" -c "Set :keys:${1}:${2}:character ${3}" "${plistis}"
fi
}
# plist のバックアップ
[ ! -e ${HOME}/temp ] && mkdir ${HOME}/temp
sudo cp -f "${plistis}" "${HOME}/temp/KeySetting_Default.plist~$(date '+%Y%m%d%H%M')"
sudo "${pb}" -c "Set :keys:before_typing:\'' \'':character ' '" "${plistis}" #   space
sudo "${pb}" -c "Set :keys:*:\''|\'':character '|'" "${plistis}" # | vertical bar
sudo "${pb}" -c "Set :keys:*:\''\!\'':character '\!'" "${plistis}" # ! exclamation
sudo "${pb}" -c "Set :keys:*:\''"'\"'"\'':character '"'\"'"'" "${plistis}" # ” double quotation
sudo "${pb}" -c "Set :keys:*:\''#\'':character '#'" "${plistis}" # # sharp
sudo "${pb}" -c "Set :keys:*:\''$\'':character '$'" "${plistis}" # $ dollar
sudo "${pb}" -c "Set :keys:*:\''%\'':character '%'" "${plistis}" # % percent
sudo "${pb}" -c "Set :keys:*:\''&\'':character '&'" "${plistis}" # & ampersand
sudo "${pb}" -c "Set :keys:*:\''\'\'':character '\''" "${plistis}" # ’ apostrophe(single quotation)
sudo "${pb}" -c "Set :keys:*:\''(\'':character '('" "${plistis}" # () parentheses
sudo "${pb}" -c "Set :keys:*:\'')\'':character ')'" "${plistis}"
sudo "${pb}" -c "Set :keys:*:\''*\'':character '*'" "${plistis}" # * asterisk
sudo "${pb}" -c "Set :keys:*:\''+\'':character '+'" "${plistis}" # + plus
sudo "${pb}" -c "Set :keys:*:\''\:\'':character ':'" "${plistis}" # : colon
sudo "${pb}" -c "Set :keys:*:\'';\'':character ';'" "${plistis}" # ; semicolon
sudo "${pb}" -c "Set :keys:*:\''<\'':character '<'" "${plistis}" # <> angle bracket
sudo "${pb}" -c "Set :keys:*:\''>\'':character '>'" "${plistis}"
sudo "${pb}" -c "Set :keys:*:\''=\'':character '='" "${plistis}" # = equals
sudo "${pb}" -c "Set :keys:*:\''?\'':character '?'" "${plistis}" # ? question
sudo "${pb}" -c "Set :keys:*:\''@\'':character '@'" "${plistis}" # @ at
sudo "${pb}" -c "Set :keys:*:\''^\'':character '^'" "${plistis}" # ^ caret
sudo "${pb}" -c "Set :keys:*:\''_\'':character '_'" "${plistis}" # _ underscore
sudo "${pb}" -c "Set :keys:*:\''\`\'':character '\`'" "${plistis}" # ‘ back quote
keyCheck "before_typing" "\''/\''" "'/'" # / slash (solidus)
keyCheck "typing" "\''/\''" "'/'"
keyCheck "before_typing" "\''\\\\\''" "'\\\'" # \ backslash (reverse solidus)
keyCheck "typing" "\''\\\\\''" "'\\\'"
sudo killall -HUP JapaneseIM
echo "*** おわり ***"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>keys</key>
<dict>
<key>*</key>
<dict>
<key>'!'</key>
<dict>
<key>character</key>
<string>!</string>
</dict>
<key>'"'</key>
<dict>
<key>character</key>
<string>"</string>
</dict>
<key>'#'</key>
<dict>
<key>character</key>
<string>#</string>
</dict>
<key>'$'</key>
<dict>
<key>character</key>
<string>$</string>
</dict>
<key>'%'</key>
<dict>
<key>character</key>
<string>%</string>
</dict>
<key>'&amp;'</key>
<dict>
<key>character</key>
<string>&amp;</string>
</dict>
<key>'''</key>
<dict>
<key>character</key>
<string>'</string>
</dict>
<key>'('</key>
<dict>
<key>character</key>
<string>(</string>
</dict>
<key>')'</key>
<dict>
<key>character</key>
<string>)</string>
</dict>
<key>'*'</key>
<dict>
<key>character</key>
<string>*</string>
</dict>
<key>'+'</key>
<dict>
<key>character</key>
<string>+</string>
</dict>
<key>','</key>
<dict>
<key>character</key>
<string>、</string>
</dict>
<key>'-'</key>
<dict>
<key>character</key>
<string>ー</string>
</dict>
<key>'.'</key>
<dict>
<key>character</key>
<string>。</string>
</dict>
<key>':'</key>
<dict>
<key>character</key>
<string>:</string>
</dict>
<key>';'</key>
<dict>
<key>character</key>
<string>;</string>
</dict>
<key>'&lt;'</key>
<dict>
<key>character</key>
<string>&lt;</string>
</dict>
<key>'='</key>
<dict>
<key>character</key>
<string>=</string>
</dict>
<key>'&gt;'</key>
<dict>
<key>character</key>
<string>&gt;</string>
</dict>
<key>'?'</key>
<dict>
<key>character</key>
<string>?</string>
</dict>
<key>'@'</key>
<dict>
<key>character</key>
<string>@</string>
</dict>
<key>'['</key>
<dict>
<key>character</key>
<string>「</string>
</dict>
<key>']'</key>
<dict>
<key>character</key>
<string>」</string>
</dict>
<key>'^'</key>
<dict>
<key>character</key>
<string>^</string>
</dict>
<key>'_'</key>
<dict>
<key>character</key>
<string>_</string>
</dict>
<key>'`'</key>
<dict>
<key>character</key>
<string>`</string>
</dict>
<key>'{'</key>
<dict>
<key>character</key>
<string>『</string>
</dict>
<key>'|'</key>
<dict>
<key>character</key>
<string>|</string>
</dict>
<key>'}'</key>
<dict>
<key>character</key>
<string>』</string>
</dict>
<key>'~'</key>
<dict>
<key>character</key>
<string>〜</string>
</dict>
<key>F10</key>
<dict>
<key>command</key>
<string>transliterate_roman</string>
</dict>
<key>F6</key>
<dict>
<key>command</key>
<string>transliterate_hiragana</string>
</dict>
<key>F7</key>
<dict>
<key>command</key>
<string>transliterate_katakana</string>
</dict>
<key>F9</key>
<dict>
<key>command</key>
<string>transliterate_wide_roman</string>
</dict>
<key>capslock_off</key>
<dict>
<key>command</key>
<string>invoke_capslock_off_action</string>
</dict>
<key>capslock_on</key>
<dict>
<key>command</key>
<string>invoke_capslock_on_action</string>
</dict>
<key>command_tap</key>
<dict>
<key>command</key>
<string>ignore</string>
</dict>
<key>control+'#39'</key>
<dict>
<key>_note_</key>
<string>":" on JIS, "'" on ANSI</string>
<key>command</key>
<string>transliterate_roman</string>
<key>menu_item</key>
<true/>
</dict>
<key>control+'a'</key>
<dict>
<key>command</key>
<string>transliterate_roman</string>
</dict>
<key>control+'j'</key>
<dict>
<key>command</key>
<string>transliterate_hiragana</string>
<key>menu_item</key>
<true/>
</dict>
<key>control+'k'</key>
<dict>
<key>command</key>
<string>transliterate_katakana</string>
<key>menu_item</key>
<true/>
</dict>
<key>control+'l'</key>
<dict>
<key>command</key>
<string>transliterate_wide_roman</string>
<key>menu_item</key>
<true/>
</dict>
<key>control+'q'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+delete</key>
<dict>
<key>command</key>
<string>reconvert_last_confirmed_text</string>
</dict>
<key>control_tap</key>
<dict>
<key>command</key>
<string>ignore</string>
</dict>
<key>delete:</key>
<dict>
<key>command</key>
<string>delete_all</string>
</dict>
<key>eisu</key>
<dict>
<key>command</key>
<string>switch_to_roman_mode_by_eisu_key</string>
</dict>
<key>kana</key>
<dict>
<key>command</key>
<string>switch_to_hiragana_mode_by_kana_key</string>
</dict>
<key>keypad+'*'</key>
<dict>
<key>character</key>
<string>*</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'+'</key>
<dict>
<key>character</key>
<string>+</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+','</key>
<dict>
<key>character</key>
<string>,</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'-'</key>
<dict>
<key>character</key>
<string>-</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'.'</key>
<dict>
<key>character</key>
<string>.</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'/'</key>
<dict>
<key>character</key>
<string>/</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'0'</key>
<dict>
<key>character</key>
<string>0</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'1'</key>
<dict>
<key>character</key>
<string>1</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'2'</key>
<dict>
<key>character</key>
<string>2</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'3'</key>
<dict>
<key>character</key>
<string>3</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'4'</key>
<dict>
<key>character</key>
<string>4</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'5'</key>
<dict>
<key>character</key>
<string>5</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'6'</key>
<dict>
<key>character</key>
<string>6</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'7'</key>
<dict>
<key>character</key>
<string>7</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'8'</key>
<dict>
<key>character</key>
<string>8</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'9'</key>
<dict>
<key>character</key>
<string>9</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>keypad+'='</key>
<dict>
<key>character</key>
<string>=</string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>option+' '</key>
<dict>
<key>character</key>
<string> </string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>option+'"'</key>
<dict>
<key>character</key>
<string>“</string>
</dict>
<key>option+'''</key>
<dict>
<key>character</key>
<string>‘</string>
</dict>
<key>option+'-'</key>
<dict>
<key>character</key>
<string>-</string>
</dict>
<key>option+':'</key>
<dict>
<key>character</key>
<string>‥</string>
</dict>
<key>option+';'</key>
<dict>
<key>character</key>
<string>…</string>
</dict>
<key>option+'['</key>
<dict>
<key>character</key>
<string>[</string>
</dict>
<key>option+']'</key>
<dict>
<key>character</key>
<string>]</string>
</dict>
<key>option+'a'</key>
<dict>
<key>command</key>
<string>transliterate_roman</string>
</dict>
<key>option+'c'</key>
<dict>
<key>command</key>
<string>transliterate_wide_roman</string>
</dict>
<key>option+'i'</key>
<dict>
<key>selector</key>
<string>moveUp:</string>
</dict>
<key>option+'j'</key>
<dict>
<key>selector</key>
<string>moveLeft:</string>
</dict>
<key>option+'l'</key>
<dict>
<key>selector</key>
<string>moveDown:</string>
</dict>
<key>option+'m'</key>
<dict>
<key>selector</key>
<string>moveRight:</string>
</dict>
<key>option+'s'</key>
<dict>
<key>command</key>
<string>transliterate_roman</string>
</dict>
<key>option+'x'</key>
<dict>
<key>command</key>
<string>transliterate_katakana</string>
</dict>
<key>option+'z'</key>
<dict>
<key>command</key>
<string>transliterate_hiragana</string>
</dict>
<key>option+'さ'</key>
<dict>
<key>command</key>
<string>transliterate_katakana</string>
</dict>
<key>option+'そ'</key>
<dict>
<key>command</key>
<string>transliterate_wide_roman</string>
</dict>
<key>option+'ち'</key>
<dict>
<key>command</key>
<string>transliterate_roman</string>
</dict>
<key>option+'つ'</key>
<dict>
<key>command</key>
<string>transliterate_hiragana</string>
</dict>
<key>option+'と'</key>
<dict>
<key>command</key>
<string>transliterate_narrow_katakana</string>
</dict>
<key>option+'む'</key>
<dict>
<key>character</key>
<string>]</string>
</dict>
<key>option+'め'</key>
<dict>
<key>character</key>
<string>/</string>
</dict>
<key>option+'゜'</key>
<dict>
<key>character</key>
<string>[</string>
</dict>
<key>option+tab</key>
<dict>
<key>command</key>
<string>forward_transliterate</string>
</dict>
<key>option+unshift+'('</key>
<dict>
<key>character</key>
<string>【</string>
</dict>
<key>option+unshift+')'</key>
<dict>
<key>character</key>
<string>】</string>
</dict>
<key>option_tap</key>
<dict>
<key>command</key>
<string>ignore</string>
</dict>
<key>shift+control+'#39'</key>
<dict>
<key>_note_</key>
<string>":" on JIS, "'" on ANSI</string>
<key>command</key>
<string>switch_to_roman_mode</string>
<key>menu_item</key>
<true/>
</dict>
<key>shift+control+'a'</key>
<dict>
<key>command</key>
<string>switch_to_roman_mode</string>
</dict>
<key>shift+control+'j'</key>
<dict>
<key>command</key>
<string>switch_to_hiragana_mode</string>
<key>menu_item</key>
<true/>
</dict>
<key>shift+control+'k'</key>
<dict>
<key>command</key>
<string>switch_to_katakana_mode</string>
<key>menu_item</key>
<true/>
</dict>
<key>shift+control+'l'</key>
<dict>
<key>command</key>
<string>switch_to_wide_roman_mode</string>
<key>menu_item</key>
<true/>
</dict>
<key>shift+control+'n'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>shift+control+'q'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>shift+control+'r'</key>
<dict>
<key>command</key>
<string>reverse_conversion</string>
<key>menu_item</key>
<true/>
</dict>
<key>shift+control+'す'</key>
<dict>
<key>command</key>
<string>reverse_conversion</string>
</dict>
<key>shift+kana</key>
<dict>
<key>command</key>
<string>switch_to_katakana_mode</string>
</dict>
<key>shift+option+'/'</key>
<dict>
<key>character</key>
<string>…</string>
</dict>
<key>shift+option+'['</key>
<dict>
<key>character</key>
<string>{</string>
</dict>
<key>shift+option+']'</key>
<dict>
<key>character</key>
<string>}</string>
</dict>
<key>shift+option+'a'</key>
<dict>
<key>command</key>
<string>switch_to_roman_mode</string>
</dict>
<key>shift+option+'c'</key>
<dict>
<key>command</key>
<string>switch_to_wide_roman_mode</string>
</dict>
<key>shift+option+'i'</key>
<dict>
<key>selector</key>
<string>moveUpAndModifySelection:</string>
</dict>
<key>shift+option+'j'</key>
<dict>
<key>selector</key>
<string>moveLeftAndModifySelection:</string>
</dict>
<key>shift+option+'l'</key>
<dict>
<key>selector</key>
<string>moveDownAndModifySelection:</string>
</dict>
<key>shift+option+'m'</key>
<dict>
<key>selector</key>
<string>moveRightAndModifySelection:</string>
</dict>
<key>shift+option+'r'</key>
<dict>
<key>command</key>
<string>reverse_conversion</string>
</dict>
<key>shift+option+'s'</key>
<dict>
<key>command</key>
<string>switch_to_roman_mode</string>
</dict>
<key>shift+option+'x'</key>
<dict>
<key>command</key>
<string>switch_to_katakana_mode</string>
</dict>
<key>shift+option+'z'</key>
<dict>
<key>command</key>
<string>switch_to_hiragana_mode</string>
</dict>
<key>shift+option+'{'</key>
<dict>
<key>character</key>
<string>{</string>
</dict>
<key>shift+option+'}'</key>
<dict>
<key>character</key>
<string>}</string>
</dict>
<key>shift+option+'「'</key>
<dict>
<key>character</key>
<string>{</string>
</dict>
<key>shift+option+'」'</key>
<dict>
<key>character</key>
<string>}</string>
</dict>
<key>shift+option+'さ'</key>
<dict>
<key>command</key>
<string>switch_to_katakana_mode</string>
</dict>
<key>shift+option+'す'</key>
<dict>
<key>command</key>
<string>reverse_conversion</string>
</dict>
<key>shift+option+'そ'</key>
<dict>
<key>command</key>
<string>switch_to_wide_roman_mode</string>
</dict>
<key>shift+option+'ち'</key>
<dict>
<key>command</key>
<string>switch_to_roman_mode</string>
</dict>
<key>shift+option+'つ'</key>
<dict>
<key>command</key>
<string>switch_to_hiragana_mode</string>
</dict>
<key>shift+option+'と'</key>
<dict>
<key>command</key>
<string>switch_to_narrow_katakana_mode</string>
</dict>
<key>shift+option+'む'</key>
<dict>
<key>character</key>
<string>}</string>
</dict>
<key>shift+option+'゜'</key>
<dict>
<key>character</key>
<string>{</string>
</dict>
<key>shift+option+tab</key>
<dict>
<key>command</key>
<string>ignore</string>
</dict>
<key>shift+option+unshift+'('</key>
<dict>
<key>character</key>
<string>〔</string>
</dict>
<key>shift+option+unshift+')'</key>
<dict>
<key>character</key>
<string>〕</string>
</dict>
<key>shift_tap</key>
<dict>
<key>command</key>
<string>ignore</string>
</dict>
</dict>
<key>^incremental_search_filter</key>
<dict>
<key>control+'e'</key>
<dict>
<key>command</key>
<string>incremental_search_up_arrow_key</string>
</dict>
<key>control+'x'</key>
<dict>
<key>command</key>
<string>incremental_search_down_arrow_key</string>
</dict>
<key>insertNewline:</key>
<dict>
<key>command</key>
<string>incremental_search_return_key</string>
</dict>
<key>moveDown:</key>
<dict>
<key>command</key>
<string>incremental_search_down_arrow_key</string>
</dict>
<key>moveUp:</key>
<dict>
<key>command</key>
<string>incremental_search_up_arrow_key</string>
</dict>
</dict>
<key>^prediction_visibility_filter</key>
<dict>
<key>control+'n'</key>
<dict>
<key>command</key>
<string>forward_prediction</string>
</dict>
<key>control+'p'</key>
<dict>
<key>command</key>
<string>backward_prediction</string>
</dict>
<key>moveDown:</key>
<dict>
<key>command</key>
<string>forward_prediction</string>
</dict>
<key>moveUp:</key>
<dict>
<key>command</key>
<string>backward_prediction</string>
</dict>
</dict>
<key>before_typing</key>
<dict>
<key>' '</key>
<dict>
<key>character</key>
<string> </string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>'/'</key>
<dict>
<key>character</key>
<string>/</string>
</dict>
<key>'\'</key>
<dict>
<key>character</key>
<string>\</string>
</dict>
<key>F10</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>F6</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>F7</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>F8</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>F9</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+'1'</key>
<dict>
<key>command</key>
<string>show_related_characters</string>
<key>menu_item</key>
<true/>
</dict>
<key>control+'2'</key>
<dict>
<key>command</key>
<string>show_similar_characters</string>
<key>menu_item</key>
<true/>
</dict>
<key>control+':'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+';'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+'a'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+'j'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+'k'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+'l'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>control+'q'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>delete:</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>option+'a'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'c'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'s'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'x'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'z'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'さ'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'そ'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'ち'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'つ'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+'と'</key>
<dict>
<key>character</key>
<string></string>
</dict>
<key>option+tab</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>shift+' '</key>
<dict>
<key>character</key>
<string> </string>
<key>command</key>
<string>direct_input</string>
</dict>
<key>shift+option+tab</key>
<dict>
<key>command</key>
<string>ignore</string>
</dict>
<key>shift_tap</key>
<dict>
<key>command</key>
<string>cancel_temporary_roman_mode</string>
</dict>
</dict>
<key>converting</key>
<dict>
<key>' '</key>
<dict>
<key>command</key>
<string>show_candidate,forward_candidate</string>
</dict>
<key>cancelOperation:</key>
<dict>
<key>command</key>
<string>cancel_all_conversion</string>
</dict>
<key>control+'['</key>
<dict>
<key>selector</key>
<string>cancelOperation:</string>
</dict>
<key>control+'d'</key>
<dict>
<key>selector</key>
<string>moveRight:</string>
</dict>
<key>control+'e'</key>
<dict>
<key>selector</key>
<string>moveUp:</string>
</dict>
<key>control+'i'</key>
<dict>
<key>command</key>
<string>shorten_segment</string>
</dict>
<key>control+'m'</key>
<dict>
<key>selector</key>
<string>insertNewline:</string>
</dict>
<key>control+'n'</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>control+'o'</key>
<dict>
<key>command</key>
<string>lengthen_segment</string>
</dict>
<key>control+'p'</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>control+'q'</key>
<dict>
<key>command</key>
<string>shorten_segment</string>
</dict>
<key>control+'r'</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>control+'s'</key>
<dict>
<key>selector</key>
<string>moveLeft:</string>
</dict>
<key>control+'v'</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>control+'w'</key>
<dict>
<key>command</key>
<string>lengthen_segment</string>
</dict>
<key>control+'x'</key>
<dict>
<key>selector</key>
<string>moveDown:</string>
</dict>
<key>deleteBackward:</key>
<dict>
<key>command</key>
<string>delete_character,confirm_without_accept</string>
</dict>
<key>insertNewline:</key>
<dict>
<key>command</key>
<string>confirm</string>
</dict>
<key>keypad+'*'</key>
<dict>
<key>character</key>
<string>*</string>
</dict>
<key>keypad+'+'</key>
<dict>
<key>character</key>
<string>+</string>
</dict>
<key>keypad+','</key>
<dict>
<key>character</key>
<string>,</string>
</dict>
<key>keypad+'-'</key>
<dict>
<key>character</key>
<string>-</string>
</dict>
<key>keypad+'.'</key>
<dict>
<key>character</key>
<string>.</string>
</dict>
<key>keypad+'/'</key>
<dict>
<key>character</key>
<string>/</string>
</dict>
<key>keypad+'0'</key>
<dict>
<key>character</key>
<string>0</string>
</dict>
<key>keypad+'1'</key>
<dict>
<key>character</key>
<string>1</string>
</dict>
<key>keypad+'2'</key>
<dict>
<key>character</key>
<string>2</string>
</dict>
<key>keypad+'3'</key>
<dict>
<key>character</key>
<string>3</string>
</dict>
<key>keypad+'4'</key>
<dict>
<key>character</key>
<string>4</string>
</dict>
<key>keypad+'5'</key>
<dict>
<key>character</key>
<string>5</string>
</dict>
<key>keypad+'6'</key>
<dict>
<key>character</key>
<string>6</string>
</dict>
<key>keypad+'7'</key>
<dict>
<key>character</key>
<string>7</string>
</dict>
<key>keypad+'8'</key>
<dict>
<key>character</key>
<string>8</string>
</dict>
<key>keypad+'9'</key>
<dict>
<key>character</key>
<string>9</string>
</dict>
<key>keypad+'='</key>
<dict>
<key>character</key>
<string>=</string>
</dict>
<key>moveBackward:</key>
<dict>
<key>command</key>
<string>backward_segment</string>
</dict>
<key>moveDown:</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>moveDownAndModifySelection:</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>moveForward:</key>
<dict>
<key>command</key>
<string>forward_segment</string>
</dict>
<key>moveLeft:</key>
<dict>
<key>command</key>
<string>backward_segment</string>
</dict>
<key>moveLeftAndModifySelection:</key>
<dict>
<key>command</key>
<string>shorten_segment</string>
</dict>
<key>moveRight:</key>
<dict>
<key>command</key>
<string>forward_segment</string>
</dict>
<key>moveRightAndModifySelection:</key>
<dict>
<key>command</key>
<string>lengthen_segment</string>
</dict>
<key>moveUp:</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>moveUpAndModifySelection:</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>scrollPageDown:</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>scrollPageUp:</key>
<dict>
<key>command</key>
<string>show_candidate</string>
</dict>
<key>scrollToBeginningOfDocument:</key>
<dict>
<key>command</key>
<string>home_segment</string>
</dict>
<key>scrollToEndOfDocument:</key>
<dict>
<key>command</key>
<string>end_segment</string>
</dict>
<key>shift+' '</key>
<dict>
<key>command</key>
<string>backward_candidate</string>
</dict>
<key>tab</key>
<dict>
<key>command</key>
<string>confirm</string>
</dict>
</dict>
<key>selecting_candidate</key>
<dict>
<key>' '</key>
<dict>
<key>command</key>
<string>forward_candidate</string>
</dict>
<key>'1'</key>
<dict>
<key>character</key>
<string>1</string>
<key>command</key>
<string>choose_1st_candidate</string>
<key>romanCharacter</key>
<string>1</string>
</dict>
<key>'2'</key>
<dict>
<key>character</key>
<string>2</string>
<key>command</key>
<string>choose_2nd_candidate</string>
<key>romanCharacter</key>
<string>2</string>
</dict>
<key>'3'</key>
<dict>
<key>character</key>
<string>3</string>
<key>command</key>
<string>choose_3rd_candidate</string>
<key>romanCharacter</key>
<string>3</string>
</dict>
<key>'4'</key>
<dict>
<key>character</key>
<string>4</string>
<key>command</key>
<string>choose_4th_candidate</string>
<key>romanCharacter</key>
<string>4</string>
</dict>
<key>'5'</key>
<dict>
<key>character</key>
<string>5</string>
<key>command</key>
<string>choose_5th_candidate</string>
<key>romanCharacter</key>
<string>5</string>
</dict>
<key>'6'</key>
<dict>
<key>character</key>
<string>6</string>
<key>command</key>
<string>choose_6th_candidate</string>
<key>romanCharacter</key>
<string>6</string>
</dict>
<key>'7'</key>
<dict>
<key>character</key>
<string>7</string>
<key>command</key>
<string>choose_7th_candidate</string>
<key>romanCharacter</key>
<string>7</string>
</dict>
<key>'8'</key>
<dict>
<key>character</key>
<string>8</string>
<key>command</key>
<string>choose_8th_candidate</string>
<key>romanCharacter</key>
<string>8</string>
</dict>
<key>'9'</key>
<dict>
<key>character</key>
<string>9</string>
<key>command</key>
<string>choose_9th_candidate</string>
<key>romanCharacter</key>
<string>9</string>
</dict>
<key>cancelOperation:</key>
<dict>
<key>command</key>
<string>cancel_all_conversion</string>
</dict>
<key>control+'['</key>
<dict>
<key>selector</key>
<string>cancelOperation:</string>
</dict>
<key>control+'d'</key>
<dict>
<key>selector</key>
<string>moveRight:</string>
</dict>
<key>control+'e'</key>
<dict>
<key>selector</key>
<string>moveUp:</string>
</dict>
<key>control+'i'</key>
<dict>
<key>command</key>
<string>shorten_segment</string>
</dict>
<key>control+'m'</key>
<dict>
<key>selector</key>
<string>insertNewline:</string>
</dict>
<key>control+'n'</key>
<dict>
<key>command</key>
<string>forward_candidate</string>
</dict>
<key>control+'o'</key>
<dict>
<key>command</key>
<string>lengthen_segment</string>
</dict>
<key>control+'p'</key>
<dict>
<key>command</key>
<string>backward_candidate</string>
</dict>
<key>control+'q'</key>
<dict>
<key>command</key>
<string>shorten_segment</string>
</dict>
<key>control+'r'</key>
<dict>
<key>command</key>
<string>backward_page_candidate</string>
</dict>
<key>control+'s'</key>
<dict>
<key>selector</key>
<string>moveLeft:</string>
</dict>
<key>control+'v'</key>
<dict>
<key>command</key>
<string>forward_page_candidate</string>
</dict>
<key>control+'w'</key>
<dict>
<key>command</key>
<string>lengthen_segment</string>
</dict>
<key>control+'x'</key>
<dict>
<key>selector</key>
<string>moveDown:</string>
</dict>
<key>deleteBackward:</key>
<dict>
<key>command</key>
<string>delete_character,confirm_without_accept</string>
</dict>
<key>insertNewline:</key>
<dict>
<key>command</key>
<string>hide_candidate,forward_segment</string>
</dict>
<key>keypad+'1'</key>
<dict>
<key>command</key>
<string>choose_1st_candidate</string>
</dict>
<key>keypad+'2'</key>
<dict>
<key>command</key>
<string>choose_2nd_candidate</string>
</dict>
<key>keypad+'3'</key>
<dict>
<key>command</key>
<string>choose_3rd_candidate</string>
</dict>
<key>keypad+'4'</key>
<dict>
<key>command</key>
<string>choose_4th_candidate</string>
</dict>
<key>keypad+'5'</key>
<dict>
<key>command</key>
<string>choose_5th_candidate</string>
</dict>
<key>keypad+'6'</key>
<dict>
<key>command</key>
<string>choose_6th_candidate</string>
</dict>
<key>keypad+'7'</key>
<dict>
<key>command</key>
<string>choose_7th_candidate</string>
</dict>
<key>keypad+'8'</key>
<dict>
<key>command</key>
<string>choose_8th_candidate</string>
</dict>
<key>keypad+'9'</key>
<dict>
<key>command</key>
<string>choose_9th_candidate</string>
</dict>
<key>moveBackward:</key>
<dict>
<key>command</key>
<string>backward_segment</string>
</dict>
<key>moveDown:</key>
<dict>
<key>command</key>
<string>forward_candidate</string>
</dict>
<key>moveDownAndModifySelection:</key>
<dict>
<key>command</key>
<string>forward_page_candidate</string>
</dict>
<key>moveForward:</key>
<dict>
<key>command</key>
<string>forward_segment</string>
</dict>
<key>moveLeft:</key>
<dict>
<key>command</key>
<string>backward_segment</string>
</dict>
<key>moveLeftAndModifySelection:</key>
<dict>
<key>command</key>
<string>shorten_segment</string>
</dict>
<key>moveRight:</key>
<dict>
<key>command</key>
<string>forward_segment</string>
</dict>
<key>moveRightAndModifySelection:</key>
<dict>
<key>command</key>
<string>lengthen_segment</string>
</dict>
<key>moveUp:</key>
<dict>
<key>command</key>
<string>backward_candidate</string>
</dict>
<key>moveUpAndModifySelection:</key>
<dict>
<key>command</key>
<string>backward_page_candidate</string>
</dict>
<key>scrollPageDown:</key>
<dict>
<key>command</key>
<string>forward_page_candidate</string>
</dict>
<key>scrollPageUp:</key>
<dict>
<key>command</key>
<string>backward_page_candidate</string>
</dict>
<key>scrollToBeginningOfDocument:</key>
<dict>
<key>command</key>
<string>home_candidate</string>
</dict>
<key>scrollToEndOfDocument:</key>
<dict>
<key>command</key>
<string>end_candidate</string>
</dict>
<key>shift+' '</key>
<dict>
<key>command</key>
<string>backward_candidate</string>
</dict>
<key>shift+tab</key>
<dict>
<key>command</key>
<string>backward_candidate_sortstyle</string>
</dict>
<key>tab</key>
<dict>
<key>command</key>
<string>forward_candidate_sortstyle</string>
</dict>
</dict>
<key>selecting_prediction</key>
<dict>
<key>' '</key>
<dict>
<key>command</key>
<string>convert</string>
</dict>
<key>cancelOperation:</key>
<dict>
<key>command</key>
<string>cancel_all_conversion</string>
</dict>
<key>control+'['</key>
<dict>
<key>selector</key>
<string>cancelOperation:</string>
</dict>
<key>control+'d'</key>
<dict>
<key>selector</key>
<string>moveRight:</string>
</dict>
<key>control+'e'</key>
<dict>
<key>selector</key>
<string>moveUp:</string>
</dict>
<key>control+'m'</key>
<dict>
<key>selector</key>
<string>insertNewline:</string>
</dict>
<key>control+'n'</key>
<dict>
<key>command</key>
<string>forward_prediction</string>
</dict>
<key>control+'p'</key>
<dict>
<key>command</key>
<string>backward_prediction</string>
</dict>
<key>control+'s'</key>
<dict>
<key>selector</key>
<string>moveLeft:</string>
</dict>
<key>control+'x'</key>
<dict>
<key>selector</key>
<string>moveDown:</string>
</dict>
<key>deleteBackward:</key>
<dict>
<key>command</key>
<string>delete_character,confirm_without_accept</string>
</dict>
<key>insertNewline:</key>
<dict>
<key>command</key>
<string>confirm</string>
</dict>
<key>moveDown:</key>
<dict>
<key>command</key>
<string>forward_prediction</string>
</dict>
<key>moveUp:</key>
<dict>
<key>command</key>
<string>backward_prediction</string>
</dict>
<key>scrollToBeginningOfDocument:</key>
<dict>
<key>command</key>
<string>home_prediction</string>
</dict>
<key>scrollToEndOfDocument:</key>
<dict>
<key>command</key>
<string>end_prediction</string>
</dict>
<key>shift+tab</key>
<dict>
<key>command</key>
<string>backward_prediction</string>
</dict>
<key>tab</key>
<dict>
<key>command</key>
<string>forward_prediction</string>
</dict>
</dict>
<key>typing</key>
<dict>
<key>' '</key>
<dict>
<key>command</key>
<string>convertOrSpace</string>
</dict>
<key>'/'</key>
<dict>
<key>character</key>
<string>/</string>
</dict>
<key>'\'</key>
<dict>
<key>character</key>
<string>\</string>
</dict>
<key>cancelOperation:</key>
<dict>
<key>command</key>
<string>delete_all</string>
</dict>
<key>control+'['</key>
<dict>
<key>selector</key>
<string>cancelOperation:</string>
</dict>
<key>control+'d'</key>
<dict>
<key>selector</key>
<string>moveRight:</string>
</dict>
<key>control+'e'</key>
<dict>
<key>selector</key>
<string>moveUp:</string>
</dict>
<key>control+'i'</key>
<dict>
<key>command</key>
<string>shorten_segment_or_confirm</string>
</dict>
<key>control+'m'</key>
<dict>
<key>selector</key>
<string>insertNewline:</string>
</dict>
<key>control+'n'</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>control+'o'</key>
<dict>
<key>command</key>
<string>lengthen_segment_or_none</string>
</dict>
<key>control+'p'</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>control+'r'</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>control+'s'</key>
<dict>
<key>selector</key>
<string>moveLeft:</string>
</dict>
<key>control+'v'</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>control+'x'</key>
<dict>
<key>selector</key>
<string>moveDown:</string>
</dict>
<key>deleteBackward:</key>
<dict>
<key>command</key>
<string>delete_character</string>
</dict>
<key>insertNewline:</key>
<dict>
<key>command</key>
<string>confirm</string>
</dict>
<key>keypad+'*'</key>
<dict>
<key>character</key>
<string>*</string>
</dict>
<key>keypad+'+'</key>
<dict>
<key>character</key>
<string>+</string>
</dict>
<key>keypad+','</key>
<dict>
<key>character</key>
<string>,</string>
</dict>
<key>keypad+'-'</key>
<dict>
<key>character</key>
<string>-</string>
</dict>
<key>keypad+'.'</key>
<dict>
<key>character</key>
<string>.</string>
</dict>
<key>keypad+'/'</key>
<dict>
<key>character</key>
<string>/</string>
</dict>
<key>keypad+'0'</key>
<dict>
<key>character</key>
<string>0</string>
</dict>
<key>keypad+'1'</key>
<dict>
<key>character</key>
<string>1</string>
</dict>
<key>keypad+'2'</key>
<dict>
<key>character</key>
<string>2</string>
</dict>
<key>keypad+'3'</key>
<dict>
<key>character</key>
<string>3</string>
</dict>
<key>keypad+'4'</key>
<dict>
<key>character</key>
<string>4</string>
</dict>
<key>keypad+'5'</key>
<dict>
<key>character</key>
<string>5</string>
</dict>
<key>keypad+'6'</key>
<dict>
<key>character</key>
<string>6</string>
</dict>
<key>keypad+'7'</key>
<dict>
<key>character</key>
<string>7</string>
</dict>
<key>keypad+'8'</key>
<dict>
<key>character</key>
<string>8</string>
</dict>
<key>keypad+'9'</key>
<dict>
<key>character</key>
<string>9</string>
</dict>
<key>keypad+'='</key>
<dict>
<key>character</key>
<string>=</string>
</dict>
<key>moveBackward:</key>
<dict>
<key>command</key>
<string>backward_cursor</string>
</dict>
<key>moveDown:</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>moveDownAndModifySelection:</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>moveForward:</key>
<dict>
<key>command</key>
<string>forward_cursor</string>
</dict>
<key>moveLeft:</key>
<dict>
<key>command</key>
<string>backward_cursor</string>
</dict>
<key>moveLeftAndModifySelection:</key>
<dict>
<key>command</key>
<string>backward_cursor</string>
</dict>
<key>moveRight:</key>
<dict>
<key>command</key>
<string>forward_cursor</string>
</dict>
<key>moveRightAndModifySelection:</key>
<dict>
<key>command</key>
<string>forward_cursor</string>
</dict>
<key>moveUp:</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>moveUpAndModifySelection:</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>option+' '</key>
<dict>
<key>character</key>
<string> </string>
</dict>
<key>scrollPageDown:</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>scrollPageUp:</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>scrollToBeginningOfDocument:</key>
<dict>
<key>command</key>
<string>home_cursor</string>
</dict>
<key>scrollToEndOfDocument:</key>
<dict>
<key>command</key>
<string>end_cursor</string>
</dict>
<key>shift+' '</key>
<dict>
<key>command</key>
<string>convert,show_candidate</string>
</dict>
<key>shift+control+'i'</key>
<dict>
<key>selector</key>
<string>insertNewline:</string>
</dict>
<key>shift+control+'o'</key>
<dict>
<key>command</key>
<string>none</string>
</dict>
<key>shift+tab</key>
<dict>
<key>command</key>
<string>backward_prediction</string>
</dict>
<key>shift_tap</key>
<dict>
<key>command</key>
<string>cancel_temporary_roman_mode</string>
</dict>
<key>tab</key>
<dict>
<key>command</key>
<string>forward_prediction</string>
</dict>
</dict>
</dict>
<key>version</key>
<integer>1</integer>
</dict>
</plist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment