xkbdata: Add Nokia n810 vendor specific keyboard mappings
authormb <mb@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 28 Jan 2011 15:19:19 +0000 (15:19 +0000)
committermb <mb@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 28 Jan 2011 15:19:19 +0000 (15:19 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@25201 3c298f89-4303-0410-b956-a3cf2f4a3e73

Xorg/xorg/data/xkbdata/Makefile
Xorg/xorg/data/xkbdata/files/nokia_n810/rx-44 [new file with mode: 0644]
Xorg/xorg/data/xkbdata/files/nokia_n810/su-8w [new file with mode: 0644]

index 7587cfe..4157539 100644 (file)
@@ -30,7 +30,7 @@ define Package/xkbdata
 endef
 
 define Package/xkbdata/install
-       $(INSTALL_DIR) $(1)/usr/share/X11/xkb/{rules,types,keycodes,geometry,compat}
+       $(INSTALL_DIR) $(1)/usr/share/X11/xkb/{rules,types,keycodes,geometry,compat,symbols}
        $(INSTALL_DATA) \
                $(PKG_INSTALL_DIR)/usr/share/X11/xkb/rules/xorg \
                $(1)/usr/share/X11/xkb/rules/base
@@ -53,6 +53,12 @@ define Package/xkbdata/install
        $(INSTALL_DATA) \
                $(PKG_INSTALL_DIR)/usr/share/X11/xkb/compat/* \
                $(1)/usr/share/X11/xkb/compat/
+
+       $(if $(filter y,$(CONFIG_TARGET_omap24xx_n810-gui)), \
+               $(INSTALL_DIR) $(1)/usr/share/X11/xkb/symbols/nokia_vndr; \
+               $(INSTALL_DATA) ./files/nokia_n810/rx-44 $(1)/usr/share/X11/xkb/symbols/nokia_vndr/; \
+               $(INSTALL_DATA) ./files/nokia_n810/su-8w $(1)/usr/share/X11/xkb/symbols/nokia_vndr/; \
+       )
 endef
 
 $(eval $(call BuildPackage,xkbdata))
diff --git a/Xorg/xorg/data/xkbdata/files/nokia_n810/rx-44 b/Xorg/xorg/data/xkbdata/files/nokia_n810/rx-44
new file mode 100644 (file)
index 0000000..b775ca0
--- /dev/null
@@ -0,0 +1,309 @@
+partial alphanumeric_keys
+xkb_symbols "us" {
+    name[Group1] = "U.S. English";
+    
+    include "nokia_vndr/rx-44(base)"
+
+    key <AC01> {       [       a,              A,              exclam,         exclam          ]       };
+    key <AC02> {       [       s,              S,              quotedbl,       quotedbl        ]       };
+    key <AC03> {       [       d,              D,              at,             at              ]       };
+    key <AC04> {       [       f,              F,              numbersign,     numbersign      ]       };
+    key <AC05> {       [       g,              G,              backslash,      backslash       ]       };
+    key <AC06> {       [       h,              H,              slash,          slash           ]       };
+    key <AC07> {       [       j,              J,              parenleft,      parenleft       ]       };
+    key <AC08> {       [       k,              K,              parenright,     parenright      ]       };
+    key <AC09> {       [       l,              L,              asterisk,       asterisk        ]       };
+    key <AC11>  {       [       apostrophe,     question,       question,      question        ]       };
+
+    key <AB01> {       [       z,              Z,              yen,            yen             ]       };
+    key <AB02> {       [       x,              X,              asciicircum,    asciicircum     ]       };
+    key <AB03> {       [       c,              C,              asciitilde,     asciitilde      ]       };
+    key <AB04> {       [       v,              V,              percent,        percent         ]       };
+    key <AB05> {       [       b,              B,              ampersand,      ampersand       ]       };
+    key <AB06> {       [       n,              N,              dollar,         dollar          ]       };
+    key <AB07> {       [       m,              M,              EuroSign,       EuroSign        ]       };
+    key <AC10>  {       [       semicolon,      colon,          sterling,      sterling        ]       };
+    key <AE11>  {       [       minus,          underscore,     underscore,    underscore      ]       };
+    key <AE12>  {       [       plus,           equal,          equal,         equal           ]       };
+
+    key <AB08>  {       [       comma,          less,           comma,         less            ]       };
+    key <AB09>  {       [       period,         greater,        period,                greater         ]       };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "fisenoda" {
+    name[Group1] = "Finnish/Swedish/Norwegian/Danish";
+
+    include "nokia_vndr/rx-44(base)"
+
+    key <AC01> {       [       a,              A,              exclam,         exclam          ]       };
+    key <AC02> {       [       s,              S,              quotedbl,       quotedbl        ]       };
+    key <AC03> {       [       d,              D,              at,             at              ]       };
+    key <AC04> {       [       f,              F,              numbersign,     numbersign      ]       };
+    key <AC05> {       [       g,              G,              asterisk,       asterisk        ]       };
+    key <AC06> {       [       h,              H,              backslash,      backslash       ]       };
+    key <AC07> {       [       j,              J,              slash,          slash           ]       };
+    key <AC08> {       [       k,              K,              parenleft,      parenleft       ]       };
+    key <AC09> {       [       l,              L,              parenright,     parenright      ]       };
+    key <AC11>  {       [       aring,          Aring,          question,      question        ]       };
+
+    key <AB01> {       [       z,              Z,              EuroSign,       EuroSign        ]       };
+    key <AB02> {       [       x,              X,              asciitilde,     asciitilde      ]       };
+    key <AB03> {       [       c,              C,              percent,        percent         ]       };
+    key <AB04> {       [       v,              V,              ampersand,      ampersand       ]       };
+    key <AB05> {       [       b,              B,              plus,           plus            ]       };
+    key <AB06> {       [       n,              N,              less,           less            ]       };
+    key <AB07> {       [       m,              M,              greater,        greater         ]       };
+    key <AC10>  {       type="EIGHT_LEVEL", [       oslash,     Oslash,                equal,          equal,          odiaeresis,             Odiaeresis,     equal,          equal           ]       };
+    key <AE11>  {       type="EIGHT_LEVEL", [       ae,                AE,             apostrophe,     apostrophe,     adiaeresis,             Adiaeresis,     apostrophe,     apostrophe      ]       };
+    key <AE12>  {       [       minus,          underscore,     underscore,    underscore      ]       };
+
+    key <AB08>  {       [       comma,          semicolon,      comma,         semicolon       ]       };
+    key <AB09>  {       [       period,         colon,          period,                colon           ]       };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "ptes" {
+    name[Group1] = "Portuguese/Spanish";
+
+    include "nokia_vndr/rx-44(base)"
+
+    key <AC01> {       [       a,              A,              exclam,         exclam          ]       };
+    key <AC02> {       [       s,              S,              quotedbl,       quotedbl        ]       };
+    key <AC03> {       [       d,              D,              at,             at              ]       };
+    key <AC04> {       [       f,              F,              numbersign,     numbersign      ]       };
+    key <AC05> {       [       g,              G,              asterisk,       asterisk        ]       };
+    key <AC06> {       [       h,              H,              backslash,      backslash       ]       };
+    key <AC07> {       [       j,              J,              slash,          slash           ]       };
+    key <AC08> {       [       k,              K,              parenleft,      parenleft       ]       };
+    key <AC09> {       [       l,              L,              parenright,     parenright      ]       };
+    key <AC11>  {       [       dead_acute,     dead_grave,     dead_diaeresis,        dead_diaeresis  ]       };
+
+    key <AB01> {       [       z,              Z,              EuroSign,       EuroSign        ]       };
+    key <AB02> {       [       x,              X,              percent,        percent         ]       };
+    key <AB03> {       [       c,              C,              ampersand,      ampersand       ]       };
+    key <AB04> {       [       v,              V,              exclamdown,     exclamdown      ]       };
+    key <AB05> {       [       b,              B,              apostrophe,     apostrophe      ]       };
+    key <AB06> {       [       n,              N,              plus,           plus            ]       };
+    key <AB07> {       [       m,              M,              equal,          equal           ]       };
+    key <AC10>  {       [       ccedilla,       Ccedilla,       questiondown,  questiondown    ]       };
+    key <AE11>  {       [       ntilde,         Ntilde,         question,      question        ]       };
+    key <AE12>  {       [       dead_tilde,     dead_circumflex, dead_circumflex, dead_circumflex ]    };
+
+    key <AB08>  {       [      comma,          semicolon,      minus,          minus           ]       };
+    key <AB09>  {       [      period,         colon,          underscore,     underscore      ]       };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "fr" {
+    name[Group1] = "French";
+
+    include "nokia_vndr/rx-44(base)"
+
+    key <AD01> {       [       a,              A,              1,              1               ]       };
+    key <AD02> {       [       z,              Z,              2,              2               ]       };
+
+    key <AC01> {       [       q,              Q,              at,             at              ]       };
+    key <AC02> {       [       s,              S,              percent,        percent         ]       };
+    key <AC03> {       [       d,              D,              ecircumflex,    Ecircumflex     ]       };
+    key <AC04> {       [       f,              F,              eacute,         Eacute          ]       };
+    key <AC05> {       [       g,              G,              egrave,         Egrave          ]       };
+    key <AC06> {       [       h,              H,              oe,             OE              ]       };
+    key <AC07> {       [       j,              J,              parenleft,      parenleft       ]       };
+    key <AC08> {       [       k,              K,              parenright,     parenright      ]       };
+    key <AC09> {       [       l,              L,              agrave,         Agrave          ]       };
+    key <AC11>  {       [       m,              M,              ugrave,         Ugrave          ]       };
+
+    key <AB01> {       [       w,              w,              EuroSign,       EuroSign        ]       };
+    key <AB02> {       [       x,              X,              numbersign,     numbersign      ]       };
+    key <AB03> {       [       c,              C,              ccedilla,       Ccedilla        ]       };
+    key <AB04> {       [       v,              V,              plus,           plus            ]       };
+    key <AB05> {       [       b,              B,              equal,          equal           ]       };
+    key <AB06> {       [       n,              N,              quotedbl,       quotedbl        ]       };
+    key <AB07> {       [       comma,          question,       backslash,      backslash       ]       };
+    key <AC10>  {       [       semicolon,      period,         minus,          minus           ]       };
+    key <AE11>  {       [       colon,          slash,          underscore,     underscore      ]       };
+    key <AE12>  {       [       apostrophe,     apostrophe,     mu,             mu              ]       };
+
+    key <AB08>  {       [       less,          greater,        less,           greater         ]       };
+    key <AB09>  {       [       exclam,                section,        asterisk,       asterisk        ]       };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "de" {
+    name[Group1] = "German";
+
+    include "nokia_vndr/rx-44(base)"
+
+    key <AD06> {       [       z,              Z,              6,              6               ]       };
+
+    key <AC01> {       [       a,              A,              exclam,         exclam          ]       };
+    key <AC02> {       [       s,              S,              quotedbl,       quotedbl        ]       };
+    key <AC03> {       [       d,              D,              at,             at              ]       };
+    key <AC04> {       [       f,              F,              numbersign,     numbersign      ]       };
+    key <AC05> {       [       g,              G,              percent,        percent         ]       };
+    key <AC06> {       [       h,              H,              backslash,      backslash       ]       };
+    key <AC07> {       [       j,              J,              slash,          slash           ]       };
+    key <AC08> {       [       k,              K,              parenleft,      parenleft       ]       };
+    key <AC09> {       [       l,              L,              parenright,     parenright      ]       };
+    key <AC11>  {      [       udiaeresis,     Udiaeresis,     question,       question        ]       };
+
+    key <AB01> {       [       y,              Y,              EuroSign,       EuroSign        ]       };
+    key <AB02> {       [       x,              X,              asciitilde,     asciitilde      ]       };
+    key <AB03> {       [       c,              C,              asterisk,       asterisk        ]       };
+    key <AB04> {       [       v,              V,              ampersand,      ampersand       ]       };
+    key <AB05> {       [       b,              B,              plus,           plus            ]       };
+    key <AB06> {       [       n,              N,              less,           less            ]       };
+    key <AB07> {       [       m,              M,              greater,        greater         ]       };
+    key <AC10>  {      [       odiaeresis,     Odiaeresis,     equal,          equal           ]       };
+    key <AE11>  {      [       adiaeresis,     Adiaeresis,     apostrophe,     apostrophe      ]       };
+    key <AE12>  {      [       minus,          underscore,     ssharp,         ssharp          ]       };
+
+    key <AB08>  {       [       comma,          semicolon,      comma,         semicolon       ]       };
+    key <AB09>  {       [       period,         colon,          period,                colon           ]       };
+};
+
+
+// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
+partial alphanumeric_keys
+xkb_symbols "ru" {
+    name[Group1] = "Russian";
+
+    include "nokia_vndr/rx-44(base)"
+
+    key <AD01> {       type="EIGHT_LEVEL", [   q,                      Q,                      1,                      1,                      Cyrillic_shorti,        Cyrillic_SHORTI,        1,                      1                       ]       };
+    key <AD02> {       type="EIGHT_LEVEL", [   w,                      W,                      2,                      2,                      Cyrillic_tse,   Cyrillic_TSE,   2,                      2                       ]       };
+    key <AD03> {       type="EIGHT_LEVEL", [   e,                      E,                      3,                      3,                      Cyrillic_u,     Cyrillic_U,     3,                      3                       ]       };
+    key <AD04> {       type="EIGHT_LEVEL", [   r,                      R,                      4,                      4,                      Cyrillic_ka,    Cyrillic_KA,    4,                      4                       ]       };
+    key <AD05> {       type="EIGHT_LEVEL", [   t,                      T,                      5,                      5,                      Cyrillic_ie,    Cyrillic_IE,    5,                      5                       ]       };
+    key <AD06> {       type="EIGHT_LEVEL", [   y,                      Y,                      6,                      6,                      Cyrillic_en,    Cyrillic_EN,    6,                      6                       ]       };
+    key <AD07> {       type="EIGHT_LEVEL", [   u,                      U,                      7,                      7,                      Cyrillic_ghe,   Cyrillic_GHE,   7,                      7                       ]       };
+    key <AD08> {       type="EIGHT_LEVEL", [   i,                      I,                      8,                      8,                      Cyrillic_sha,   Cyrillic_SHA,   8,                      8                       ]       };
+    key <AD09> {       type="EIGHT_LEVEL", [   o,                      O,                      9,                      9,                      Cyrillic_shcha, Cyrillic_SHCHA, 9,                      9                       ]       };
+    key <AD10> {       type="EIGHT_LEVEL", [   p,                      P,                      0,                      0,                      Cyrillic_ze,    Cyrillic_ZE,    0,                      0                       ]       };
+
+    key <AC01> {       type="EIGHT_LEVEL", [   a,                      A,                      exclam,                 exclam,                 Cyrillic_ef,    Cyrillic_EF,    exclam,                 exclam                  ]       };
+    key <AC02> {       type="EIGHT_LEVEL", [   s,                      S,                      quotedbl,               quotedbl,               Cyrillic_yeru,  Cyrillic_YERU,  quotedbl,               quotedbl                ]       };
+    key <AC03> {       type="EIGHT_LEVEL", [   d,                      D,                      at,                     at,                     Cyrillic_ve,    Cyrillic_VE,    at,                     at                      ]       };
+    key <AC04> {       type="EIGHT_LEVEL", [   f,                      F,                      numbersign,             numbersign,             Cyrillic_a,     Cyrillic_A,     numbersign,             numbersign              ]       };
+    key <AC05> {       type="EIGHT_LEVEL", [   g,                      G,                      backslash,              backslash,              Cyrillic_pe,    Cyrillic_PE,    backslash,              backslash               ]       };
+    key <AC06> {       type="EIGHT_LEVEL", [   h,                      H,                      slash,                  slash,                  Cyrillic_er,    Cyrillic_ER,    slash,                  slash                   ]       };
+    key <AC07> {       type="EIGHT_LEVEL", [   j,                      J,                      parenleft,              parenleft,              Cyrillic_o,     Cyrillic_O,     parenleft,              parenleft               ]       };
+    key <AC08> {       type="EIGHT_LEVEL", [   k,                      K,                      parenright,             parenright,             Cyrillic_el,    Cyrillic_EL,    parenright,             parenright              ]       };
+    key <AC09> {       type="EIGHT_LEVEL", [   l,                      L,                      colon,                  colon,                  Cyrillic_de,    Cyrillic_DE,    colon,                  colon                   ]       };
+    key <AC11> {       type="EIGHT_LEVEL", [   Cyrillic_zhe,           Cyrillic_ZHE,           semicolon,              semicolon,              Cyrillic_zhe,   Cyrillic_ZHE,   semicolon,              semicolon               ]       };
+    key <AC11> {       type="EIGHT_LEVEL", [   Cyrillic_zhe,           Cyrillic_ZHE,           semicolon,              semicolon,              Cyrillic_zhe,   Cyrillic_ZHE,   semicolon,              semicolon               ]       };
+
+    key <AB01> {       type="EIGHT_LEVEL", [   z,                      Z,                      underscore,             underscore,             Cyrillic_ya,    Cyrillic_YA,    minus,                  minus                   ]       };
+    key <AB02> {       type="EIGHT_LEVEL", [   x,                      X,                      percent,                percent,                Cyrillic_che,   Cyrillic_CHE,   percent,                percent                 ]       };
+    key <AB03> {       type="EIGHT_LEVEL", [   c,                      C,                      0x1002116,              0x1002116,              Cyrillic_es,    Cyrillic_ES,    0x1002116,              0x1002116               ]       };
+    key <AB04> {       type="EIGHT_LEVEL", [   v,                      V,                      equal,                  equal,                  Cyrillic_em,    Cyrillic_EM,    equal,                  equal                   ]       };
+    key <AB05> {       type="EIGHT_LEVEL", [   b,                      B,                      ampersand,              ampersand,              Cyrillic_i,     Cyrillic_I,     ampersand,              ampersand               ]       };
+    key <AB06> {       type="EIGHT_LEVEL", [   n,                      N,                      asterisk,               asterisk,               Cyrillic_te,    Cyrillic_TE,    asterisk,               asterisk                ]       };
+    key <AB07> {       type="EIGHT_LEVEL", [   m,                      M,                      apostrophe,             apostrophe,             Cyrillic_softsign,      Cyrillic_SOFTSIGN,      apostrophe,             apostrophe              ]       };
+    key <AC10> {       type="EIGHT_LEVEL", [   Cyrillic_be,            Cyrillic_BE,            minus,                  minus,                  Cyrillic_be,    Cyrillic_BE,    minus,                  minus                   ]       };
+    key <AC10> {       type="EIGHT_LEVEL", [   Cyrillic_be,            Cyrillic_BE,            minus,                  minus,                  Cyrillic_be,    Cyrillic_BE,    minus,                  minus                   ]       };
+    key <AE11> {       type="EIGHT_LEVEL", [   Cyrillic_yu,            Cyrillic_YU,            question,               question,               Cyrillic_yu,    Cyrillic_YU,    question,               question                ]       };
+    key <AE11> {       type="EIGHT_LEVEL", [   Cyrillic_yu,            Cyrillic_YU,            question,               question,               Cyrillic_yu,    Cyrillic_YU,    question,               question                ]       };
+    key <AE12> {       type="EIGHT_LEVEL", [   Cyrillic_ha,            Cyrillic_HA,            Cyrillic_hardsign,      Cyrillic_HARDSIGN,      Cyrillic_ha,    Cyrillic_HA,    Cyrillic_hardsign,      Cyrillic_HARDSIGN       ]       };
+    key <AE12> {       type="EIGHT_LEVEL", [   Cyrillic_ha,            Cyrillic_HA,            Cyrillic_hardsign,      Cyrillic_HARDSIGN,      Cyrillic_ha,    Cyrillic_HA,    Cyrillic_hardsign,      Cyrillic_HARDSIGN       ]       };
+
+    key <AB08> {       type="EIGHT_LEVEL", [   period,                 comma,                  period,                 comma,                  period,         comma,          period,                 comma                   ]       };
+    key <AB08> {       type="EIGHT_LEVEL", [   period,                 comma,                  period,                 comma,                  period,         comma,          period,                 comma                   ]       };
+    key <AB09> {       type="EIGHT_LEVEL", [   Cyrillic_e,             Cyrillic_E,             Cyrillic_io,            Cyrillic_IO,            Cyrillic_e,     Cyrillic_E,     Cyrillic_io,            Cyrillic_IO             ]       };
+    key <AB09> {       type="EIGHT_LEVEL", [   Cyrillic_e,             Cyrillic_E,             Cyrillic_io,            Cyrillic_IO,            Cyrillic_e,     Cyrillic_E,     Cyrillic_io,            Cyrillic_IO             ]       };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "it" {
+    name[Group1] = "Italian";
+
+    include "nokia_vndr/rx-44(base)"
+
+    key <AC01> {       [       a,              A,              exclam,         exclam          ]       };
+    key <AC02> {       [       s,              S,              quotedbl,       quotedbl        ]       };
+    key <AC03> {       [       d,              D,              at,             at              ]       };
+    key <AC04> {       [       f,              F,              numbersign,     numbersign      ]       };
+    key <AC05> {       [       g,              G,              asterisk,       asterisk        ]       };
+    key <AC06> {       [       h,              H,              backslash,      backslash       ]       };
+    key <AC07> {       [       j,              J,              slash,          slash           ]       };
+    key <AC08> {       [       k,              K,              parenleft,      parenleft       ]       };
+    key <AC09> {       [       l,              L,              parenright,     parenright      ]       };
+    key <AC11>  {       [       apostrophe,     question,       igrave,         Igrave         ]       };
+
+    key <AB01> {       [       z,              Z,              EuroSign,       EuroSign        ]       };
+    key <AB02> {       [       x,              X,              asciitilde,     asciitilde      ]       };
+    key <AB03> {       [       c,              C,              ampersand,      ampersand       ]       };
+    key <AB04> {       [       v,              V,              equal,          equal           ]       };
+    key <AB05> {       [       b,              B,              less,           less            ]       };
+    key <AB06> {       [       n,              N,              greater,        greater         ]       };
+    key <AB07> {       [       m,              M,              plus,           plus            ]       };
+    key <AC10>  {       [       eacute,         Eacute,         ograve,         Ograve          ]       };
+    key <AE11>  {       [       egrave,         Egrave,         agrave,         Agrave          ]       };
+    key <AE12>  {       [       minus,          underscore,     ugrave,         Ugrave          ]       };
+
+    key <AB08>  {       [       comma,          semicolon,      comma,         semicolon       ]       };
+    key <AB09>  {       [       period,         colon,          period,                colon           ]       };
+};
+
+partial default alphanumeric_keys
+xkb_symbols "base" {
+    key <AD01> {       [       q,                      Q,                      1,                      1                       ]       };
+    key <AD02> {       [       w,                      W,                      2,                      2                       ]       };
+    key <AD03> {       [       e,                      E,                      3,                      3                       ]       };
+    key <AD04> {       [       r,                      R,                      4,                      4                       ]       };
+    key <AD05> {       [       t,                      T,                      5,                      5                       ]       };
+    key <AD06> {       [       y,                      Y,                      6,                      6                       ]       };
+    key <AD07> {       [       u,                      U,                      7,                      7                       ]       };
+    key <AD08> {       [       i,                      I,                      8,                      8                       ]       };
+    key <AD09> {       [       o,                      O,                      9,                      9                       ]       };
+    key <AD10> {       [       p,                      P,                      0,                      0                       ]       };
+    key <BKSP> {       [       BackSpace,              BackSpace,              BackSpace,              BackSpace               ]       };
+
+    // broken UI spec.
+    key <RTRN> {       [       KP_Enter,               KP_Enter,               KP_Enter,               KP_Enter                ]       };
+
+    key <COMP> {       [       Multi_key,              Multi_key,              Multi_key,              Multi_key               ]       };
+    key <LFSH> {       [       Shift_L,                Shift_L,                Shift_L,                Shift_L                 ]       };
+    key <FN>   {       [       ISO_Level3_Shift,       ISO_Level3_Shift,       ISO_Level3_Shift,       ISO_Level3_Shift        ]       };
+    key <SPCE> {       [       space,                  space,                  space,                  space                   ]       };
+    key <RCTL> {       [       Control_R,              Control_R,              Control_R,              Control_R               ]       };
+    key <TAB>  {       [       Tab,                    Tab,                    Tab,                    Tab                     ]       };
+
+    modifier_map Shift { Shift_L };
+    modifier_map Mod5 { ISO_Level3_Shift };
+    modifier_map Control { Control_R };
+
+    key <KPEN> {       [       Return          ]       };
+    key <UP>   {       [       Up              ]       };
+    key <DOWN> {       [       Down            ]       };
+    key <LEFT> {       [       Left            ]       };
+    key <RGHT> {       [       Right           ]       };
+
+    key <ESC>  {       [       Escape          ]       };
+    key <FK01> {       [       F1              ]       };
+    key <FK02> {       [       F2              ]       };
+    key <FK03> {       [       F3              ]       };
+    key <FK04> {       [       F4              ]       };
+    key <FK05> {       [       F5              ]       };
+    key <FK06> {       [       F6              ]       };
+    key <FK07> {       [       F7              ]       };
+    key <FK08> {       [       F8              ]       };
+    key <FK09> {       [       F9              ]       };
+    key <FK10> {       [       F10             ]       };
+    key <FK11> {       [       F11             ]       };
+    key <FK12> {       [       F12             ]       };
+
+    // generated from the headset, must always be in the map.
+    key <I29>  {       [       XF86Phone       ]       };
+};
diff --git a/Xorg/xorg/data/xkbdata/files/nokia_n810/su-8w b/Xorg/xorg/data/xkbdata/files/nokia_n810/su-8w
new file mode 100644 (file)
index 0000000..8292db1
--- /dev/null
@@ -0,0 +1,482 @@
+partial alphanumeric_keys default
+xkb_symbols "no" {
+    name[Group1]= "Norwegian/Danish";
+
+    include "nokia_vndr/su-8w(base)"
+
+    key <AE01> { [ 1,            exclam,         dead_circumflex                       ] };
+    key <AE02> { [ 2,            quotedbl,       at                                    ] };
+    key <AE03> { [ 3,            numbersign,     EuroSign                              ] };
+    key <AE04> { [ 4,            currency,       dollar                                ] };
+    key <AE05> { [ 5,            percent,        sterling                              ] };
+    key <AE06> { [ 6,            ampersand                                             ] };
+    key <AE07> { [ 7,            slash,          braceleft                             ] };
+    key <AE08> { [ 8,            parenleft,      bracketleft                           ] };
+    key <AE09> { [ 9,            parenright,     bracketright                          ] };
+    key <AE10> { [ 0,            equal,          braceright                            ] };
+    key <AE11> { [ plus,         question                                              ] };
+    key <AE12> { [ dead_acute,   dead_grave,     backslash                             ] };
+
+    key <AD01> { [ q,            Q,              dead_circumflex                       ] };
+    key <AD02> { [ w,            W,              at                                    ] };
+    key <AD03> { [ e,            E,              EuroSign                              ] };
+    key <AD04> { [ r,            R,              dollar                                ] };
+    key <AD05> { [ t,            T,              sterling                              ] };
+    key <AD06> { [ y,            Y                                                     ] };
+    key <AD07> { [ u,            U,              braceleft                             ] };
+    key <AD08> { [ i,            I,              bracketleft                           ] };
+    key <AD09> { [ o,            O,              bracketright                          ] };
+    key <AD10> { [ p,            P,              braceright                            ] };
+    key <AD11> { [ aring,        Aring                                                 ] };
+    key <AD12> { [ ssharp,       ssharp,         backslash                             ] };
+
+    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> { [ oslash,       Ooblique                                              ] };
+    key <AC11> { [ ae,           AE                                                    ] };
+
+    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,        semicolon,      less                                  ] };
+    key <AB09> { [ period,       colon,          greater                               ] };
+    key <AB10> { [ minus,        underscore,     dead_diaeresis                        ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "no_nodeadkeys" {
+    name[Group1] = "Norwegian/Danish (no dead keys)";
+
+    include "nokia_vndr/su-8w(no)"
+
+    key <AE01> { [ 1,            exclam,         asciicircum                           ] };
+    key <AE12> { [ acute,        grave,          backslash                             ] };
+    key <AD01> { [ q,            Q,              asciicircum                           ] };
+};
+
+partial alphanumeric_keys default
+xkb_symbols "dk" {
+    include "nokia_vndr/su-8w(no)"
+};
+
+partial alphanumeric_keys default
+xkb_symbols "dk_nodeadkeys" {
+    include "nokia_vndr/su-8w(no_nodeadkeys)"
+};
+
+
+
+partial alphanumeric_keys default
+xkb_symbols "de" {
+    name[Group1]= "German";
+    include "nokia_vndr/su-8w(base)"
+
+    key <AE01> { [ 1,            exclam,         dead_circumflex                       ] };
+    key <AE02> { [ 2,            quotedbl,       at                                    ] };
+    key <AE03> { [ 3,            numbersign,     EuroSign                              ] };
+    key <AE04> { [ 4,            currency,       dollar                                ] };
+    key <AE05> { [ 5,            percent,        sterling                              ] };
+    key <AE06> { [ 6,            ampersand                                             ] };
+    key <AE07> { [ 7,            slash,          braceleft                             ] };
+    key <AE08> { [ 8,            parenleft,      bracketleft                           ] };
+    key <AE09> { [ 9,            parenright,     bracketright                          ] };
+    key <AE10> { [ 0,            equal,          braceright                            ] };
+    key <AE11> { [ plus,         question                                              ] };
+    key <AE12> { [ dead_acute,   dead_grave,     backslash                             ] };
+
+    key <AD01> { [ q,            Q,              dead_circumflex                       ] };
+    key <AD02> { [ w,            W,              at                                    ] };
+    key <AD03> { [ e,            E,              EuroSign                              ] };
+    key <AD04> { [ r,            R,              dollar                                ] };
+    key <AD05> { [ t,            T,              sterling                              ] };
+    key <AD06> { [ z,            Z                                                     ] };
+    key <AD07> { [ u,            U,              braceleft                             ] };
+    key <AD08> { [ i,            I,              bracketleft                           ] };
+    key <AD09> { [ o,            O,              bracketright                          ] };
+    key <AD10> { [ p,            P,              braceright                            ] };
+    key <AD11> { [ udiaeresis,   Udiaeresis                                            ] };
+    key <AD12> { [ ssharp,       ssharp,         backslash                             ] };
+
+    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> { [ odiaeresis,   Odiaeresis                                            ] };
+    key <AC11> { [ adiaeresis,   Adiaeresis                                            ] };
+
+    key <AB01> { [ y,            Y                                                     ] };
+    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,        semicolon,      less                                  ] };
+    key <AB09> { [ period,       colon,          greater                               ] };
+    // XXX Inexplicably, the diaeresis is dead on other layouts, but not
+    //     German.  Go figure.
+    key <AB10> { [ minus,        underscore,     diaeresis                             ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "de_nodeadkeys" {
+    name[Group1] = "German (no dead keys)";
+
+    include "nokia_vndr/su-8w(de)"
+
+    key <AE01> { [ 1,            exclam,         asciicircum                           ] };
+    key <AE12> { [ acute,        grave,          backslash                             ] };
+    key <AD01> { [ q,            Q,              asciicircum                           ] };
+};
+
+
+
+partial alphanumeric_keys default
+xkb_symbols "se" {
+    name[Group1]= "Finnish/Swedish";
+
+    include "nokia_vndr/su-8w(base)"
+
+    key <AE01> { [ 1,            exclam,         dead_circumflex                       ] };
+    key <AE02> { [ 2,            quotedbl,       at                                    ] };
+    key <AE03> { [ 3,            numbersign,     EuroSign                              ] };
+    key <AE04> { [ 4,            currency,       dollar                                ] };
+    key <AE05> { [ 5,            percent,        sterling                              ] };
+    key <AE06> { [ 6,            ampersand                                             ] };
+    key <AE07> { [ 7,            slash,          braceleft                             ] };
+    key <AE08> { [ 8,            parenleft,      bracketleft                           ] };
+    key <AE09> { [ 9,            parenright,     bracketright                          ] };
+    key <AE10> { [ 0,            equal,          braceright                            ] };
+    key <AE11> { [ plus,         question                                              ] };
+    key <AE12> { [ dead_acute,   dead_grave,     backslash                             ] };
+
+    key <AD01> { [ q,            Q,              dead_circumflex                       ] };
+    key <AD02> { [ w,            W,              at                                    ] };
+    key <AD03> { [ e,            E,              EuroSign                              ] };
+    key <AD04> { [ r,            R,              dollar                                ] };
+    key <AD05> { [ t,            T,              sterling                              ] };
+    key <AD06> { [ y,            Y                                                     ] };
+    key <AD07> { [ u,            U,              braceleft                             ] };
+    key <AD08> { [ i,            I,              bracketleft                           ] };
+    key <AD09> { [ o,            O,              bracketright                          ] };
+    key <AD10> { [ p,            P,              braceright                            ] };
+    key <AD11> { [ aring,        Aring                                                 ] };
+    key <AD12> { [ ssharp,       ssharp,         backslash                             ] };
+
+    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> { [ odiaeresis,   Odiaeresis                                            ] };
+    key <AC11> { [ adiaeresis,   Adiaeresis                                            ] };
+
+    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,        semicolon,      less                                  ] };
+    key <AB09> { [ period,       colon,          greater                               ] };
+    key <AB10> { [ minus,        underscore,     dead_diaeresis                        ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "se_nodeadkeys" {
+    name[Group1] = "Finnish/Swedish (no dead keys)";
+
+    include "nokia_vndr/su-8w(se)"
+
+    key <AE01> { [ 1,            exclam,         asciicircum                           ] };
+    key <AE12> { [ acute,        grave,          backslash                             ] };
+    key <AD01> { [ q,            Q,              asciicircum                           ] };
+    key <AB10> { [ minus,        underscore,     diaeresis                             ] };
+};
+
+partial alphanumeric_keys default
+xkb_symbols "fi" {
+    include "nokia_vndr/su-8w(se)"
+};
+
+xkb_symbols "fi_nodeadkeys" {
+    include "nokia_vndr/su-8w(se_nodeadkeys)"
+};
+
+
+
+// Russian layout on first two levels, US layout on third and fourth.
+partial alphanumeric_keys default
+xkb_symbols "ru" {
+    name[Group1]= "Russian";
+
+    include "nokia_vndr/su-8w(base)"
+
+    // XXX Would be nice if this actually generated a tilde.
+    key <TLDE> { [ Cyrillic_io,          Cyrillic_IO,          grave                        ] };
+    key <AE01> { [ 1,                    exclam,               exclam,        exclam        ] };
+    key <AE02> { [ 2,                    at,                   quotedbl,      at            ] };
+    key <AE03> { [ 3,                    numbersign,           numbersign,    numbersign    ] };
+    key <AE04> { [ 4,                    dollar,               currency,      dollar        ] };
+    key <AE05> { [ 5,                    percent,              percent,       percent       ] };
+    key <AE06> { [ 6,                    dead_circumflex,      ampersand,     asciicircum   ] };
+    key <AE07> { [ 7,                    ampersand,            slash,         ampersand     ] };
+    key <AE08> { [ 8,                    asterisk,             parenleft,     asterisk      ] };
+    key <AE09> { [ 9,                    parenleft,            parenright,    parenleft     ] };
+    key <AE10> { [ 0,                    parenright,           equal,         parenright    ] };
+    key <AE11> { [ minus,                underscore,           plus,          question      ] };
+    key <AE12> { [ equal,                plus,                 equal,         plus          ] };
+
+    key <AD01> { [ Cyrillic_shorti,      Cyrillic_SHORTI,      q,             Q             ] };
+    key <AD02> { [ Cyrillic_tse,         Cyrillic_TSE,         w,             W             ] };
+    key <AD03> { [ Cyrillic_u,           Cyrillic_U,           e,             E             ] };
+    key <AD04> { [ Cyrillic_ka,          Cyrillic_KA,          r,             R             ] };
+    key <AD05> { [ Cyrillic_ie,          Cyrillic_IE,          t,             T             ] };
+    key <AD06> { [ Cyrillic_en,          Cyrillic_EN,          y,             Y             ] };
+    key <AD07> { [ Cyrillic_ghe,         Cyrillic_GHE,         u,             U             ] };
+    key <AD08> { [ Cyrillic_sha,         Cyrillic_SHA,         i,             I             ] };
+    key <AD09> { [ Cyrillic_shcha,       Cyrillic_SHCHA,       o,             O             ] };
+    key <AD10> { [ Cyrillic_ze,          Cyrillic_ZE,          p,             P             ] };
+    key <AD11> { [ Cyrillic_ha,          Cyrillic_HA,          bracketleft,   braceleft     ] };
+    key <AD12> { [ Cyrillic_hardsign,    Cyrillic_HARDSIGN,    bracketright,  braceright    ] };
+
+    key <AC01> { [ Cyrillic_ef,          Cyrillic_EF,          a,             A             ] };
+    key <AC02> { [ Cyrillic_yeru,        Cyrillic_YERU,        s,             S             ] };
+    key <AC03> { [ Cyrillic_ve,          Cyrillic_VE,          d,             D             ] };
+    key <AC04> { [ Cyrillic_a,           Cyrillic_A,           f,             F             ] };
+    key <AC05> { [ Cyrillic_pe,          Cyrillic_PE,          g,             G             ] };
+    key <AC06> { [ Cyrillic_er,          Cyrillic_ER,          h,             H             ] };
+    key <AC07> { [ Cyrillic_o,           Cyrillic_O,           j,             J             ] };
+    key <AC08> { [ Cyrillic_el,          Cyrillic_EL,          k,             K             ] };
+    key <AC09> { [ Cyrillic_de,          Cyrillic_DE,          l,             L             ] };
+    key <AC10> { [ Cyrillic_zhe,         Cyrillic_ZHE,         semicolon,     colon         ] };
+    key <AC11> { [ Cyrillic_e,           Cyrillic_E,           apostrophe,    quotedbl      ] };
+
+    key <AB01> { [ Cyrillic_ya,          Cyrillic_YA,          z,             Z             ] };
+    key <AB02> { [ Cyrillic_che,         Cyrillic_CHE,         x,             X             ] };
+    key <AB03> { [ Cyrillic_es,          Cyrillic_ES,          c,             C             ] };
+    key <AB04> { [ Cyrillic_em,          Cyrillic_EM,          v,             V             ] };
+    key <AB05> { [ Cyrillic_i,           Cyrillic_I,           b,             B             ] };
+    key <AB06> { [ Cyrillic_te,          Cyrillic_TE,          n,             N             ] };
+    key <AB07> { [ Cyrillic_softsign,    Cyrillic_SOFTSIGN,    m,             M             ] };
+    key <AB08> { [ Cyrillic_be,          Cyrillic_BE,          comma,         less          ] };
+    key <AB09> { [ Cyrillic_yu,          Cyrillic_YU,          period,        greater       ] };
+    key <AB10> { [ slash,                question,             slash,         question      ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "ru_nodeadkeys" {
+    name[Group1] = "Russian - no dead keys";
+
+    include "nokia_vndr/su-8w(ru)"
+
+    key <AE06> { [ 6,                    asciicircum,          ampersand,     asciicircum   ] };
+};
+
+
+
+partial alphanumeric_keys default
+xkb_symbols "us" {
+    name[Group1]= "U.S. English - International";
+    
+    include "nokia_vndr/su-8w(base)"
+
+    // I can't believe it's not us(intl).
+    key <AE01> { [ 1,            exclam,         exclamdown                            ] };
+    key <AE02> { [ 2,            at,             twosuperior                           ] };
+    key <AE03> { [ 3,            numbersign                                            ] };
+    key <AE04> { [ 4,            dollar,         currency                              ] };
+    key <AE05> { [ 5,            percent,        EuroSign                              ] };
+    key <AE06> { [ 6,            asciicircum,    onequarter                            ] };
+    key <AE07> { [ 7,            ampersand,      onehalf                               ] };
+    key <AE08> { [ 8,            asterisk,       threequarters                         ] };
+    key <AE09> { [ 9,            parenleft,      leftsinglequotemark                   ] };
+    key <AE10> { [ 0,            parenright,     rightsinglequotemark                  ] };
+    key <AE11> { [ minus,        underscore,     yen                                   ] };
+    key <AE12> { [ equal,        plus,           multiply                              ] };
+
+    key <AD01> { [ q,            Q,              adiaeresis,           Adiaeresis      ] };
+    key <AD02> { [ w,            W,              aring,                Aring           ] };
+    key <AD03> { [ e,            E,              eacute,               Eacute          ] };
+    key <AD04> { [ r,            R,              registered                            ] };
+    key <AD05> { [ t,            T,              thorn,                THORN           ] };
+    key <AD06> { [ y,            Y,              udiaeresis,           Udiaeresis      ] };
+    key <AD07> { [ u,            U,              uacute,               Uacute          ] };
+    key <AD08> { [ i,            I,              iacute,               Iacute          ] };
+    key <AD09> { [ o,            O,              oacute,               Oacute          ] };
+    key <AD10> { [ p,            P,              odiaeresis,           Odiaeresis      ] };
+    key <AD11> { [ bracketleft,  braceleft,      guillemotleft                         ] };
+    key <AD12> { [ bracketright, braceright,     guillemotright                        ] };
+
+    key <AC01> { [ a,            A,              aacute,               Aacute          ] };
+    key <AC02> { [ s,            S,              ssharp,               section         ] };
+    key <AC03> { [ d,            D,              eth,                  ETH             ] };
+    key <AC04> { [ f,            F                                                     ] };
+    key <AC05> { [ g,            G                                                     ] };
+    key <AC06> { [ h,            H                                                     ] };
+    key <AC07> { [ j,            J                                                     ] };
+    key <AC08> { [ k,            K                                                     ] };
+    key <AC09> { [ l,            L,              oslash,               Ooblique        ] };
+    key <AC10> { [ semicolon,    colon,          paragraph,            degree          ] };
+    // XXX Not entirely sure if fourth level is quotedbl or diaeresis.
+    //     The former makes a lot more sense.
+    key <AC11> { [ dead_acute,   dead_diaeresis, apostrophe,           quotedbl        ] };
+
+    key <AB01> { [ z,            Z,              ae,                   AE              ] };
+    key <AB02> { [ x,            X                                                     ] };
+    key <AB03> { [ c,            C,              copyright                             ] };
+    key <AB04> { [ v,            V                                                     ] };
+    key <AB05> { [ b,            B                                                     ] };
+    key <AB06> { [ n,            N,              ntilde,               Ntilde          ] };
+    key <AB07> { [ m,            M,              mu                                    ] };
+    key <AB08> { [ comma,        less,           ccedilla,             Ccedilla        ] };
+    key <AB09> { [ period,       greater                                               ] };
+    key <AB10> { [ slash,        question,       questiondown                          ] };
+
+    include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "us_nodeadkeys" {
+    name[Group1] = "U.S. English - no dead keys";
+
+    include "nokia_vndr/su-8w(us_intl)"
+
+    // XXX Not entirely sure if second level is quotedbl or diaeresis.
+    //     The former makes a lot more sense.
+    key <AC10> { [ apostrophe,    quotedbl,       dead_acute,           dead_diaeresis ] };
+};
+
+
+
+partial default alphanumeric_keys
+xkb_symbols "base" {
+    // forked from from pc(pc105); madness.
+    key <ESC>  {       [ Escape                        ]       };
+
+    // the extra key on most European keyboards
+    key <LSGT> {       [      less,    greater,          bar,    brokenbar ]   };
+
+    // these keys are common to all layouts
+    key <BKSL> {       [ backslash,    bar             ]       };
+    key <SPCE> {       [        space                  ]       };
+
+    key <BKSP> { [ BackSpace ] };
+
+    key  <TAB> {       [ Tab,  ISO_Left_Tab    ]       };
+    key <RTRN> {       [ Return        ]       };
+    // we don't ever generate this key, but the VKB needs it always.
+    key <KPEN> {        [ KP_Enter      ]       };
+    // generated from the headset, must always be in the map.
+    key <I29>  {        [ XF86Phone     ]       };
+
+    key <CAPS> {       [ Caps_Lock     ]       };
+
+    key <NMLK> {       [ Num_Lock, Pointer_EnableKeys          ]       };
+
+    key <LFSH> {       [ Shift_L       ]       };
+    key <LCTL> {       [ Control_L     ]       };
+    key <LALT> {       [ Alt_L,        Meta_L          ]       };
+    key <LWIN> {       [ Super_L                       ]       };
+
+    key <RTSH> {       [ Shift_R       ]       };
+    key <RCTL> {       [ Control_R     ]       };
+    key <RALT> {       [ Alt_R,        Meta_R          ]       };
+    key <RWIN> {       [ Super_R                       ]       };
+
+    key <MENU> {       [ Menu                  ]       };
+
+    key <FK01> { [ F1 ] };
+    key <FK02> { [ F2 ] };
+    key <FK03> { [ F3 ] };
+    key <FK04> { [ F4 ] };
+    key <FK05> { [ F5 ] };
+    key <FK06> { [ F6 ] };
+    key <FK07> { [ F7 ] };
+    key <FK08> { [ F8 ] };
+    key <FK09> { [ F9 ] };
+    key <FK10> { [ F11 ] };
+    key <FK11> { [ F10 ] };
+    key <FK12> { [ F12 ] };
+
+    // begin modifier mappings
+    modifier_map Shift  { Shift_L, Shift_R };
+    modifier_map Lock   { Caps_Lock, ISO_Lock };
+    modifier_map Control{ Control_L, Control_R };
+    modifier_map Mod2   { Num_Lock };
+
+    //  Fake keys for virtual<->real modifiers mapping 
+    key <LVL3> {       [ ISO_Level3_Shift      ]       };
+    key <MDSW> {       [ Mode_switch           ]       };
+    modifier_map Mod5   { <LVL3>, <MDSW> };
+
+    key <ALT>  {       [ NoSymbol, Alt_L       ]       };
+    modifier_map Mod1   { <ALT>, <LALT> };
+
+    key <META> {       [ NoSymbol, Meta_L      ]       };
+    modifier_map Mod1   { <META> };
+
+    key <SUPR> {       [ NoSymbol, Super_L     ]       };
+    modifier_map Mod4   { <SUPR> };
+
+    key <HYPR> {       [ NoSymbol, Hyper_L     ]       };
+    modifier_map Mod4   { <HYPR> };
+
+    key  <INS> {        [  Insert               ]       };
+    key <DELE> {        [  Delete               ]       };
+    key  <END> {        [  End                  ]       };
+    key   <UP> {       [  Up                   ]       };
+    key <LEFT> {       [  Left                 ]       };
+    key <DOWN> {       [  Down                 ]       };
+    key <RGHT> {       [  Right                ]       };
+
+    // True for all layouts (except for ru).
+    key <TLDE> { [ grave, asterisk, asciitilde ] };
+
+    // SU-8W uses 140 for Home, not the normal keycode.  Very useful.
+    key <HOME> {        [       NoSymbol                ]       };
+    // Ditto LWIN/RWIN and Page Up/Page Down.
+    key <PGUP> {        [       none                ]       };
+    key <PGDN> {        [       NoSymbol                ]       };
+
+    // The LWIN & RWIN keys correspond to the 'select left' and
+    // 'select right' keys.
+    key <LWIN> {       [       Prior           ]       };
+    key <RWIN> {       [       Next            ]       };
+
+    key <I140> {       [       Home                    ]       };
+    key <I138> {       [       Menu                    ]       };
+    key <I163> {       [       XF86Mail                ]       };
+
+    // Power button.
+    key <I5E> {         [       Execute                 ]       };
+};