diff -Nrup xkb.orig/geometry/sanwa xkb/geometry/sanwa --- xkb.orig/geometry/sanwa 1970-01-01 01:00:00.000000000 +0100 +++ xkb/geometry/sanwa 2010-11-09 18:54:20.672534998 +0100 @@ -0,0 +1,151 @@ +// $Xorg: $ +// +//Copyright 1996, 1998 The Open Group +// +//Permission to use, copy, modify, distribute, and sell this software and its +//documentation for any purpose is hereby granted without fee, provided that +//the above copyright notice appear in all copies and that both that +//copyright notice and this permission notice appear in supporting +//documentation. +// +//The above copyright notice and this permission notice shall be +//included in all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +//OTHER DEALINGS IN THE SOFTWARE. +// +//Except as contained in this notice, the name of The Open Group shall +//not be used in advertising or otherwise to promote the sale, use or +//other dealings in this Software without prior written authorization +//from The Open Group. +// +default xkb_geometry "sanwaskbkg3" { + + description= "Sanwa Supply SKB-KG3"; + // SKB-KG3BK (black) + // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3BK + // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3BK/ + // SKB-KG3W (white) + // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3W + // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3SW/ + // SKB-KG3SV (silver) + // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3SV + // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3SV/ + + width= 304; + height= 127; + + shape.cornerRadius= 1; + shape "TOP" { { [15.25,13] }, { [2,2], [13.25,11] } }; + shape "NORM" { { [17,16] }, { [2,2], [15,14] } }; + shape "TBBK" { { [24.5,16] }, { [2,2], [22.5,14] } }; + shape "RTRN" { { [0,0], [36,0], [36,34], [8.5,34], [8.5,16], [0,16] }, + { [2,2], [34,2], [34,32], [10.5,32], [10.5,14], [2,14] } }; + shape "CAPS" { { [33,16] }, { [28,16] }, { [2,2], [26,14] } }; + shape "LFSH" { { [41,16] }, { [2,2], [39,14] } }; + shape "CTSH" { { [19.5,16] }, { [2,2], [17.5,14] } }; + shape "SPCE" { { [57.5,16] }, { [2,2], [55.5,14] } }; + + shape "LED" { cornerRadius= 0, { [5,1] } }; + + indicator.onColor= "green"; + indicator.offColor= "green30"; + indicator.top= 3; + indicator.shape= "LED"; + indicator "Num Lock" { left= 247; }; + indicator "Caps Lock" { left= 266; }; + indicator "Scroll Lock" { left= 285; }; + text.color= "black"; + text.top= 1; + text "Vendor1" { left= 10; text="SANWA"; }; + text.top= 4.5; + text "Vendor2" { left= 10; text="SUPPLY"; }; + text "NumLockLabel" { left= 241; text="Num Lock"; }; + text "CapsLockLabel" { left= 260; text="Caps Lock"; }; + text "ScrollLockLabel" { left= 279; text="Scroll Lock"; }; + + section.left= 3; + row.left= 1; + key.shape= "NORM"; + key.gap= 2; + section "Function" { + key.shape= "TOP"; + top= 10; + row { + top= 1; + keys { , , , , , , , + , , , , , , , + {, color="grey20"}, , {, color="grey20"} + }; + }; + overlay "SCLK" { + = + }; + overlay "FN" { + = + }; + }; // End of "Function" section + + section "Alpha" { + top= 24; + row { + top= 2; + keys { , , , , , , , + {, color="grey20"}, {, color="grey20"}, + {, color="grey20"}, {, color="grey20"}, + , , , { , "TBBK" } + }; + }; + row { + top= 20; + keys { { , "TBBK" }, , , , , , + , {, color="grey20"}, {, color="grey20"}, + {, color="grey20"}, {, color="grey20"}, , + , { , "RTRN" } + }; + }; + row { + top= 38; + keys { { , "CAPS" }, , , , , , + , {, color="grey20"}, {, color="grey20"}, + {, color="grey20"}, {, color="grey20"}, , + + }; + }; + row { + top= 56; + keys { { , "LFSH" }, , , , , , + , {, color="grey20"}, , + {, color="grey20"}, {, color="grey20"}, , + {, color="grey20"}, {, key.shape= "CTSH" } + }; + }; + row { + top= 74; + keys { { , key.shape= "CTSH" }, {, color="grey20"}, + , , , {, "SPCE" }, , , + , , {, color="grey20"}, + {, color="grey20"}, + {, key.shape= "CTSH", color="grey20"} + }; + }; + overlay "SCLK" { + =, =, =, =, + =, =, =, =, + =, =, =, =, + =, =, = + }; + overlay "FN" { + =, =, =, = + }; + }; // End of "Alpha" section + + alias = ; + alias = ; + +}; // End of "default" geometry diff -Nrup xkb.orig/geometry.dir xkb/geometry.dir --- xkb.orig/geometry.dir 2010-10-30 14:00:45.118383000 +0200 +++ xkb/geometry.dir 2010-11-09 20:42:21.060781005 +0100 @@ -124,3 +124,4 @@ h-p----- -------- hhk(basic) -d------ -------- nec(pc98) -d------ -------- amiga(usa1) -------- -------- amiga(de) +-------- -------- sanwa(sanwaskbkg3) diff -Nrup xkb.orig/rules/base xkb/rules/base --- xkb.orig/rules/base 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/base 2010-11-09 18:16:14.182535001 +0100 @@ -156,6 +156,7 @@ hpmini110 = hp(mini110) hpdv5 = hp(dv5) omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) $pcmodels = pc(%m) $pcgeometries = pc(%m) everex = everex(STEPnote) diff -Nrup xkb.orig/rules/base.lst xkb/rules/base.lst --- xkb.orig/rules/base.lst 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/base.lst 2010-11-09 20:05:48.231955005 +0100 @@ -127,6 +127,7 @@ qtronix QTronix Scorpius 98N+ samsung4500 Samsung SDM 4500P samsung4510 Samsung SDM 4510P + sanwaskbkg3 Sanwa Supply SKB-KG3 sk1300 SK-1300 sk2500 SK-2500 sk6200 SK-6200 @@ -465,6 +466,7 @@ us it: US keyboard with Italian letters geo it: Georgian kana jp: Kana + kana86 jp: Kana 86 OADG109A jp: OADG 109A mac jp: Macintosh phonetic kg: Phonetic diff -Nrup xkb.orig/rules/base.xml xkb/rules/base.xml --- xkb.orig/rules/base.xml 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/base.xml 2010-11-09 20:07:09.501954998 +0100 @@ -897,6 +897,13 @@ + sanwaskbkg3 + Sanwa Supply SKB-KG3 + Sanwa Supply Inc. + + + + sk1300 SK-1300 NEC @@ -2904,6 +2911,12 @@ Kana + + + kana86 + Kana 86 + + OADG109A @@ -5370,4 +5383,4 @@ - \ No newline at end of file + diff -Nrup xkb.orig/rules/evdev xkb/rules/evdev --- xkb.orig/rules/evdev 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/evdev 2010-11-09 18:16:28.212534999 +0100 @@ -142,6 +142,7 @@ hpmini110 = hp(mini110) hpdv5 = hp(dv5) omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanmwa(sanwaskbkg3) $pcmodels = pc(%m) $pcgeometries = pc(%m) everex = everex(STEPnote) diff -Nrup xkb.orig/rules/evdev.lst xkb/rules/evdev.lst --- xkb.orig/rules/evdev.lst 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/evdev.lst 2010-11-09 20:05:32.381955000 +0100 @@ -127,6 +127,7 @@ qtronix QTronix Scorpius 98N+ samsung4500 Samsung SDM 4500P samsung4510 Samsung SDM 4510P + sanwaskbkg3 Sanwa Supply SKB-KG3 sk1300 SK-1300 sk2500 SK-2500 sk6200 SK-6200 @@ -465,6 +466,7 @@ us it: US keyboard with Italian letters geo it: Georgian kana jp: Kana + kana86 jp: Kana 86 OADG109A jp: OADG 109A mac jp: Macintosh phonetic kg: Phonetic diff -Nrup xkb.orig/rules/evdev.xml xkb/rules/evdev.xml --- xkb.orig/rules/evdev.xml 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/evdev.xml 2010-11-09 20:07:25.191955005 +0100 @@ -897,6 +897,13 @@ + sanwaskbkg3 + Sanwa Supply SKB-KG3 + Sanwa Supply Inc. + + + + sk1300 SK-1300 NEC @@ -2904,6 +2911,12 @@ Kana + + + kana86 + Kana 86 + + OADG109A @@ -5370,4 +5383,4 @@ - \ No newline at end of file + diff -Nrup xkb.orig/rules/xfree86 xkb/rules/xfree86 --- xkb.orig/rules/xfree86 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/xfree86 2010-11-09 18:16:14.182535001 +0100 @@ -156,6 +156,7 @@ hpmini110 = hp(mini110) hpdv5 = hp(dv5) omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) $pcmodels = pc(%m) $pcgeometries = pc(%m) everex = everex(STEPnote) diff -Nrup xkb.orig/rules/xfree86.lst xkb/rules/xfree86.lst --- xkb.orig/rules/xfree86.lst 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/xfree86.lst 2010-11-09 20:05:48.231955005 +0100 @@ -127,6 +127,7 @@ qtronix QTronix Scorpius 98N+ samsung4500 Samsung SDM 4500P samsung4510 Samsung SDM 4510P + sanwaskbkg3 Sanwa Supply SKB-KG3 sk1300 SK-1300 sk2500 SK-2500 sk6200 SK-6200 @@ -465,6 +466,7 @@ us it: US keyboard with Italian letters geo it: Georgian kana jp: Kana + kana86 jp: Kana 86 OADG109A jp: OADG 109A mac jp: Macintosh phonetic kg: Phonetic diff -Nrup xkb.orig/rules/xfree86.xml xkb/rules/xfree86.xml --- xkb.orig/rules/xfree86.xml 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/xfree86.xml 2010-11-09 20:07:09.501954998 +0100 @@ -897,6 +897,13 @@ + sanwaskbkg3 + Sanwa Supply SKB-KG3 + Sanwa Supply Inc. + + + + sk1300 SK-1300 NEC @@ -2904,6 +2911,12 @@ Kana + + + kana86 + Kana 86 + + OADG109A @@ -5370,4 +5383,4 @@ - \ No newline at end of file + diff -Nrup xkb.orig/rules/xorg xkb/rules/xorg --- xkb.orig/rules/xorg 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/xorg 2010-11-09 18:16:14.182535001 +0100 @@ -156,6 +156,7 @@ hpmini110 = hp(mini110) hpdv5 = hp(dv5) omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) $pcmodels = pc(%m) $pcgeometries = pc(%m) everex = everex(STEPnote) diff -Nrup xkb.orig/rules/xorg.lst xkb/rules/xorg.lst --- xkb.orig/rules/xorg.lst 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/xorg.lst 2010-11-09 20:05:48.231955005 +0100 @@ -127,6 +127,7 @@ qtronix QTronix Scorpius 98N+ samsung4500 Samsung SDM 4500P samsung4510 Samsung SDM 4510P + sanwaskbkg3 Sanwa Supply SKB-KG3 sk1300 SK-1300 sk2500 SK-2500 sk6200 SK-6200 @@ -465,6 +466,7 @@ us it: US keyboard with Italian letters geo it: Georgian kana jp: Kana + kana86 jp: Kana 86 OADG109A jp: OADG 109A mac jp: Macintosh phonetic kg: Phonetic diff -Nrup xkb.orig/rules/xorg.xml xkb/rules/xorg.xml --- xkb.orig/rules/xorg.xml 2010-04-15 14:12:21.000000000 +0200 +++ xkb/rules/xorg.xml 2010-11-09 20:07:09.501954998 +0100 @@ -897,6 +897,13 @@ + sanwaskbkg3 + Sanwa Supply SKB-KG3 + Sanwa Supply Inc. + + + + sk1300 SK-1300 NEC @@ -2904,6 +2911,12 @@ Kana + + + kana86 + Kana 86 + + OADG109A @@ -5370,4 +5383,4 @@ - \ No newline at end of file + diff -Nrup xkb.orig/symbols/jp xkb/symbols/jp --- xkb.orig/symbols/jp 2010-04-15 14:12:22.000000000 +0200 +++ xkb/symbols/jp 2010-11-09 20:02:03.881955002 +0100 @@ -116,6 +116,34 @@ xkb_symbols "OADG109A" { key { [ yen, bar ] }; }; +// 86 keys with kana map +partial alphanumeric_keys +xkb_symbols "kana86" { + + incluce "pc(function)" + incluce "pc(editing)" + incluce "keypad(numoperdecsep)" + incluce "altwin(menu)" + include "jp(kana)" + include "jp(OADG109A)" + name[Group1]= "Japan - Kana 86"; + + key { [ Escape ] }; + key { [ Num_Lock, Pointer_EnableKeys ] }; + key { [ BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + key { [ Shift_L ] }; + key { [ Shift_R ] }; + key { [ Super_L ] }; + key { [ Alt_L ] }; + key { [ space ] }; + key { [ Alt_R ] }; +// for compatability with other keyboards connected at the same time + key { [ Super_R ] }; + key { [ Control_R ] }; +}; + partial alphanumeric_keys xkb_symbols "kana" { diff -Nrup xkb.orig/symbols/keypad xkb/symbols/keypad --- xkb.orig/symbols/keypad 2010-04-15 14:12:22.000000000 +0200 +++ xkb/symbols/keypad 2010-11-09 18:55:24.962534998 +0100 @@ -578,3 +578,52 @@ xkb_symbols "atm" { key { [ NoSymbol, KP_8 ] }; key { [ NoSymbol, KP_9 ] }; }; + +// Only numbers, operators and decimal separator, +// as seen on keypad overlay on Japanese keyboard. +// ┌─┬─┬─┬─┐ +// │7│8│9│*│ +// ├─┼─┼─┼─┤ +// │4│5│6│-│ +// ├─┼─┼─┼─┤ +// │1│2│3│+│ +// ├─┼─┼─┼─┤ +// │0│ │·│/│ +// └─┴─┴─┴─┘ +partial keypad_keys +xkb_symbols "numoperdecsep" { + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; +// ClsGrb kills whichever client has a grab in effect + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Multiply, XF86_ClearGrab ] + }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; +// -VMode switches to the previous video mode + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Subtract, XF86_Prev_VMode ] + }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; +// +VMode switches to the next video mode + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Add, XF86_Next_VMode ] + }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +// Ungrab cancels server/keyboard/pointer grabs + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Divide, XF86_Ungrab ] + }; +}; diff -Nrup xkb.orig/symbols.dir xkb/symbols.dir --- xkb.orig/symbols.dir 2010-04-15 14:12:22.000000000 +0200 +++ xkb/symbols.dir 2010-11-09 20:02:53.781955001 +0100 @@ -539,6 +539,7 @@ h-p----- a---g--- gr(bare) h-p----- a------- jp(common) --p----- a------- jp(OADG109A) --p----- a------- jp(kana) +--p----- a------- jp(kana86) --p----- a------- jp(nicola_f_bs) --p----- a------- jp(mac) -d------ a------- kr(kr106)