summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey V. Udaltsov <svu@gnome.org>2010-11-13 00:22:45 +0000
committerSergey V. Udaltsov <svu@gnome.org>2010-11-13 00:22:45 +0000
commit240a40cbd3c2dea858e84868d423b3d826efa2dc (patch)
treec3587d0f0e34f8259302a0ea8485dbfbae223516
parent1bc01a5eaa1180c026ebf8fc75e9bc3cb6876c66 (diff)
Added sanwa kbd model, jp(kana86) variant
https://bugs.freedesktop.org/show_bug.cgi?id=31340
-rw-r--r--geometry/Makefile.am2
-rw-r--r--geometry/sanwa151
-rw-r--r--rules/base.m_g.part1
-rw-r--r--rules/base.xml.in13
-rw-r--r--symbols/jp28
-rw-r--r--symbols/keypad48
6 files changed, 242 insertions, 1 deletions
diff --git a/geometry/Makefile.am b/geometry/Makefile.am
index 84619fb9..2a83d16e 100644
--- a/geometry/Makefile.am
+++ b/geometry/Makefile.am
@@ -7,7 +7,7 @@ amiga ataritt chicony \
dell everex fujitsu \
hhk hp keytronic kinesis \
macintosh microsoft nec nokia \
-northgate pc sony thinkpad \
+northgate pc sanwa sony thinkpad \
sun typematrix winbook README
dir_data = $(dist_geom_DATA)
diff --git a/geometry/sanwa b/geometry/sanwa
new file mode 100644
index 00000000..ccb09d61
--- /dev/null
+++ b/geometry/sanwa
@@ -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 { <ESC>, <FK01>, <FK02>, <FK03>, <FK04>, <FK05>, <FK06>,
+ <FK07>, <FK08>, <FK09>, <FK10>, <FK11>, <FK12>, <PRSC>,
+ {<NMLK>, color="grey20"}, <PAUS>, {<DELE>, color="grey20"}
+ };
+ };
+ overlay "SCLK" {
+ <NMLK>=<SCLK>
+ };
+ overlay "FN" {
+ <DELE>=<INS>
+ };
+ }; // End of "Function" section
+
+ section "Alpha" {
+ top= 24;
+ row {
+ top= 2;
+ keys { <HZTG>, <AE01>, <AE02>, <AE03>, <AE04>, <AE05>, <AE06>,
+ {<AE07>, color="grey20"}, {<AE08>, color="grey20"},
+ {<AE09>, color="grey20"}, {<AE10>, color="grey20"},
+ <AE11>, <AE12>, <AE13>, { <BKSP>, "TBBK" }
+ };
+ };
+ row {
+ top= 20;
+ keys { { <TAB>, "TBBK" }, <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
+ <AD06>, {<AD07>, color="grey20"}, {<AD08>, color="grey20"},
+ {<AD09>, color="grey20"}, {<AD10>, color="grey20"}, <AD11>,
+ <AD12>, { <RTRN>, "RTRN" }
+ };
+ };
+ row {
+ top= 38;
+ keys { { <CAPS>, "CAPS" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
+ <AC06>, {<AC07>, color="grey20"}, {<AC08>, color="grey20"},
+ {<AC09>, color="grey20"}, {<AC10>, color="grey20"}, <AC11>,
+ <AC12>
+ };
+ };
+ row {
+ top= 56;
+ keys { { <LFSH>, "LFSH" }, <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
+ <AB06>, {<AB07>, color="grey20"}, <AB08>,
+ {<AB09>, color="grey20"}, {<AB10>, color="grey20"}, <AB11>,
+ {<UP>, color="grey20"}, {<RTSH>, key.shape= "CTSH" }
+ };
+ };
+ row {
+ top= 74;
+ keys { { <LCTL>, key.shape= "CTSH" }, {<FN>, color="grey20"},
+ <LWIN>, <LALT>, <NFER>, {<SPCE>, "SPCE" }, <XFER>, <HKTG>,
+ <RALT>, <MENU>, {<LEFT>, color="grey20"},
+ {<DOWN>, color="grey20"},
+ {<RGHT>, key.shape= "CTSH", color="grey20"}
+ };
+ };
+ overlay "SCLK" {
+ <AE07>=<KO7>, <AE08>=<KO8>, <AE09>=<KO9>, <AE10>=<KOMU>,
+ <AD07>=<KO4>, <AD08>=<KO5>, <AD09>=<KO6>, <AD10>=<KOSU>,
+ <AC07>=<KO1>, <AC08>=<KO2>, <AC09>=<KO3>, <AC10>=<KOAD>,
+ <AB07>=<KO0>, <AB09>=<KODL>, <AB10>=<KODV>
+ };
+ overlay "FN" {
+ <UP>=<PGUP>, <LEFT>=<HOME>, <DOWN>=<PGDN>, <RGHT>=<END>
+ };
+ }; // End of "Alpha" section
+
+ alias <AC00> = <CAPS>;
+ alias <AA00> = <LCTL>;
+
+}; // End of "default" geometry
diff --git a/rules/base.m_g.part b/rules/base.m_g.part
index c76a55e5..753f2ed7 100644
--- a/rules/base.m_g.part
+++ b/rules/base.m_g.part
@@ -8,6 +8,7 @@
hpmini110 = hp(mini110)
hpdv5 = hp(dv5)
omnikey101 = northgate(omnikey101)
+ sanwaskbkg3 = sanwa(sanwaskbkg3)
$pcmodels = pc(%m)
$pcgeometries = pc(%m)
everex = everex(STEPnote)
diff --git a/rules/base.xml.in b/rules/base.xml.in
index 75f88fc8..159af8d0 100644
--- a/rules/base.xml.in
+++ b/rules/base.xml.in
@@ -897,6 +897,13 @@
</model>
<model>
<configItem>
+ <name>sanwaskbkg3</name>
+ <description>Sanwa Supply SKB-KG3</description>
+ <vendor>Sanwa Supply Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
<name>sk1300</name>
<_description>SK-1300</_description>
<vendor>NEC</vendor>
@@ -2954,6 +2961,12 @@
</variant>
<variant>
<configItem>
+ <name>kana86</name>
+ <_description>Kana 86</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
<name>OADG109A</name>
<_description>OADG 109A</_description>
</configItem>
diff --git a/symbols/jp b/symbols/jp
index 68ffff72..3da0dd54 100644
--- a/symbols/jp
+++ b/symbols/jp
@@ -116,6 +116,34 @@ xkb_symbols "OADG109A" {
key <AE13> { [ yen, bar ] };
};
+// 86 keys with kana map
+partial alphanumeric_keys
+xkb_symbols "kana86" {
+
+ include "pc(function)"
+ include "pc(editing)"
+ include "keypad(numoperdecsep)"
+ include "altwin(menu)"
+ include "jp(kana)"
+ include "jp(OADG109A)"
+ name[Group1]= "Japan - Kana 86";
+
+ key <ESC> { [ Escape ] };
+ key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+ 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 compatability with other keyboards connected at the same time
+ key <RWIN> { [ Super_R ] };
+ key <RCTL> { [ Control_R ] };
+};
+
partial alphanumeric_keys
xkb_symbols "kana" {
diff --git a/symbols/keypad b/symbols/keypad
index a6aaa144..406d40b4 100644
--- a/symbols/keypad
+++ b/symbols/keypad
@@ -586,3 +586,51 @@ xkb_symbols "pointerkeys" {
key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
};
+// 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 <KO7> { [ KP_7 ] };
+ key <KO8> { [ KP_8 ] };
+ key <KO9> { [ KP_9 ] };
+// ClsGrb kills whichever client has a grab in effect
+ key <KOMU> {
+ type="CTRL+ALT",
+ symbols[Group1]= [ KP_Multiply, XF86_ClearGrab ]
+ };
+
+ key <KO4> { [ KP_4 ] };
+ key <KO5> { [ KP_5 ] };
+ key <KO6> { [ KP_6 ] };
+// -VMode switches to the previous video mode
+ key <KOSU> {
+ type="CTRL+ALT",
+ symbols[Group1]= [ KP_Subtract, XF86_Prev_VMode ]
+ };
+
+ key <KO1> { [ KP_1 ] };
+ key <KO2> { [ KP_2 ] };
+ key <KO3> { [ KP_3 ] };
+// +VMode switches to the next video mode
+ key <KOAD> {
+ type="CTRL+ALT",
+ symbols[Group1]= [ KP_Add, XF86_Next_VMode ]
+ };
+
+ key <KO0> { [ KP_0 ] };
+ key <KODL> { [ KP_Decimal ] };
+// Ungrab cancels server/keyboard/pointer grabs
+ key <KODV> {
+ type="CTRL+ALT",
+ symbols[Group1]= [ KP_Divide, XF86_Ungrab ]
+ };
+};