There are two major input methods in Japanese language; roma-input and kana-input (*1). Roma-input layouts in popular implementations are same while kana-input layouts are different among implementations for some reason when it's on US Keyboard layout.
I'm a kana typer and a user of US Keyboard Layout. Kana layout of Mac OS X Kotoeri layout and kana layout of ibus-mozc are very different. I had used Kotoeri for a long time, so I decided to change the layout of mozc, but mozc doesn't have an interface to change the layout.
I wrote a patch to make mozc same to Kotoeri's.
kana-layout.patch:
Index: unix/ibus/key_translator.cc
===================================================================
--- unix/ibus/key_translator.cc (revision 94)
+++ unix/ibus/key_translator.cc (working copy)
@@ -254,100 +254,100 @@
// to Right Shift).
{ '\\', "", "" },
}, kana_map_us[] = {
- { '`' , "\xe3\x82\x8d", "\xe3\x82\x8d" }, // "ろ", "ろ"
- { '~' , "\xe3\x82\x8d", "\xe3\x82\x8d" }, // "ろ", "ろ"
- { '1' , "\xe3\x81\xac", "\xe3\x81\xac" }, // "ぬ", "ぬ"
- { '!' , "\xe3\x81\xac", "\xe3\x81\xac" }, // "ぬ", "ぬ"
- { '2' , "\xe3\x81\xb5", "\xe3\x81\xb5" }, // "ふ", "ふ"
+ { '$' , "\xe3\x81\x85", "\xe3\x81\x85" }, // "ぅ", "ぅ"
+ { '(' , "\xe3\x82\x87", "\xe3\x82\x87" }, // "ょ", "ょ"
+ { ',' , "\xe3\x81\xad", "\xe3\x81\xad" }, // "ね", "ね"
+ { '0' , "\xe3\x82\x8f", "\xe3\x82\x8f" }, // "わ", "わ"
+ { '4' , "\xe3\x81\x86", "\xe3\x81\x86" }, // "う", "う"
+ { '8' , "\xe3\x82\x86", "\xe3\x82\x86" }, // "ゆ", "ゆ"
+ { '<' , "\xe3\x80\x81", "\xe3\x80\x81" }, // "、", "、"
{ '@' , "\xe3\x81\xb5", "\xe3\x81\xb5" }, // "ふ", "ふ"
- { '3' , "\xe3\x81\x82", "\xe3\x81\x81" }, // "あ", "ぁ"
- { '#' , "\xe3\x81\x82", "\xe3\x81\x81" }, // "あ", "ぁ"
- { '4' , "\xe3\x81\x86", "\xe3\x81\x85" }, // "う", "ぅ"
- { '$' , "\xe3\x81\x86", "\xe3\x81\x85" }, // "う", "ぅ"
- { '5' , "\xe3\x81\x88", "\xe3\x81\x87" }, // "え", "ぇ"
- { '%' , "\xe3\x81\x88", "\xe3\x81\x87" }, // "え", "ぇ"
- { '6' , "\xe3\x81\x8a", "\xe3\x81\x89" }, // "お", "ぉ"
- { '^' , "\xe3\x81\x8a", "\xe3\x81\x89" }, // "お", "ぉ"
- { '7' , "\xe3\x82\x84", "\xe3\x82\x83" }, // "や", "ゃ"
- { '&' , "\xe3\x82\x84", "\xe3\x82\x83" }, // "や", "ゃ"
- { '8' , "\xe3\x82\x86", "\xe3\x82\x85" }, // "ゆ", "ゅ"
- { '*' , "\xe3\x82\x86", "\xe3\x82\x85" }, // "ゆ", "ゅ"
- { '9' , "\xe3\x82\x88", "\xe3\x82\x87" }, // "よ", "ょ"
- { '(' , "\xe3\x82\x88", "\xe3\x82\x87" }, // "よ", "ょ"
- { '0' , "\xe3\x82\x8f", "\xe3\x82\x92" }, // "わ", "を"
- { ')' , "\xe3\x82\x8f", "\xe3\x82\x92" }, // "わ", "を"
- { '-' , "\xe3\x81\xbb", "\xe3\x83\xbc" }, // "ほ", "ー"
- { '_' , "\xe3\x81\xbb", "\xe3\x83\xbc" }, // "ほ", "ー"
- { '=' , "\xe3\x81\xb8", "\xe3\x81\xb8" }, // "へ", "へ"
- { '+' , "\xe3\x81\xb8", "\xe3\x81\xb8" }, // "へ", "へ"
- { 'q' , "\xe3\x81\x9f", "\xe3\x81\x9f" }, // "た", "た"
- { 'Q' , "\xe3\x81\x9f", "\xe3\x81\x9f" }, // "た", "た"
- { 'w' , "\xe3\x81\xa6", "\xe3\x81\xa6" }, // "て", "て"
- { 'W' , "\xe3\x81\xa6", "\xe3\x81\xa6" }, // "て", "て"
- { 'e' , "\xe3\x81\x84", "\xe3\x81\x83" }, // "い", "ぃ"
- { 'E' , "\xe3\x81\x84", "\xe3\x81\x83" }, // "い", "ぃ"
- { 'r' , "\xe3\x81\x99", "\xe3\x81\x99" }, // "す", "す"
- { 'R' , "\xe3\x81\x99", "\xe3\x81\x99" }, // "す", "す"
+ { 'D' , "\xe3\x81\x97", "\xe3\x81\x97" }, // "し", "し"
+ { 'H' , "\xe3\x81\x8f", "\xe3\x81\x8f" }, // "く", "く"
+ { 'L' , "\xe3\x82\x8a", "\xe3\x82\x8a" }, // "り", "り"
+ { 'P' , "\xe3\x81\x9b", "\xe3\x81\x9b" }, // "せ", "せ"
+ { 'T' , "\xe3\x81\x8b", "\xe3\x81\x8b" }, // "か", "か"
+ { 'X' , "\xe3\x81\x95", "\xe3\x81\x95" }, // "さ", "さ"
+ { '\\' , "\xe3\x81\xb8", "\xe3\x81\xb8" }, // "へ", "へ"
+ { '`' , "\xef\xbd\x80", "\xef\xbd\x80" }, // "`", "`"
+ { 'd' , "\xe3\x81\x97", "\xe3\x81\x97" }, // "し", "し"
+ { 'h' , "\xe3\x81\x8f", "\xe3\x81\x8f" }, // "く", "く"
+ { 'l' , "\xe3\x82\x8a", "\xe3\x82\x8a" }, // "り", "り"
+ { 'p' , "\xe3\x81\x9b", "\xe3\x81\x9b" }, // "せ", "せ"
{ 't' , "\xe3\x81\x8b", "\xe3\x81\x8b" }, // "か", "か"
- { 'T' , "\xe3\x81\x8b", "\xe3\x81\x8b" }, // "か", "か"
- { 'y' , "\xe3\x82\x93", "\xe3\x82\x93" }, // "ん", "ん"
- { 'Y' , "\xe3\x82\x93", "\xe3\x82\x93" }, // "ん", "ん"
- { 'u' , "\xe3\x81\xaa", "\xe3\x81\xaa" }, // "な", "な"
- { 'U' , "\xe3\x81\xaa", "\xe3\x81\xaa" }, // "な", "な"
- { 'i' , "\xe3\x81\xab", "\xe3\x81\xab" }, // "に", "に"
- { 'I' , "\xe3\x81\xab", "\xe3\x81\xab" }, // "に", "に"
- { 'o' , "\xe3\x82\x89", "\xe3\x82\x89" }, // "ら", "ら"
+ { 'x' , "\xe3\x81\x95", "\xe3\x81\x95" }, // "さ", "さ"
+ { '|' , "\xe3\x82\x8d", "\xe3\x82\x8d" }, // "ろ", "ろ"
+ { '#' , "\xe3\x81\x81", "\xe3\x81\x81" }, // "ぁ", "ぁ"
+ { '\'' , "\xe3\x81\x91", "\xe3\x81\x91" }, // "け", "け"
+ { '+' , "\xe3\x80\x8c", "\xe3\x80\x8c" }, // "「", "「"
+ { '/' , "\xe3\x82\x81", "\xe3\x82\x81" }, // "め", "め"
+ { '3' , "\xe3\x81\x82", "\xe3\x81\x82" }, // "あ", "あ"
+ { '7' , "\xe3\x82\x84", "\xe3\x82\x84" }, // "や", "や"
+ { ';' , "\xe3\x82\x8c", "\xe3\x82\x8c" }, // "れ", "れ"
+ { '?' , "\xe3\x83\xbb", "\xe3\x83\xbb" }, // "・", "・"
+ { 'C' , "\xe3\x81\x9d", "\xe3\x81\x9d" }, // "そ", "そ"
+ { 'G' , "\xe3\x81\x8d", "\xe3\x81\x8d" }, // "き", "き"
+ { 'K' , "\xe3\x81\xae", "\xe3\x81\xae" }, // "の", "の"
{ 'O' , "\xe3\x82\x89", "\xe3\x82\x89" }, // "ら", "ら"
- { 'p' , "\xe3\x81\x9b", "\xe3\x81\x9b" }, // "せ", "せ"
- { 'P' , "\xe3\x81\x9b", "\xe3\x81\x9b" }, // "せ", "せ"
+ { 'S' , "\xe3\x81\xa8", "\xe3\x81\xa8" }, // "と", "と"
+ { 'W' , "\xe3\x81\xa6", "\xe3\x81\xa6" }, // "て", "て"
{ '[' , "\xe3\x82\x9b", "\xe3\x82\x9b" }, // "゛", "゛"
- { '{' , "\xe3\x82\x9b", "\xe3\x82\x9b" }, // "゛", "゛"
- { ']' , "\xe3\x82\x9c", "\xe3\x80\x8c" }, // "゜", "「"
- { '}' , "\xe3\x82\x9c", "\xe3\x80\x8c" }, // "゜", "「"
- { '\\', "\xe3\x82\x80", "\xe3\x80\x8d" }, // "む", "」"
- { '|' , "\xe3\x82\x80", "\xe3\x80\x8d" }, // "む", "」"
- { 'a' , "\xe3\x81\xa1", "\xe3\x81\xa1" }, // "ち", "ち"
- { 'A' , "\xe3\x81\xa1", "\xe3\x81\xa1" }, // "ち", "ち"
+ { '_' , "\xe3\x81\xbb", "\xe3\x81\xbb" }, // "ほ", "ほ"
+ { 'c' , "\xe3\x81\x9d", "\xe3\x81\x9d" }, // "そ", "そ"
+ { 'g' , "\xe3\x81\x8d", "\xe3\x81\x8d" }, // "き", "き"
+ { 'k' , "\xe3\x81\xae", "\xe3\x81\xae" }, // "の", "の"
+ { 'o' , "\xe3\x82\x89", "\xe3\x82\x89" }, // "ら", "ら"
{ 's' , "\xe3\x81\xa8", "\xe3\x81\xa8" }, // "と", "と"
- { 'S' , "\xe3\x81\xa8", "\xe3\x81\xa8" }, // "と", "と"
- { 'd' , "\xe3\x81\x97", "\xe3\x81\x97" }, // "し", "し"
- { 'D' , "\xe3\x81\x97", "\xe3\x81\x97" }, // "し", "し"
- { 'f' , "\xe3\x81\xaf", "\xe3\x81\xaf" }, // "は", "は"
+ { 'w' , "\xe3\x81\xa6", "\xe3\x81\xa6" }, // "て", "て"
+ { '{' , "\xe3\x80\x8d", "\xe3\x80\x8d" }, // "」", "」"
+ { '"' , "\xe3\x82\x8d", "\xe3\x82\x8d" }, // "ろ", "ろ"
+ { '&' , "\xe3\x82\x83", "\xe3\x82\x83" }, // "ゃ", "ゃ"
+ { '*' , "\xe3\x82\x85", "\xe3\x82\x85" }, // "ゅ", "ゅ"
+ { '.' , "\xe3\x82\x8b", "\xe3\x82\x8b" }, // "る", "る"
+ { '2' , "\xe3\x81\xb5", "\xe3\x81\xb5" }, // "ふ", "ふ"
+ { '6' , "\xe3\x81\x8a", "\xe3\x81\x8a" }, // "お", "お"
+ { ':' , "\xe3\x82\x8c", "\xe3\x82\x8c" }, // "れ", "れ"
+ { '>' , "\xe3\x80\x82", "\xe3\x80\x82" }, // "。", "。"
+ { 'B' , "\xe3\x81\x93", "\xe3\x81\x93" }, // "こ", "こ"
{ 'F' , "\xe3\x81\xaf", "\xe3\x81\xaf" }, // "は", "は"
- { 'g' , "\xe3\x81\x8d", "\xe3\x81\x8d" }, // "き", "き"
- { 'G' , "\xe3\x81\x8d", "\xe3\x81\x8d" }, // "き", "き"
- { 'h' , "\xe3\x81\x8f", "\xe3\x81\x8f" }, // "く", "く"
- { 'H' , "\xe3\x81\x8f", "\xe3\x81\x8f" }, // "く", "く"
- { 'j' , "\xe3\x81\xbe", "\xe3\x81\xbe" }, // "ま", "ま"
{ 'J' , "\xe3\x81\xbe", "\xe3\x81\xbe" }, // "ま", "ま"
- { 'k' , "\xe3\x81\xae", "\xe3\x81\xae" }, // "の", "の"
- { 'K' , "\xe3\x81\xae", "\xe3\x81\xae" }, // "の", "の"
- { 'l' , "\xe3\x82\x8a", "\xe3\x82\x8a" }, // "り", "り"
- { 'L' , "\xe3\x82\x8a", "\xe3\x82\x8a" }, // "り", "り"
- { ';' , "\xe3\x82\x8c", "\xe3\x82\x8c" }, // "れ", "れ"
- { ':' , "\xe3\x82\x8c", "\xe3\x82\x8c" }, // "れ", "れ"
- { '\'', "\xe3\x81\x91", "\xe3\x81\x91" }, // "け", "け"
- { '\"', "\xe3\x81\x91", "\xe3\x81\x91" }, // "け", "け"
- { 'z' , "\xe3\x81\xa4", "\xe3\x81\xa3" }, // "つ", "っ"
- { 'Z' , "\xe3\x81\xa4", "\xe3\x81\xa3" }, // "つ", "っ"
- { 'x' , "\xe3\x81\x95", "\xe3\x81\x95" }, // "さ", "さ"
- { 'X' , "\xe3\x81\x95", "\xe3\x81\x95" }, // "さ", "さ"
- { 'c' , "\xe3\x81\x9d", "\xe3\x81\x9d" }, // "そ", "そ"
- { 'C' , "\xe3\x81\x9d", "\xe3\x81\x9d" }, // "そ", "そ"
- { 'v' , "\xe3\x81\xb2", "\xe3\x81\xb2" }, // "ひ", "ひ"
+ { 'N' , "\xe3\x81\xbf", "\xe3\x81\xbf" }, // "み", "み"
+ { 'R' , "\xe3\x81\x99", "\xe3\x81\x99" }, // "す", "す"
{ 'V' , "\xe3\x81\xb2", "\xe3\x81\xb2" }, // "ひ", "ひ"
+ { 'Z' , "\xe3\x81\xa3", "\xe3\x81\xa3" }, // "っ", "っ"
+ { '^' , "\xe3\x81\x89", "\xe3\x81\x89" }, // "ぉ", "ぉ"
{ 'b' , "\xe3\x81\x93", "\xe3\x81\x93" }, // "こ", "こ"
- { 'B' , "\xe3\x81\x93", "\xe3\x81\x93" }, // "こ", "こ"
+ { 'f' , "\xe3\x81\xaf", "\xe3\x81\xaf" }, // "は", "は"
+ { 'j' , "\xe3\x81\xbe", "\xe3\x81\xbe" }, // "ま", "ま"
{ 'n' , "\xe3\x81\xbf", "\xe3\x81\xbf" }, // "み", "み"
- { 'N' , "\xe3\x81\xbf", "\xe3\x81\xbf" }, // "み", "み"
+ { 'r' , "\xe3\x81\x99", "\xe3\x81\x99" }, // "す", "す"
+ { 'v' , "\xe3\x81\xb2", "\xe3\x81\xb2" }, // "ひ", "ひ"
+ { 'z' , "\xe3\x81\xa4", "\xe3\x81\xa4" }, // "つ", "つ"
+ { '~' , "\xe3\x80\x9c", "\xe3\x80\x9c" }, // "〜", "〜"
+ { '!' , "\xe3\x81\xac", "\xe3\x81\xac" }, // "ぬ", "ぬ"
+ { '%' , "\xe3\x81\x87", "\xe3\x81\x87" }, // "ぇ", "ぇ"
+ { ')' , "\xe3\x82\x92", "\xe3\x82\x92" }, // "を", "を"
+ { '-' , "\xe3\x81\xbb", "\xe3\x81\xbb" }, // "ほ", "ほ"
+ { '1' , "\xe3\x81\xac", "\xe3\x81\xac" }, // "ぬ", "ぬ"
+ { '5' , "\xe3\x81\x88", "\xe3\x81\x88" }, // "え", "え"
+ { '9' , "\xe3\x82\x88", "\xe3\x82\x88" }, // "よ", "よ"
+ { '=' , "\xe3\x82\x9c", "\xe3\x82\x9c" }, // "゜", "゜"
+ { 'A' , "\xe3\x81\xa1", "\xe3\x81\xa1" }, // "ち", "ち"
+ { 'E' , "\xe3\x81\x83", "\xe3\x81\x83" }, // "ぃ", "ぃ"
+ { 'I' , "\xe3\x81\xab", "\xe3\x81\xab" }, // "に", "に"
+ { 'M' , "\xe3\x82\x82", "\xe3\x82\x82" }, // "も", "も"
+ { 'Q' , "\xe3\x81\x9f", "\xe3\x81\x9f" }, // "た", "た"
+ { 'U' , "\xe3\x81\xaa", "\xe3\x81\xaa" }, // "な", "な"
+ { 'Y' , "\xe3\x82\x93", "\xe3\x82\x93" }, // "ん", "ん"
+ { ']' , "\xe3\x82\x80", "\xe3\x82\x80" }, // "む", "む"
+ { 'a' , "\xe3\x81\xa1", "\xe3\x81\xa1" }, // "ち", "ち"
+ { 'e' , "\xe3\x81\x84", "\xe3\x81\x84" }, // "い", "い"
+ { 'i' , "\xe3\x81\xab", "\xe3\x81\xab" }, // "に", "に"
{ 'm' , "\xe3\x82\x82", "\xe3\x82\x82" }, // "も", "も"
- { 'M' , "\xe3\x82\x82", "\xe3\x82\x82" }, // "も", "も"
- { ',' , "\xe3\x81\xad", "\xe3\x80\x81" }, // "ね", "、"
- { '<' , "\xe3\x81\xad", "\xe3\x80\x81" }, // "ね", "、"
- { '.' , "\xe3\x82\x8b", "\xe3\x80\x82" }, // "る", "。"
- { '>' , "\xe3\x82\x8b", "\xe3\x80\x82" }, // "る", "。"
- { '/' , "\xe3\x82\x81", "\xe3\x83\xbb" }, // "め", "・"
- { '?' , "\xe3\x82\x81", "\xe3\x83\xbb" }, // "め", "・"
+ { 'q' , "\xe3\x81\x9f", "\xe3\x81\x9f" }, // "た", "た"
+ { 'u' , "\xe3\x81\xaa", "\xe3\x81\xaa" }, // "な", "な"
+ { 'y' , "\xe3\x82\x93", "\xe3\x82\x93" }, // "ん", "ん"
+ { '}' , "\xe3\x83\xbc", "\xe3\x83\xbc" }, // "ー", "ー"
};
} // namespace
Index: unix/ibus/mozc_engine.cc
===================================================================
--- unix/ibus/mozc_engine.cc (revision 94)
+++ unix/ibus/mozc_engine.cc (working copy)
@@ -542,8 +542,7 @@
#endif
// TODO(yusukes): use |layout| in IBusEngineDesc if possible.
- const bool layout_is_jp =
- !g_strcmp0(ibus_engine_get_name(engine), "mozc-jp");
+ const bool layout_is_jp = 0;
commands::KeyEvent key;
if (!key_translator_->Translate(
Here I also made an ebuild for the latest ibus-mozc on gentoo portage. You can just use it if you are a Gentoo user.
http://ujihisa.shiracha.net/static/ibus-mozc-1.3.975.102.tgz
- *1 There are more variety of other input methods like thumb-shift or kyuuri-kai.
No comments:
Post a Comment