// Symbols for Japanese 106-keys keyboards (by tsuka@kawalab.dnj.ynu.ac.jp).

default partial alphanumeric_keys
xkb_symbols "106" {

    include "jp(common)"
    name[Group1]= "Japanese";

    key <AE10> { [ 0, asciitilde	] };
    key <AE13> { [ backslash, bar	] };
};

hidden partial alphanumeric_keys
xkb_symbols "common" {
    // "Common" keys for jp 106/109A layouts.

    key <HZTG> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
    };

    key <AE01> { [ 1, exclam		] };
    key <AE02> { [ 2, quotedbl		] };
    key <AE03> { [ 3, numbersign	] };
    key <AE04> { [ 4, dollar		] };
    key <AE05> { [ 5, percent		] };
    key <AE06> { [ 6, ampersand		] };
    key <AE07> { [ 7, apostrophe	] };
    key <AE08> { [ 8, parenleft		] };
    key <AE09> { [ 9, parenright	] };
    key <AE11> { [ minus, equal		] };
    key <AE12> { [ asciicircum,	asciitilde] };

    key <AD01> { [ q, Q			] };
    key <AD02> { [ w, W			] };
    key <AD03> { [ e, E			] };
    key <AD04> { [ r, R			] };
    key <AD05> { [ t, T			] };
    key <AD06> { [ y, Y			] };
    key <AD07> { [ u, U			] };
    key <AD08> { [ i, I			] };
    key <AD09> { [ o, O			] };
    key <AD10> { [ p, P			] };
    key <AD11> { [ at, grave		] };
    key <AD12> { [ bracketleft,	braceleft ] };

    key <CAPS> { [ Eisu_toggle, Caps_Lock ] };

    key <AC01> { [ a, A			] };
    key <AC02> { [ s, S			] };
    key <AC03> { [ d, D			] };
    key <AC04> { [ f, F			] };
    key <AC05> { [ g, G			] };
    key <AC06> { [ h, H			] };
    key <AC07> { [ j, J			] };
    key <AC08> { [ k, K			] };
    key <AC09> { [ l, L			] };
    key <AC10> { [ semicolon, plus	] };
    key <AC11> { [ colon, asterisk	] };
    key <AC12> { [ bracketright, braceright ] };

    key <AB01> { [ z, Z			] };
    key <AB02> { [ x, X			] };
    key <AB03> { [ c, C			] };
    key <AB04> { [ v, V			] };
    key <AB05> { [ b, B			] };
    key <AB06> { [ n, N			] };
    key <AB07> { [ m, M			] };
    key <AB08> { [ comma,  less		] };
    key <AB09> { [ period, greater	] };
    key <AB10> { [ slash, question	] };
    key <AB11> { [ backslash, underscore] };
    key <LCTL> { [ Control_L		] };

    key <NFER> { [ Muhenkan		] };

    key <XFER> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Henkan, Mode_switch ]
    };

    key <HKTG> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Hiragana_Katakana, Romaji ]
    };

    key <EISU> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Eisu_toggle ]
    };

    key <KANA> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Hiragana_Katakana ]
    };

    key <PRSC> {
	type[Group1]= "PC_ALT_LEVEL2",
	symbols[Group1]= [ Print, Execute ]
    };
};

partial alphanumeric_keys
xkb_symbols "henkan" {
    key <XFER> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Henkan, Mode_switch ]
    };
};

partial alphanumeric_keys
xkb_symbols "OADG109A" {

    include "jp(common)"
    name[Group1]= "Japanese (OADG 109A)";

    key <AE10> { [ 0		] };
    key <AE13> { [ yen, bar	] };
};

// 86 keys with kana map
partial alphanumeric_keys
xkb_symbols "kana86" {

    include "srvr_ctrl(fkey2vt)"
    include "pc(editing)"
    include "keypad(numoperdecsep)"
    include "altwin(menu)"
    include "jp(kana)"
    include "jp(OADG109A)"
    name[Group1]= "Japanese (Kana 86)";

    key  <ESC> {	[ Escape	]	};
    key <NMLK> {	[ Num_Lock	]	};
    key <BKSP> {	[ BackSpace	]	};
    key  <TAB> {	[ Tab, ISO_Left_Tab ]	};
    key <RTRN> {	[ Return	]	};
    key <LFSH> {	[ Shift_L	]	};
    key <RTSH> {	[ Shift_R	]	};
    key <LWIN> {	[ Super_L	]	};
    key <LALT> {	[ Alt_L		]	};
    key <SPCE> {	[ space		]	};
    key <RALT> {	[ Alt_R		]	};
    // For compatibility with other keyboards connected at the same time:
    key <RWIN> {	[ Super_R	]	};
    key <RCTL> {	[ Control_R	]	};
};

partial alphanumeric_keys
xkb_symbols "kana" {

    name[Group1]= "Japanese (Kana)";

    key <HZTG> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
    };

    key <AE01> { [ kana_NU		]	};
    key <AE02> { [ kana_FU		]	};
    key <AE03> { [ kana_A, kana_a	]	};
    key <AE04> { [ kana_U, kana_u	]	};
    key <AE05> { [ kana_E, kana_e	]	};
    key <AE06> { [ kana_O, kana_o	]	};
    key <AE07> { [ kana_YA, kana_ya	]	};
    key <AE08> { [ kana_YU, kana_yu	]	};
    key <AE09> { [ kana_YO, kana_yo	]	};
    key <AE10> { [ kana_WA, kana_WO	]	};
    key <AE11> { [ kana_HO		]	};
    key <AE12> { [ kana_HE		]	};
    key <AE13> { [ prolongedsound	]	};

    key <AD01> { [ kana_TA		]	};
    key <AD02> { [ kana_TE		]	};
    key <AD03> { [ kana_I, kana_i	]	};
    key <AD04> { [ kana_SU		]	};
    key <AD05> { [ kana_KA		]	};
    key <AD06> { [ kana_N		]	};
    key <AD07> { [ kana_NA		]	};
    key <AD08> { [ kana_NI		]	};
    key <AD09> { [ kana_RA		]	};
    key <AD10> { [ kana_SE		]	};
    key <AD11> { [ voicedsound		]	};
    key <AD12> { [ semivoicedsound, kana_openingbracket ] };

    key <CAPS> { [ Eisu_toggle, Caps_Lock ]	};
    key <AC01> { [ kana_CHI		]	};
    key <AC02> { [ kana_TO		]	};
    key <AC03> { [ kana_SHI		]	};
    key <AC04> { [ kana_HA		]	};
    key <AC05> { [ kana_KI		]	};
    key <AC06> { [ kana_KU		]	};
    key <AC07> { [ kana_MA		]	};
    key <AC08> { [ kana_NO		]	};
    key <AC09> { [ kana_RI		]	};
    key <AC10> { [ kana_RE		]	};
    key <AC11> { [ kana_KE		]	};
    key <AC12> { [ kana_MU, kana_closingbracket ] };

    key <AB01> { [ kana_TSU, kana_tsu	]	};
    key <AB02> { [ kana_SA		]	};
    key <AB03> { [ kana_SO		]	};
    key <AB04> { [ kana_HI		]	};
    key <AB05> { [ kana_KO		]	};
    key <AB06> { [ kana_MI		]	};
    key <AB07> { [ kana_MO		]	};
    key <AB08> { [ kana_NE, kana_comma ]	};
    key <AB09> { [ kana_RU, kana_fullstop ]	};
    key <AB10> { [ kana_ME, kana_middledot ]	};
    key <AB11> { [ kana_RO		]	};
    key <LCTL> { [ Control_L		]	};

    key <NFER> { [ Muhenkan		]	};

    key <XFER> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Henkan, Mode_switch ]
    };
    key <HKTG> {
	type[Group1]="PC_ALT_LEVEL2",
	symbols[Group1]= [ Hiragana_Katakana, Romaji ]
    };

    key <PRSC> {
	type[Group1]= "PC_ALT_LEVEL2",
	symbols[Group1]= [ Print, Execute ]
    };
};

partial alphanumeric_keys
xkb_symbols "nicola_f_bs" {
    key <BKSP> {
	type="",
	symbols[Group1]= [ bracketright, braceright ]
    };
    key <AE10> { [ 0, underscore        ] };
    key <AD11> { [ colon, asterisk      ] };
    key <AC11> { [ BackSpace, BackSpace ] };
    key <AC12> { [ Escape               ] };
    key <AB11> { [ at, grave            ] };
};

// Copied from macintosh_vndr/jp
partial alphanumeric_keys
xkb_symbols "mac" {
    include "jp(kana)"
    name[Group1]= "Japanese (Macintosh)";

    replace key <CAPS> { [ Caps_Lock ] };
};

partial alphanumeric_keys
xkb_symbols "hztg_escape" {
    replace key <HZTG> { [ Escape ] };
};

partial alphanumeric_keys
xkb_symbols "dvorak" {
    include "jp(OADG109A)"
    name[Group1]= "Japanese (Dvorak)";

    key <AE11> { [ at, grave		] };

    key <AD01> { [ colon, asterisk	] };
    key <AD02> { [ comma, less		] };
    key <AD03> { [ period, greater	] };
    key <AD04> { [ p, P			] };
    key <AD05> { [ y, Y			] };
    key <AD06> { [ f, F			] };
    key <AD07> { [ g, G			] };
    key <AD08> { [ c, C			] };
    key <AD09> { [ r, R			] };
    key <AD10> { [ l, L			] };
    key <AD11> { [ slash, question	] };

    key <AC02> { [ o, O			] };
    key <AC03> { [ e, E			] };
    key <AC04> { [ u, U			] };
    key <AC05> { [ i, I			] };
    key <AC06> { [ d, D			] };
    key <AC07> { [ h, H			] };
    key <AC08> { [ t, T			] };
    key <AC09> { [ n, N			] };
    key <AC10> { [ s, S			] };
    key <AC11> { [ minus, equal		] };

    key <AB01> { [ semicolon, plus	] };
    key <AB02> { [ q, Q			] };
    key <AB03> { [ j, J			] };
    key <AB04> { [ k, K			] };
    key <AB05> { [ x, X			] };
    key <AB06> { [ b, B			] };
    key <AB08> { [ w, W			] };
    key <AB09> { [ v, V			] };
    key <AB10> { [ z, Z			] };
};

// EXTRAS:

partial alphanumeric_keys
	xkb_symbols "sun_type6_suncompat" {
	include "sun_vndr/jp(sun_type6_suncompat)"
};

partial alphanumeric_keys
	xkb_symbols "sun_type6" {
	include "sun_vndr/jp(sun_type6)"
};

partial alphanumeric_keys
	xkb_symbols "sun_type7_suncompat" {
	include "sun_vndr/jp(sun_type7_suncompat)"
};

partial alphanumeric_keys
	xkb_symbols "suncompat" {
	include "sun_vndr/jp(suncompat)"
};

partial alphanumeric_keys
	xkb_symbols "sun_type7" {
	include "sun_vndr/jp(sun_type7)"
};
