2013-06-30

my own "Character Picker" with Keyboard-en.plist on os x Lion 10.7.5

以前に作成したアスキー・アートを手直ししようと、 TextEditで作業を始めた所、「a」を押し続けてもポップアップ・メニュが出るので、連続入力「aa…a」 が簡単には作れない。ところが、このポップアップは一寸した「アクセント付きの文字」の入力には重宝しているので、一時的にポップアップ・メニュの機能を停止する方法を調べたのですが、判りませんでした。
そこで、「Appleサポート・コミュニティのLionフォーラム」で質問致しました;
この結果、このポップアップ・メニュは「Terminal, Editer系」では作動せず、むしろ TextEditで例外的に作動するようだ。そこで、初期の目的、「アスキー・アートの手直し」は常用エディタ、TextWranglerでいとも簡単に達成出来ました。

余裕ができたので、先の論議でHALさんの解説を元に検索すると、問題のポップアップ・メニュは;
  • 「Character Picker」
  • ApplePressAndHold
といった項目と関係が在るようでした。これらの検索から、次のディレクトリ;
  • /System/Library/Input Methods/PressAndHold.app/Contents/Resources/
にある言語ごとのplistによって規定される様です。英数入力時の「Character Picker」に修正を書けたければ、
  • Keyboard-en.plist
を変更する事に成ります。しかし、いくら検索しても、「Lionでのplistの設定法」の資料はありませんでした。でも、不思議な事に「iOS上でのplistの作成情報」は結構有る様でした。例えば;


そこで、Keyboard-en.plistのバックアップをとって、トライ&エラーで;
  • 制御文字: ⌃ ⌥ ⌘ ⇧ ⇥ ⇤ ⌫ ⌦ ↩ ⎋ 
  • ギリシャ文字
などを組み込んで見たので、以下に報告します。
Keyboard-en.plistの一番先頭に「A」の項が有るので引用します;

<key>Roman-Accent-A</key>
<dict>
<key>Direction</key>
<string>right</string>
<key>Keycaps</key>
<string>A À Á Â Ä Æ Ã Å Ā</string>
<key>Strings</key>
<string>A À Á Â Ä Æ Ã Å Ā</string>
</dict>


此れに対して、新たに定義した「g」の項は;


<key>Roman-Accent-g</key>
<dict>
<key>Strings</key>
<string>g \gamma γ \Gamma Γ</string>
</dict>

です。どうやら、Keyboard-en.plistの「Direction」タブや「Keycaps」タブはiOS由来であるものの、Lionでは盲腸のような存在らしい。今回は、新たに追加した設定については、この簡易設定で書いた。取り敢えず、Keyboard-en.plistKeyboard-en.plistをの全部分を示します;

<?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>Roman-Accent-A</key>
    <dict>
        <key>Direction</key>
        <string>right</string>
        <key>Keycaps</key>
        <string>A À Á Â Ä Æ Ã Å Ā </string>
        <key>Strings</key>
        <string>A À Á Â Ä Æ Ã Å Ā </string>
    </dict>
    <key>Roman-Accent-C</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>C Ç Ć Č</string>
        <key>Strings</key>
        <string>C Ç Ć Č</string>
    </dict>
    <key>Roman-Accent-E</key>
    <dict>
        <key>Direction</key>
        <string>right</string>
        <key>Keycaps</key>
        <string>E È É Ê Ë Ē Ė Ę</string>
        <key>Strings</key>
        <string>E È É Ê Ë Ē Ė Ę</string>
    </dict>
    <key>Roman-Accent-I</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>I Î Ï Í Ī Į Ì</string>
        <key>Strings</key>
        <string>I Î Ï Í Ī Į Ì</string>
    </dict>
    <key>Roman-Accent-K</key>
    <dict>
        <key>Strings</key>
        <string>K  KeyRemap4MacBook</string>
    </dict>
    <key>Roman-Accent-L</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>L Ł</string>
        <key>Strings</key>
        <string>L Ł</string>
    </dict>
    <key>Roman-Accent-N</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>N Ñ Ń</string>
        <key>Strings</key>
        <string>N Ñ Ń</string>
    </dict>
    <key>Roman-Accent-O</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>O Ô Ö Ò Ó Œ Ø Ō Õ</string>
        <key>Strings</key>
        <string>O Ô Ö Ò Ó Œ Ø Ō Õ</string>
    </dict>
    <key>Roman-Accent-Q</key>
    <dict>
        <key>Strings</key>
        <string>Q ● ○ ◀ ▶ ▲ ▼ ◼ ◻</string>
    </dict>
    <key>Roman-Accent-S</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>S Ś Š</string>
        <key>Strings</key>
        <string>S Ś Š</string>
    </dict>
    <key>Roman-Accent-U</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>U Û Ü Ù Ú Ū</string>
        <key>Strings</key>
        <string>U Û Ü Ù Ú Ū</string>
    </dict>
    <key>Roman-Accent-W</key>
    <dict>
        <key>Strings</key>
        <string>W × ÷ ± ∓ ¬ ∩ ∪ ∝ ∞ ℵ ∀ ∃</string>
    </dict>
    <key>Roman-Accent-Y</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>Y Ÿ</string>
        <key>Strings</key>
        <string>Y Ÿ</string>
    </dict>
    <key>Roman-Accent-Z</key>
    <dict>
        <key>Direction</key>
        <string>right</string>
        <key>Keycaps</key>
        <string>Z Ž Ź Ż</string>
        <key>Strings</key>
        <string>Z Ž Ź Ż</string>
    </dict>
    <key>Roman-Accent-a</key>
    <dict>
        <key>Direction</key>
        <string>right</string>
        <key>Keycaps</key>
        <string>a à á â ä æ ã å ā \alpha α \Alpha A</string>
        <key>Strings</key>
        <string>a à á â ä æ ã å ā \alpha α \Alpha A</string>
    </dict>
    <key>Roman-Accent-b</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>b \beta β \Beta B</string>
        <key>Strings</key>
        <string>b \beta β \Beta B</string>
    </dict>
    <key>Roman-Accent-c</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>c ç ć č \psi ψ \Psi Ψ</string>
        <key>Strings</key>
        <string>c ç ć č \psi ψ \Psi Ψ</string>
    </dict>
    <key>Roman-Accent-d</key>
    <dict>
        <key>Strings</key>
        <string>d \delta δ \Delta Δ</string>
    </dict>
    <key>Roman-Accent-e</key>
    <dict>
        <key>Direction</key>
        <string>right</string>
        <key>Keycaps</key>
        <string>e è é ê ë ē ė ę \epsilon ε \Εpsilon Ε</string>
        <key>Strings</key>
        <string>e è é ê ë ē ė ę \epsilon ε \Εpsilon Ε</string>
    </dict>
    <key>Roman-Accent-f</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>f \phi φ \Phi Φ</string>
        <key>Strings</key>
        <string>f \phi φ \Phi Φ</string>
    </dict>
    <key>Roman-Accent-g</key>
    <dict>
        <key>Strings</key>
        <string>g \gamma γ \Gamma Γ</string>
    </dict>
    <key>Roman-Accent-h</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>h \eta η \Eta H</string>
        <key>Strings</key>
        <string>h \eta η \Eta H</string>
    </dict>   
    <key>Roman-Accent-i</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>i î ï í ī į ì \iota ι \Iota I</string>
        <key>Strings</key>
        <string>i î ï í ī į ì \iota ι \Iota I</string>
    </dict>
    <key>Roman-Accent-j</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Strings</key>
        <string>j \xi ξ \Xi Ξ</string>
    </dict>
    <key>Roman-Accent-k</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Strings</key>
        <string>k \kappa κ \Kappa K</string>
    </dict>
    <key>Roman-Accent-l</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Strings</key>
        <string>l ł \lambda λ \Lambda Λ</string>
    </dict>
    <key>Roman-Accent-m</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>m \mu μ \Mu M</string>
        <key>Strings</key>
        <string>m \mu μ \Mu M</string>
    </dict>
    <key>Roman-Accent-n</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>n ñ ń \nu ν \Nu N</string>
        <key>Strings</key>
        <string>n ñ ń \nu ν \Nu N</string>
    </dict>
    <key>Roman-Accent-o</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>o ô ö ò ó œ ø ō õ \omicron \Omicron</string>
        <key>Strings</key>
        <string>o ô ö ò ó œ ø ō õ \omicron \Omicron</string>
    </dict>
    <key>Roman-Accent-p</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>p \pi π \Pi Π</string>
        <key>Strings</key>
        <string>p \pi π \Pi Π</string>
    </dict>
    <key>Roman-Accent-q</key>
    <dict>
        <key>Strings</key>
        <string>q ⌃ ⌥ ⌘ ⇧ ⇥ ⇤ ⌫ ⌦ ↩ ⎋ </string>
    </dict>
    <key>Roman-Accent-r</key>
    <dict>
        <key>Direction</key>
        <string>right</string>
        <key>Keycaps</key>
        <string>r \rho ρ \Rho Ρ 📻 </string>
        <key>Strings</key>
        <string>r \rho ρ \Rho Ρ 📻</string>
    </dict>
    <key>Roman-Accent-s</key>
    <dict>
        <key>Direction</key>
        <string>right</string>
        <key>Keycaps</key>
        <string>s ß ś š \sigma σ \Sigma Σ</string>
        <key>Strings</key>
        <string>s ß ś š \sigma σ \Sigma Σ</string>
    </dict>
    <key>Roman-Accent-t</key>
    <dict>
        <key>Strings</key>
        <string>t \tau τ \Tau T</string>
    </dict>   
    <key>Roman-Accent-u</key>
    <dict>
        <key>Strings</key>
        <string>u û ü ù ú ū \theta θ \Theta Θ</string>
    </dict>
    <key>Roman-Accent-v</key>
    <dict>
        <key>Strings</key>
        <string>v \omega ω \Omega Ω</string>
    </dict>
    <key>Roman-Accent-w</key>
    <dict>
        <key>Strings</key>
        <string>w ↔ ← → ↖ ↘ ↕ ↑ ↓ ⇞ ⇟</string>
    </dict>
    <key>Roman-Accent-x</key>
    <dict>
        <key>Direction</key>
        <string>left</string>
        <key>Keycaps</key>
        <string>x \chi χ \Chi X</string>
        <key>Strings</key>
        <string>x \chi χ \Chi X</string>
    </dict>
    <key>Roman-Accent-y</key>
    <dict>
        <key>Strings</key>
        <string>y ÿ \upsilon υ \Upsilon Υ</string>
    </dict>
    <key>Roman-Accent-z</key>
    <dict>
        <key>Strings</key>
        <string>z ž ź ż \zeta ζ \Zeta Ζ</string>
    </dict>
    <key>UI-ABC</key>
    <string>ABC</string>
    <key>UI-Cancel</key>
    <string>Cancel</string>
    <key>UI-Confirm</key>
    <string>confirm</string>
    <key>UI-Dismiss</key>
    <string>dismiss</string>
    <key>UI-Done</key>
    <string>Done</string>
    <key>UI-EmergencyCall</key>
    <string>Emergency
Call</string>
    <key>UI-Go</key>
    <string>Go</string>
    <key>UI-HWR</key>
    <string>Handwriting</string>
    <key>UI-Join</key>
    <string>Join</string>
    <key>UI-Kana</key>
    <string>Kana</string>
    <key>UI-LanguageIndicator</key>
    <string>English</string>
    <key>UI-Next</key>
    <string>Next</string>
    <key>UI-NextCandidate</key>
    <string>next</string>
    <key>UI-Numbers</key>
    <string>123</string>
    <key>UI-NumbersSymbols</key>
    <string>.?123</string>
    <key>UI-Pause</key>
    <string>pause</string>
    <key>UI-Wait</key>
    <string>wait</string>
    <key>UI-Pinyin</key>
    <string>Pinyin</string>
    <key>UI-Redo</key>
    <string>redo</string>
    <key>UI-Return</key>
    <string>return</string>
    <key>UI-Romaji</key>
    <string>QWERTY</string>
    <key>UI-Route</key>
    <string>Route</string>
    <key>UI-Search</key>
    <string>Search</string>
    <key>UI-Send</key>
    <string>Send</string>
    <key>UI-Simplified</key>
    <string>Simplified</string>
    <key>UI-Space</key>
    <string>space</string>
    <key>UI-Standard</key>
    <string>Standard</string>
    <key>UI-Undo</key>
    <string>undo</string>
</dict>
</plist>
上記設定の「Character Picker」を表にした;


TextEditでの「e」を押し続けた時の「Character Picker」応答は;

 と間延びしてしまう。これはギリシャ文字のTeX表現「\epsilon」等を入れた為である。

なお、ローマ字とギリシャ文字の対応は、Greekに対する「Keyboard Viewer」での対応に合わせた。


【感想】
  • 駄目元で作成したものの、意外と使い勝手がいい。
  • 通常のエディタ(TextWrangler)でも使えるとどうなるか興味深い。
    • と思っていたが、先ほど無意識に長押しを居ていたら「Character Picker」が動いていた。素晴らしい!
  • 数字キーへのアサインメントはポップアップ・メニュが振動して使えない。なぜだろうか?

関連のページ

  1. 修飾キーの辞書登録
  2. 「Mac_pico_tips/欧文文字のアクセント入力」の収録
————
  1. 開始 2013-06-30(日) 16:58:25 
  2. 追加 2013-07-01(月) 15:49:58  
  3. 追加 2013-07-01(月) 17:53:38  エディタ(TextWrangler)でも「Character Picker」は作動した!

0 件のコメント:

コメントを投稿

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...