packages feed

xkbcommon 0.0.2 → 0.0.3

raw patch · 75 files changed

+24567/−9 lines, 75 files

Files

+ Module.hs view
@@ -0,0 +1,95 @@+{-# OPTIONS_GHC -Wall #-}+-----------------------------------------------------------------------------+-- |+-- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson+-- License     :  BSD-style (see the file LICENSE.gl)+-- Maintainer  :  Edward Kmett <ekmett@gmail.com>+-- Stability   :  experimental+-- Portability :  portable+--+----------------------------------------------------------------------------+module Module+  ( Module(..)+  , Export(..)+  , Body(..)+  , renderModule+  , saveModule+  ) where++import Data.List+import System.Directory+import System.FilePath+import Text.Printf+import Utils++data Module = Module+  { moduleName :: String+  , moduleExport :: [Export]+  , moduleBody :: [Body]+  } deriving (Eq, Show)++data Export+  = Section+    { sectionHeading :: String+    , sectionExport :: [String]+    }+  | Subsection+    { sectionHeading :: String+    , sectionExport :: [String]+    } deriving (Eq, Show)++data Body+  = Import [String]+  | Function String String String+  | Pattern String (Maybe String) String+  | Code String+  deriving (Eq, Show)++renderModule :: Module -> String+renderModule m =+  printf +    ("-- This file was automatically generated.\n" +++    "{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}\n" +++    "module %s%s where\n\n%s")+     (moduleName m) (renderExports $ moduleExport m) (intercalate "\n\n" . map renderBody $ moduleBody m)+++renderExports :: [Export] -> String+renderExports [] = ""+renderExports exports =+    printf " (\n%s)"+  . intercalate "\n"+  . zipWith renderExport (True : repeat False)+  $ filter nonEmpty exports+  where+    renderExport :: Bool -> Export -> String+    renderExport first (Section heading export) =+      printf "  -- * %s\n  %s %s"+        heading+        (if first then " " else ",")+        ((++"\n") . intercalate "\n  , " $ export)+    renderExport first (Subsection heading export) =+      printf "  -- ** %s\n  %s %s"+        heading+        (if first then " " else ",")+        ((++"\n") . intercalate "\n  , " $ export)+    nonEmpty :: Export -> Bool+    nonEmpty (Section _ []) = False+    nonEmpty (Subsection _ []) = False+    nonEmpty _ = True++renderBody :: Body -> String+renderBody body = case body of+  Import m -> intercalate "\n" $ map (printf "import %s") m+  Function name signature b -> printf "%s :: %s\n%s %s" name signature name b+  Pattern name (Just signature) b -> printf "pattern %s %s :: %s" name b signature+  Pattern name Nothing b -> printf "pattern %s %s" name b+  Code code -> code++saveModule :: FilePath -> Module -> IO ()+saveModule fp m = do+  createDirectoryIfMissing True folderPath+  writeFile filePath $ renderModule m+  where+    filePath = fp </> replace "." [pathSeparator] (moduleName m) <.> "hs"+    folderPath = intercalate [pathSeparator] . init $ splitOn [pathSeparator] filePath
Text/XkbCommon/InternalTypes.hsc view
@@ -1,4 +1,6 @@ {-# LANGUAGE CPP, EmptyDataDecls, GeneralizedNewtypeDeriving, TemplateHaskell #-}+-- | This module is intended to be used only when interoperating with other C libraries.+-- For other usecases, `Text.XkbCommon.Types` is probably preferable. module Text.XkbCommon.InternalTypes    ( Context, CContext, InternalContext, toContext, fromContext, withContext,      ContextFlags(..), defaultFlags,
Text/XkbCommon/ParseDefines.hs view
@@ -12,11 +12,11 @@ -- this function calls the c preprocessor to find out what the full path to a header file is. readHeader :: String -> IO (String, String) readHeader str = do-   cpp_out <- readProcess "cpp" [] ("#include<" ++ str ++ ">")-   -- parse output:-   let headerfile = read $ head $ map ((!! 2) . words) (filter (isInfixOf str) $ lines cpp_out)-   header <- readFile headerfile-   return (headerfile, header)+  cpp_out <- readProcess "cpp" [] ("#include<" ++ str ++ ">")+  -- parse output:+  let headerfile = read $ head $ map ((!! 2) . words) (filter (isInfixOf str) $ lines cpp_out)+  header <- readFile headerfile+  return (headerfile, header)  getKeysymDefs :: IO [(String,Integer)] getKeysymDefs = do@@ -35,7 +35,8 @@ genKeycodes :: IO [Dec] genKeycodes = do    (headerFilename, keysyms_header) <- readHeader "linux/input.h"-   (_, defs) <- macroPassReturningSymTab [] defaultBoolOptions [(newfile headerFilename, keysyms_header)]+   preprocessed <- cppIfdef headerFilename [] [] defaultBoolOptions keysyms_header+   (_, defs) <- macroPassReturningSymTab [] defaultBoolOptions preprocessed    let exclude_defs = []    let filtered_defs = filter (\ (name, val) -> isPrefixOf "KEY_" name && notElem name exclude_defs && isJust (maybeRead val :: Maybe Int)) defs    let parsed_defs = map (drop 4 *** read) filtered_defs
+ Utils.hs view
@@ -0,0 +1,30 @@+{-# OPTIONS_GHC -Wall #-}+-----------------------------------------------------------------------------+-- |+-- Copyright   :  (C) 2014 Edward Kmett+-- License     :  BSD-style (see the file LICENSE.gl)+-- Maintainer  :  Edward Kmett <ekmett@gmail.com>+-- Stability   :  experimental+-- Portability :  portable+--+-- Simple string munging utilities+----------------------------------------------------------------------------+module Utils (splitOn, strip, replace) where++import Data.Char (isSpace)+import Data.List (intercalate, isPrefixOf)++strip :: String -> String+strip = dropWhile isSpace . reverse . dropWhile isSpace . reverse++replace :: Eq a => [a] -> [a] -> [a] -> [a]+replace a b = intercalate b . splitOn a++splitOn :: Eq a => [a] -> [a] -> [[a]]+splitOn _ [] = []+splitOn xs ys0 = go [] ys0 where+  go acc ys+    | isPrefixOf xs ys = reverse acc : go [] (drop (length xs) ys)+    | otherwise = case ys of+      z:zs -> go (z:acc) zs+      [] -> [reverse acc]
+ data/compat/accessx view
@@ -0,0 +1,52 @@+default partial xkb_compatibility "basic" {+    interpret AccessX_Enable { +	action= LockControls(controls=AccessXKeys); +    };+};++partial xkb_compatibility "full" {++    interpret AccessX_Enable {+	action= LockControls(controls=AccessXKeys); +    };++    interpret AccessX_Feedback_Enable { +	action= LockControls(controls=AccessXFeedback); +    };++    interpret RepeatKeys_Enable {+	action= LockControls(controls=RepeatKeys);+    };++    interpret SlowKeys_Enable {+	action= LockControls(controls=SlowKeys);+    };++    interpret BounceKeys_Enable {+	action= LockControls(controls=BounceKeys);+    };++    interpret StickyKeys_Enable {+	action= LockControls(controls=StickyKeys);+    };++    interpret MouseKeys_Enable {+	action= LockControls(controls=MouseKeys);+    };++    interpret MouseKeys_Accel_Enable {+	action= LockControls(controls=MouseKeysAccel);+    };++    interpret Overlay1_Enable {+	action= LockControls(controls=Overlay1);+    };++    interpret Overlay2_Enable {+	action= LockControls(controls=Overlay2);+    };++    interpret AudibleBell_Enable {+	action= LockControls(controls=AudibleBell);+    };+};
+ data/compat/basic view
@@ -0,0 +1,48 @@+// Minimal set of symbol interpretations to provide +// reasonable default behavior (Num lock, shift and +// caps lock and mode switch) and set up the +// automatic updating of common keyboard LEDs.++default xkb_compatibility "basic"  {+    virtual_modifiers NumLock,AltGr;++    interpret.repeat= False;+    setMods.clearLocks= True;+    latchMods.clearLocks= True;+    latchMods.latchToLock= True;++    interpret Shift_Lock+AnyOf(Shift+Lock) {+	action= LockMods(modifiers=Shift);+    };++    interpret Any+Lock {+	action= LockMods(modifiers=Lock);+    };++    interpret Num_Lock+Any {+	virtualModifier= NumLock;+	action= LockMods(modifiers=NumLock);+    };++    interpret Mode_switch {+	useModMapMods= level1;+	virtualModifier= AltGr;+	action= SetGroup(group=+1);+    };++    interpret Any + Any {+	action= SetMods(modifiers=modMapMods);+    };++    group 2 = AltGr;+    group 3 = AltGr;+    group 4 = AltGr;++    include "ledcaps"+    include "lednum"+    indicator "Shift Lock" {+	!allowExplicit;+	whichModState= Locked;+	modifiers= Shift;+    };+};
+ data/compat/caps view
@@ -0,0 +1,12 @@+partial xkb_compatibility "caps_lock"  {+    // Keysym Caps_Lock locks Lock modifier.+    // With this, the keysym Caps_Lock can be used without binding the whole+    // key to a real modifier.+	// This is essential when you don't want to use caps lock on the first+	// level.+	// This should not have any compatibility issues when used together with+	// other layouts which don't utilize this capability.+    interpret Caps_Lock {+        action = LockMods(modifiers = Lock);+    };+};
+ data/compat/complete view
@@ -0,0 +1,10 @@+default xkb_compatibility "complete"  {+    include "basic"+    augment "iso9995"+    augment "mousekeys"+    augment "accessx(full)"+    augment "misc"+    augment "xfree86"+    augment "level5"+    augment "caps(caps_lock)"+};
+ data/compat/iso9995 view
@@ -0,0 +1,76 @@+// Fairly complete set of symbol interpretations +// to provide reasonable default behavior++default partial xkb_compatibility "default"  {+    virtual_modifiers LevelThree,AltGr;++    interpret.repeat= False;+    setMods.clearLocks= True;+    latchMods.clearLocks= True;+    latchMods.latchToLock= True;++    interpret ISO_Level2_Latch+Shift {+	useModMapMods= level1;+	action= LatchMods(modifiers=Shift);+    };++    interpret ISO_Level3_Shift+Any {+	useModMapMods= level1;+	virtualModifier= LevelThree;+	action= SetMods(modifiers=LevelThree);+    };++    interpret ISO_Level3_Shift {+	action= SetMods(modifiers=LevelThree);+    };++    interpret ISO_Level3_Latch+Any {+	useModMapMods= level1;+	virtualModifier= LevelThree;+	action= LatchMods(modifiers=LevelThree);+    };++    interpret ISO_Level3_Latch {+	action= LatchMods(modifiers=LevelThree);+    };++    interpret ISO_Level3_Lock+Any {+	useModMapMods= level1;+	virtualModifier= LevelThree;+	action= LockMods(modifiers=LevelThree);+    };++    interpret ISO_Level3_Lock {+	action= LockMods(modifiers=LevelThree);+    };++    interpret ISO_Group_Latch {+	useModMapMods= level1;+	virtualModifier= AltGr;+	action= LatchGroup(group=2);+    };++    interpret ISO_Next_Group {+	useModMapMods= level1;+	virtualModifier= AltGr;+	action= LockGroup(group=+1);+    };++    interpret ISO_Prev_Group {+	useModMapMods= level1;+	virtualModifier= AltGr;+	action= LockGroup(group=-1);+    };+    interpret ISO_First_Group {+	action= LockGroup(group=1);+    };++    interpret ISO_Last_Group {+	action= LockGroup(group=2);+    };++    indicator "Group 2" {+	!allowExplicit;+	groups= All-Group1;+    };+};
+ data/compat/ledcaps view
@@ -0,0 +1,23 @@+// Use Caps Lock LED to show either Caps Lock, Group, or Shift Lock state++default partial xkb_compatibility "caps_lock"   {+   indicator "Caps Lock" {+       !allowExplicit;+       whichModState= Locked;+       modifiers= Lock;+   };+};++partial xkb_compatibility "group_lock"   {+   indicator "Caps Lock" {+       modifiers= None;+       groups=All-group1;+   };+};++partial xkb_compatibility "shift_lock"   {+   indicator "Caps Lock" {+       whichModState= Locked;+       modifiers= Shift;+   };+};
+ data/compat/lednum view
@@ -0,0 +1,23 @@+// Use Num Lock LED to show either Num Lock, Group, or Shift Lock state++default partial xkb_compatibility "num_lock"   {+    indicator "Num Lock" {+       !allowExplicit;+       whichModState= Locked;+       modifiers= NumLock;+   };+};++partial xkb_compatibility "group_lock"   {+   indicator "Num Lock" {+       modifiers= None;+       groups=All-group1;+   };+};++partial xkb_compatibility "shift_lock"   {+   indicator "Num Lock" {+       whichModState= Locked;+       modifiers= Shift;+   };+};
+ data/compat/ledscroll view
@@ -0,0 +1,23 @@+// Use Scroll Lock LED to show either Scroll Lock, Group, or Shift Lock state++default partial xkb_compatibility "scroll_lock"   {+   indicator "Scroll Lock" {+       allowExplicit;+       whichModState= Locked;+       modifiers= ScrollLock;+   };+};++partial xkb_compatibility "group_lock"   {+   indicator "Scroll Lock" {+       modifiers= None;+       groups=All-group1;+   };+};++partial xkb_compatibility "shift_lock"   {+   indicator "Scroll Lock" {+       whichModState= Locked;+       modifiers= Shift;+   };+};
+ data/compat/level5 view
@@ -0,0 +1,51 @@+// Fairly complete set of symbol interpretations +// to provide reasonable default behavior++default partial xkb_compatibility "default"  {+    virtual_modifiers LevelFive;++    interpret.repeat= False;+    setMods.clearLocks= True;+    latchMods.clearLocks= True;+    latchMods.latchToLock= True;++    interpret ISO_Level5_Shift+Any {+	useModMapMods= level1;+	virtualModifier= LevelFive;+	action= SetMods(modifiers=LevelFive);+    };++    interpret ISO_Level5_Shift {+	action= SetMods(modifiers=LevelFive);+    };++    interpret ISO_Level5_Latch+Any {+	virtualModifier= LevelFive;+	action= LatchMods(modifiers=LevelFive);+    };++    interpret ISO_Level5_Latch {+	action= LatchMods(modifiers=LevelFive);+    };++    interpret ISO_Level5_Lock+Any {+	virtualModifier= LevelFive;+	action= LockMods(modifiers=LevelFive);+    };++    interpret ISO_Level5_Lock {+	action= LockMods(modifiers=LevelFive);+    };+};+partial xkb_compatibility "level5_lock"  {+	// This defines a Level5-Lock using the NumLock real modifier in order to+	// create arbitrary level-behaviour, which would not be possible with the+	// virtual modifier.+	// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK+	// See also: symbols/level5(lock)+    virtual_modifiers NumLock;+    +    interpret ISO_Level5_Lock {+        action = LockMods(modifiers = NumLock);+    };+};
+ data/compat/misc view
@@ -0,0 +1,122 @@+default partial xkb_compatibility "misc"  {++    virtual_modifiers	Alt,Meta,Super,Hyper,ScrollLock;++    // Interpretations for some other useful keys++    interpret Terminate_Server {+        action = Terminate();+    };++    setMods.clearLocks= True;++    // Sets the "Alt" virtual modifier++    interpret Alt_L+Any     {+        //useModMapMods= level1;+	virtualModifier= Alt;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Alt_L	{+	action = SetMods(modifiers=Alt);+    };++    interpret Alt_R+Any     {+        //useModMapMods= level1;+	virtualModifier= Alt;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Alt_R	{+	action = SetMods(modifiers=Alt);+    };++    // Sets the "Meta" virtual modifier++    interpret Meta_L+Any     {+//        useModMapMods= level1;+	virtualModifier= Meta;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Meta_L	{+	action = SetMods(modifiers=Meta);+    };++    interpret Meta_R+Any     {+        //useModMapMods= level1;+	virtualModifier= Meta;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Meta_R	{+	action = SetMods(modifiers=Meta);+    };++    // Sets the "Super" virtual modifier++    interpret Super_L+Any     {+//        useModMapMods= level1;+	virtualModifier= Super;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Super_L	{+	action = SetMods(modifiers=Super);+    };++    interpret Super_R+Any     {+        //useModMapMods= level1;+	virtualModifier= Super;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Super_R	{+	action = SetMods(modifiers=Super);+    };++    // Sets the "Hyper" virtual modifier++    interpret Hyper_L+Any     {+//        useModMapMods= level1;+	virtualModifier= Hyper;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Hyper_L	{+	action = SetMods(modifiers=Hyper);+    };++    interpret Hyper_R+Any     {+        //useModMapMods= level1;+	virtualModifier= Hyper;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Hyper_R	{+	action = SetMods(modifiers=Hyper);+    };++    // Sets the "ScrollLock" virtual modifier and+    // makes it actually lock when pressed.  Sets+    // up a map for the scroll lock indicator.+    interpret Scroll_Lock+Any	{+	virtualModifier= ScrollLock;+	action = LockMods(modifiers=modMapMods);+    };++    include "ledscroll"+	+    include "misc(assign_shift_left_action)"+};++partial xkb_compatibility "assign_shift_left_action"  {+    // Because of the irrevertable modifier mapping in symbols/pc <LFSH> is +    // getting bound to the Lock modifier when using +    // symbols/shift(both_capslock), creating unwanted behaviour. +    // This is a quirk, to circumvent the problem.+    interpret Shift_L {+        action = SetMods(modifiers = Shift);+    };+};
+ data/compat/mousekeys view
@@ -0,0 +1,202 @@+// Interpretations for arrow keys and a bunch of other +// common keysyms which make it possible to bind "mouse" +// keys using xmodmap and activate or deactivate them +// from the keyboard.++default partial xkb_compatibility "mousekeys" {++    // Keypad actions.+    //+    interpret.repeat= True;++    interpret KP_1 { +	action = MovePtr(x=-1,y= +1); +    };+    interpret KP_End { +	action = MovePtr(x=-1,y= +1); +    };++    interpret KP_2 { +	action = MovePtr(x=+0,y= +1); +    };+    interpret KP_Down { +	action = MovePtr(x=+0,y= +1); +    };++    interpret KP_3 { +	action = MovePtr(x=+1,y=+1); +    };+    interpret KP_Next { + 	action = MovePtr(x=+1,y=+1); +    };++    interpret KP_4 { +	action = MovePtr(x=-1,y=+0); +    };+    interpret KP_Left { +	action = MovePtr(x=-1,y=+0); +    };++    interpret KP_6 { +	action = MovePtr(x=+1,y=+0); +    };+    interpret KP_Right { + 	action = MovePtr(x=+1,y=+0); +    };++    interpret KP_7 { +	action = MovePtr(x=-1,y=-1); +    };+    interpret KP_Home { +	action = MovePtr(x=-1,y=-1); +    };++    interpret KP_8 { +	action = MovePtr(x=+0,y=-1); +    };+    interpret KP_Up { +	action = MovePtr(x=+0,y=-1); +    };++    interpret KP_9 { +	action = MovePtr(x=+1,y=-1); +    };+    interpret KP_Prior { +	action = MovePtr(x=+1,y=-1); +    };++    interpret KP_5 { +	action = PointerButton(button=default); +    };+    interpret KP_Begin { +	action = PointerButton(button=default); +    };++    interpret KP_F2 { +	action = SetPtrDflt(affect=defaultButton,button=1); +    };+    interpret KP_Divide { +	action = SetPtrDflt(affect=defaultButton,button=1); +    };++    interpret KP_F3 { +	action = SetPtrDflt(affect=defaultButton,button=2); +    };+    interpret KP_Multiply { +	action = SetPtrDflt(affect=defaultButton,button=2); +    };++    interpret KP_F4 { +	action = SetPtrDflt(affect=defaultButton,button=3); +    };+    interpret KP_Subtract { +	action = SetPtrDflt(affect=defaultButton,button=3); +    };++    interpret KP_Separator { +	action = PointerButton(button=default,count=2); +    };+    interpret KP_Add { +	action = PointerButton(button=default,count=2);+    };++    interpret KP_0 { +	action = LockPointerButton(button=default,affect=lock); +    };+    interpret KP_Insert { +	action = LockPointerButton(button=default,affect=lock); +    };++    interpret KP_Decimal { +	action = LockPointerButton(button=default,affect=unlock); +    };+    interpret KP_Delete { +	action = LockPointerButton(button=default,affect=unlock); +    };++    // Additional mappings for Solaris keypad compatibility+    interpret F25 { // aka KP_Divide+	action = SetPtrDflt(affect=defaultButton,button=1); +    };+    interpret F26 { // aka KP_Multiply+	action = SetPtrDflt(affect=defaultButton,button=2); +    };+    interpret F27 { // aka KP_Home+	action = MovePtr(x=-1,y=-1); +    };+    interpret F29 { // aka KP_Prior+	action = MovePtr(x=+1,y=-1); +    };+    interpret F31 { // aka KP_Begin+	action = PointerButton(button=default); +    };+    interpret F33 { // aka KP_End+	action = MovePtr(x=-1,y= +1); +    };+    interpret F35 { // aka KP_Next+ 	action = MovePtr(x=+1,y=+1); +    };++    interpret.repeat= False;+++    // New Keysym Actions.+    //+    interpret Pointer_Button_Dflt {+	action= PointerButton(button=default);+    };+    interpret Pointer_Button1 {+	action= PointerButton(button=1);+    };+    interpret Pointer_Button2 {+	action= PointerButton(button=2);+    };+    interpret Pointer_Button3 {+	action= PointerButton(button=3);+    };+    interpret Pointer_DblClick_Dflt {+	action= PointerButton(button=default,count=2);+    };+    interpret Pointer_DblClick1 {+	action= PointerButton(button=1,count=2);+    };+    interpret Pointer_DblClick2 {+	action= PointerButton(button=2,count=2);+    };+    interpret Pointer_DblClick3 {+	action= PointerButton(button=3,count=2);+    };+    interpret Pointer_Drag_Dflt	{+	action= LockPointerButton(button=default);+    };+    interpret Pointer_Drag1 {+	action= LockPointerButton(button=1);+    };+    interpret Pointer_Drag2 {+	action= LockPointerButton(button=2);+    };+    interpret Pointer_Drag3 {+	action= LockPointerButton(button=3);+    };++    interpret Pointer_EnableKeys {+	action= LockControls(controls=MouseKeys);+    };+    interpret Pointer_Accelerate {+	action= LockControls(controls=MouseKeysAccel);+    };+    interpret Pointer_DfltBtnNext {+	action= SetPtrDflt(affect=defaultButton,button= +1);+    };+    interpret Pointer_DfltBtnPrev {+	action= SetPtrDflt(affect=defaultButton,button= -1);+    };+++    // Allow an indicator for MouseKeys.+    indicator "Mouse Keys" {+//	!allowExplicit;+	indicatorDrivesKeyboard;+	controls= MouseKeys;+    };+};
+ data/compat/pc view
@@ -0,0 +1,17 @@+default partial xkb_compatibility "pc"  {++    // Sets the "Alt" virtual modifier++    virtual_modifiers	Alt;++    setMods.clearLocks= True;+    interpret Alt_L+Any     { +	virtualModifier= Alt;+	action = SetMods(modifiers=modMapMods);+    };++    interpret Alt_R+Any	{+	virtualModifier= Alt;+	action = SetMods(modifiers=modMapMods);+    };+};
+ data/compat/xfree86 view
@@ -0,0 +1,66 @@+//  XFree86 special keysyms++default partial xkb_compatibility "basic"  {++    interpret.repeat= True;++    interpret  XF86_Switch_VT_1 {+        action = SwitchScreen(Screen=1, !SameServer);+    };+    interpret  XF86_Switch_VT_2 {+        action = SwitchScreen(Screen=2, !SameServer);+    };+    interpret  XF86_Switch_VT_3 {+        action = SwitchScreen(Screen=3, !SameServer);+    };+    interpret  XF86_Switch_VT_4 {+        action = SwitchScreen(Screen=4, !SameServer);+    };+    interpret  XF86_Switch_VT_5 {+        action = SwitchScreen(Screen=5, !SameServer);+    };+    interpret  XF86_Switch_VT_6 {+        action = SwitchScreen(Screen=6, !SameServer);+    };+    interpret  XF86_Switch_VT_7 {+        action = SwitchScreen(Screen=7, !SameServer);+    };+    interpret  XF86_Switch_VT_8 {+        action = SwitchScreen(Screen=8, !SameServer);+    };+    interpret  XF86_Switch_VT_9 {+        action = SwitchScreen(Screen=9, !SameServer);+    };+    interpret  XF86_Switch_VT_10 {+        action = SwitchScreen(Screen=10, !SameServer);+    };+    interpret  XF86_Switch_VT_11 {+        action = SwitchScreen(Screen=11, !SameServer);+    };+    interpret  XF86_Switch_VT_12 {+        action = SwitchScreen(Screen=12, !SameServer);+    };++    interpret XF86LogGrabInfo {+        action = Private(type=0x86, data="PrGrbs");+    };+    interpret XF86LogWindowTree {+        action = Private(type=0x86, data="PrWins");+    };++    interpret XF86_Next_VMode {+        action = Private(type=0x86, data="+VMode");+    };+    interpret XF86_Prev_VMode {+        action = Private(type=0x86, data="-VMode");+    };+};++partial xkb_compatibility "grab_break" {+    interpret XF86_Ungrab {+        action = Private(type=0x86, data="Ungrab");+    };+    interpret XF86_ClearGrab {+        action = Private(type=0x86, data="ClsGrb");+    };+};
+ data/keycodes/aliases view
@@ -0,0 +1,99 @@++// keycode aliases for phonetic keyboard maps++default+xkb_keycodes "qwerty" {++   alias <LatQ> = <AD01>;+   alias <LatW> = <AD02>;+   alias <LatE> = <AD03>;+   alias <LatR> = <AD04>;+   alias <LatT> = <AD05>;+   alias <LatY> = <AD06>;+   alias <LatU> = <AD07>;+   alias <LatI> = <AD08>;+   alias <LatO> = <AD09>;+   alias <LatP> = <AD10>;++   alias <LatA> = <AC01>;+   alias <LatS> = <AC02>;+   alias <LatD> = <AC03>;+   alias <LatF> = <AC04>;+   alias <LatG> = <AC05>;+   alias <LatH> = <AC06>;+   alias <LatJ> = <AC07>;+   alias <LatK> = <AC08>;+   alias <LatL> = <AC09>;++   alias <LatZ> = <AB01>;+   alias <LatX> = <AB02>;+   alias <LatC> = <AB03>;+   alias <LatV> = <AB04>;+   alias <LatB> = <AB05>;+   alias <LatN> = <AB06>;+   alias <LatM> = <AB07>;+};++xkb_keycodes "azerty" {++   alias <LatA> = <AD01>;+   alias <LatZ> = <AD02>;+   alias <LatE> = <AD03>;+   alias <LatR> = <AD04>;+   alias <LatT> = <AD05>;+   alias <LatY> = <AD06>;+   alias <LatU> = <AD07>;+   alias <LatI> = <AD08>;+   alias <LatO> = <AD09>;+   alias <LatP> = <AD10>;++   alias <LatQ> = <AC01>;+   alias <LatS> = <AC02>;+   alias <LatD> = <AC03>;+   alias <LatF> = <AC04>;+   alias <LatG> = <AC05>;+   alias <LatH> = <AC06>;+   alias <LatJ> = <AC07>;+   alias <LatK> = <AC08>;+   alias <LatL> = <AC09>;+   alias <LatM> = <AC10>;++   alias <LatW> = <AB01>;+   alias <LatX> = <AB02>;+   alias <LatC> = <AB03>;+   alias <LatV> = <AB04>;+   alias <LatB> = <AB05>;+   alias <LatN> = <AB06>;+};++xkb_keycodes "qwertz" {++   alias <LatQ> = <AD01>;+   alias <LatW> = <AD02>;+   alias <LatE> = <AD03>;+   alias <LatR> = <AD04>;+   alias <LatT> = <AD05>;+   alias <LatZ> = <AD06>;+   alias <LatU> = <AD07>;+   alias <LatI> = <AD08>;+   alias <LatO> = <AD09>;+   alias <LatP> = <AD10>;++   alias <LatA> = <AC01>;+   alias <LatS> = <AC02>;+   alias <LatD> = <AC03>;+   alias <LatF> = <AC04>;+   alias <LatG> = <AC05>;+   alias <LatH> = <AC06>;+   alias <LatJ> = <AC07>;+   alias <LatK> = <AC08>;+   alias <LatL> = <AC09>;++   alias <LatY> = <AB01>;+   alias <LatX> = <AB02>;+   alias <LatC> = <AB03>;+   alias <LatV> = <AB04>;+   alias <LatB> = <AB05>;+   alias <LatN> = <AB06>;+   alias <LatM> = <AB07>;+};
+ data/keycodes/aliases-xkbcommon view
@@ -0,0 +1,99 @@++// keycode aliases for phonetic keyboard maps++default+xkb_keycodes "qwerty" {++   alias <LatQ> = <Q>;+   alias <LatW> = <W>;+   alias <LatE> = <E>;+   alias <LatR> = <R>;+   alias <LatT> = <T>;+   alias <LatY> = <Y>;+   alias <LatU> = <U>;+   alias <LatI> = <I>;+   alias <LatO> = <O>;+   alias <LatP> = <P>;++   alias <LatA> = <A>;+   alias <LatS> = <S>;+   alias <LatD> = <D>;+   alias <LatF> = <F>;+   alias <LatG> = <G>;+   alias <LatH> = <H>;+   alias <LatJ> = <J>;+   alias <LatK> = <K>;+   alias <LatL> = <L>;++   alias <LatZ> = <Z>;+   alias <LatX> = <X>;+   alias <LatC> = <C>;+   alias <LatV> = <V>;+   alias <LatB> = <B>;+   alias <LatN> = <N>;+   alias <LatM> = <M>;+};++xkb_keycodes "azerty" {++   alias <LatA> = <Q>;+   alias <LatZ> = <W>;+   alias <LatE> = <E>;+   alias <LatR> = <R>;+   alias <LatT> = <T>;+   alias <LatY> = <Y>;+   alias <LatU> = <U>;+   alias <LatI> = <I>;+   alias <LatO> = <O>;+   alias <LatP> = <P>;++   alias <LatQ> = <A>;+   alias <LatS> = <S>;+   alias <LatD> = <D>;+   alias <LatF> = <F>;+   alias <LatG> = <G>;+   alias <LatH> = <H>;+   alias <LatJ> = <J>;+   alias <LatK> = <K>;+   alias <LatL> = <L>;+   alias <LatM> = <SEMICOLON>;++   alias <LatW> = <Z>;+   alias <LatX> = <X>;+   alias <LatC> = <C>;+   alias <LatV> = <V>;+   alias <LatB> = <B>;+   alias <LatN> = <N>;+};++xkb_keycodes "qwertz" {++   alias <LatQ> = <Q>;+   alias <LatW> = <W>;+   alias <LatE> = <E>;+   alias <LatR> = <R>;+   alias <LatT> = <T>;+   alias <LatZ> = <Y>;+   alias <LatU> = <U>;+   alias <LatI> = <I>;+   alias <LatO> = <O>;+   alias <LatP> = <P>;++   alias <LatA> = <A>;+   alias <LatS> = <S>;+   alias <LatD> = <D>;+   alias <LatF> = <F>;+   alias <LatG> = <G>;+   alias <LatH> = <H>;+   alias <LatJ> = <J>;+   alias <LatK> = <K>;+   alias <LatL> = <L>;++   alias <LatY> = <Z>;+   alias <LatX> = <X>;+   alias <LatC> = <C>;+   alias <LatV> = <V>;+   alias <LatB> = <B>;+   alias <LatN> = <N>;+   alias <LatM> = <M>;+};
+ data/keycodes/empty view
@@ -0,0 +1,4 @@+default xkb_keycodes "empty" {+    minimum= 8;+    maximum= 255;+};
+ data/keycodes/evdev view
@@ -0,0 +1,314 @@+// translation from evdev scancodes to something resembling xfree86 keycodes.++default xkb_keycodes "evdev" {+	minimum = 8;+	maximum = 255;++        # Added for pc105 compatibility+        <LSGT> = 94;++	<TLDE> = 49;+	<AE01> = 10;+	<AE02> = 11;+	<AE03> = 12;+	<AE04> = 13;+	<AE05> = 14;+	<AE06> = 15;+	<AE07> = 16;+	<AE08> = 17;+	<AE09> = 18;+	<AE10> = 19;+	<AE11> = 20;+	<AE12> = 21;+	<BKSP> = 22;++	<TAB> = 23;+	<AD01> = 24;+	<AD02> = 25;+	<AD03> = 26;+	<AD04> = 27;+	<AD05> = 28;+	<AD06> = 29;+	<AD07> = 30;+	<AD08> = 31;+	<AD09> = 32;+	<AD10> = 33;+	<AD11> = 34;+	<AD12> = 35;+	<BKSL> = 51;+	alias <AC12> = <BKSL>;+	<RTRN> = 36;++	<CAPS> = 66;+	<AC01> = 38;+	<AC02> = 39;+	<AC03> = 40;+	<AC04> = 41;+	<AC05> = 42;+	<AC06> = 43;+	<AC07> = 44;+	<AC08> = 45;+	<AC09> = 46;+	<AC10> = 47;+	<AC11> = 48;++	<LFSH> = 50;+	<AB01> = 52;+	<AB02> = 53;+	<AB03> = 54;+	<AB04> = 55;+	<AB05> = 56;+	<AB06> = 57;+	<AB07> = 58;+	<AB08> = 59;+	<AB09> = 60;+	<AB10> = 61;+	<RTSH> = 62;++	<LALT> = 64;+	<LCTL> = 37;+	<SPCE> = 65;+	<RCTL> = 105;+	<RALT> = 108;+	// Microsoft keyboard extra keys+	<LWIN> = 133;+	<RWIN> = 134;+	<COMP> = 135;+	alias <MENU> = <COMP>;++	<ESC> = 9;+	<FK01> = 67;+	<FK02> = 68;+	<FK03> = 69;+	<FK04> = 70;+	<FK05> = 71;+	<FK06> = 72;+	<FK07> = 73;+	<FK08> = 74;+	<FK09> = 75;+	<FK10> = 76;+	<FK11> = 95;+	<FK12> = 96;++	<PRSC> = 107;+	// <SYRQ> = 107;+	<SCLK> = 78;+	<PAUS> = 127;+	// <BRK> = 419;++	<INS> = 118;+	<HOME> = 110;+	<PGUP> = 112;+	<DELE> = 119;+	<END> = 115;+	<PGDN> = 117;++	<UP> = 111;+	<LEFT> = 113;+	<DOWN> = 116;+	<RGHT> = 114;++	<NMLK> = 77;+	<KPDV> = 106;+	<KPMU> = 63;+	<KPSU> = 82;++	<KP7> = 79;+	<KP8> = 80;+	<KP9> = 81;+	<KPAD> = 86;++	<KP4> = 83;+	<KP5> = 84;+	<KP6> = 85;++	<KP1> = 87;+	<KP2> = 88;+	<KP3> = 89;+	<KPEN> = 104;++	<KP0> = 90;+	<KPDL> = 91;+	<KPEQ> = 125;++	<FK13> = 191;+	<FK14> = 192;+	<FK15> = 193;+	<FK16> = 194;+	<FK17> = 195;+	<FK18> = 196;+	<FK19> = 197;+	<FK20> = 198;+	<FK21> = 199;+	<FK22> = 200;+	<FK23> = 201;+	<FK24> = 202;++	// Keys that are generated on Japanese keyboards++	//<HZTG> =  93;	// Hankaku/Zenkakau toggle - not actually used+	alias <HZTG> = <TLDE>;+	<HKTG> = 101;	// Hiragana/Katakana toggle+	<AB11> = 97;	// backslash/underscore+	<HENK> = 100;	// Henkan+	<MUHE> = 102;	// Muhenkan+	<AE13> = 132;	// Yen+	<KATA> =  98;	// Katakana+	<HIRA> =  99;	// Hiragana+	<JPCM> = 103;	// KPJPComma+	//<RO>   =  97;	// Romaji++	// Keys that are generated on Korean keyboards++	<HNGL> = 130;	// Hangul Latin toggle+	<HJCV> = 131;	// Hangul to Hanja conversion++	// Solaris compatibility++	alias <LMTA> = <LWIN>;+	alias <RMTA> = <RWIN>;+	<MUTE> = 121;+	<VOL-> = 122;+	<VOL+> = 123;+	<POWR> = 124;+	<STOP> = 136;+	<AGAI> = 137;+	<PROP> = 138;+	<UNDO> = 139;+	<FRNT> = 140;+	<COPY> = 141;+	<OPEN> = 142;+	<PAST> = 143;+	<FIND> = 144;+	<CUT>  = 145;+	<HELP> = 146;++	// Extended keys that may be generated on "Internet" keyboards.+	// evdev has standardize names for these.++	<LNFD> = 109;	// #define KEY_LINEFEED            101+	<I120> = 120;	// #define KEY_MACRO               112+	<I126> = 126;	// #define KEY_KPPLUSMINUS         118+	<I128> = 128;   // #define KEY_SCALE               120+	<I129> = 129;	// #define KEY_KPCOMMA             121+	<I147> = 147;	// #define KEY_MENU                139+	<I148> = 148;	// #define KEY_CALC                140+	<I149> = 149;	// #define KEY_SETUP               141+	<I150> = 150;	// #define KEY_SLEEP               142+	<I151> = 151;	// #define KEY_WAKEUP              143+	<I152> = 152;	// #define KEY_FILE                144+	<I153> = 153;	// #define KEY_SENDFILE            145+	<I154> = 154;	// #define KEY_DELETEFILE          146+	<I155> = 155;	// #define KEY_XFER                147+	<I156> = 156;	// #define KEY_PROG1               148+	<I157> = 157;	// #define KEY_PROG2               149+	<I158> = 158;	// #define KEY_WWW                 150+	<I159> = 159;	// #define KEY_MSDOS               151+	<I160> = 160;	// #define KEY_COFFEE              152+	<I161> = 161;	// #define KEY_DIRECTION           153+	<I162> = 162;	// #define KEY_CYCLEWINDOWS        154+	<I163> = 163;	// #define KEY_MAIL                155+	<I164> = 164;	// #define KEY_BOOKMARKS           156+	<I165> = 165;	// #define KEY_COMPUTER            157+	<I166> = 166;	// #define KEY_BACK                158+	<I167> = 167;	// #define KEY_FORWARD             159+	<I168> = 168;	// #define KEY_CLOSECD             160+	<I169> = 169;	// #define KEY_EJECTCD             161+	<I170> = 170;	// #define KEY_EJECTCLOSECD        162+	<I171> = 171;	// #define KEY_NEXTSONG            163+	<I172> = 172;	// #define KEY_PLAYPAUSE           164+	<I173> = 173;	// #define KEY_PREVIOUSSONG        165+	<I174> = 174;	// #define KEY_STOPCD              166+	<I175> = 175;	// #define KEY_RECORD              167+	<I176> = 176;	// #define KEY_REWIND              168+	<I177> = 177;	// #define KEY_PHONE               169+	<I178> = 178;	// #define KEY_ISO                 170+	<I179> = 179;	// #define KEY_CONFIG              171+	<I180> = 180;	// #define KEY_HOMEPAGE            172+	<I181> = 181;	// #define KEY_REFRESH             173+	<I182> = 182;	// #define KEY_EXIT                174+	<I183> = 183;	// #define KEY_MOVE                175+	<I184> = 184;	// #define KEY_EDIT                176+	<I185> = 185;	// #define KEY_SCROLLUP            177+	<I186> = 186;	// #define KEY_SCROLLDOWN          178+	<I187> = 187;	// #define KEY_KPLEFTPAREN         179+	<I188> = 188;	// #define KEY_KPRIGHTPAREN        180+	<I189> = 189;	// #define KEY_NEW                 181+	<I190> = 190;	// #define KEY_REDO                182+	<I208> = 208;	// #define KEY_PLAYCD              200+	<I209> = 209;	// #define KEY_PAUSECD             201+	<I210> = 210;	// #define KEY_PROG3               202+	<I211> = 211;	// #define KEY_PROG4               203 conflicts with AB11+	<I212> = 212;   // #define KEY_DASHBOARD           204+	<I213> = 213;	// #define KEY_SUSPEND             205+	<I214> = 214;	// #define KEY_CLOSE               206+	<I215> = 215;	// #define KEY_PLAY                207+	<I216> = 216;	// #define KEY_FASTFORWARD         208+	<I217> = 217;	// #define KEY_BASSBOOST           209+	<I218> = 218;	// #define KEY_PRINT               210+	<I219> = 219;	// #define KEY_HP                  211+	<I220> = 220;	// #define KEY_CAMERA              212+	<I221> = 221;	// #define KEY_SOUND               213+	<I222> = 222;	// #define KEY_QUESTION            214+	<I223> = 223;	// #define KEY_EMAIL               215+	<I224> = 224;	// #define KEY_CHAT                216+	<I225> = 225;	// #define KEY_SEARCH              217+	<I226> = 226;	// #define KEY_CONNECT             218+	<I227> = 227;	// #define KEY_FINANCE             219+	<I228> = 228;	// #define KEY_SPORT               220+	<I229> = 229;	// #define KEY_SHOP                221+	<I230> = 230;	// #define KEY_ALTERASE            222+	<I231> = 231;	// #define KEY_CANCEL              223+	<I232> = 232;	// #define KEY_BRIGHTNESSDOWN      224+	<I233> = 233;	// #define KEY_BRIGHTNESSUP        225+	<I234> = 234;	// #define KEY_MEDIA               226+	<I235> = 235;	// #define KEY_SWITCHVIDEOMODE     227+	<I236> = 236;	// #define KEY_KBDILLUMTOGGLE      228+	<I237> = 237;	// #define KEY_KBDILLUMDOWN        229+	<I238> = 238;	// #define KEY_KBDILLUMUP          230+	<I239> = 239;	// #define KEY_SEND                231+	<I240> = 240;	// #define KEY_REPLY               232+	<I241> = 241;	// #define KEY_FORWARDMAIL         233+	<I242> = 242;	// #define KEY_SAVE                234+	<I243> = 243;	// #define KEY_DOCUMENTS           235+	<I244> = 244;	// #define KEY_BATTERY             236+	<I245> = 245;	// #define KEY_BLUETOOTH           237+	<I246> = 246;	// #define KEY_WLAN                238+	<I247> = 247;	// #define KEY_UWB                 239+	<I248> = 248;	// #define KEY_UNKNOWN             240+	<I249> = 249;	// #define KEY_VIDEO_NEXT          241+	<I250> = 250;	// #define KEY_VIDEO_PREV          242+	<I251> = 251;	// #define KEY_BRIGHTNESS_CYCLE    243+	<I252> = 252;	// #define KEY_BRIGHTNESS_ZERO     244+	<I253> = 253;	// #define KEY_DISPLAY_OFF         245++	// Fake keycodes for virtual keys+	<LVL3> =   92;+	<MDSW> =   203;+	<ALT>  =   204;+	<META> =   205;+	<SUPR> =   206;+	<HYPR> =   207;++	indicator 1  = "Caps Lock";+	indicator 2  = "Num Lock";+	indicator 3  = "Scroll Lock";+	indicator 4  = "Compose";+	indicator 5  = "Kana";+	indicator 6  = "Sleep";+	indicator 7  = "Suspend";+	indicator 8  = "Mute";+	indicator 9  = "Misc";+	indicator 10 = "Mail";+	indicator 11 = "Charging";++	alias <ALGR> = <RALT>;++	// For Brazilian ABNT2+	alias <KPPT> = <I129>;+};++// PC98+xkb_keycodes "pc98" {+    include "evdev(evdev)"+};
+ data/keycodes/evdev-xkbcommon view
@@ -0,0 +1,505 @@+default xkb_keycodes "evdev" {+    <ZERO>              =  0;+    <ESC>               =  1;+    <1>                 =  2;+    <2>                 =  3;+    <3>                 =  4;+    <4>                 =  5;+    <5>                 =  6;+    <6>                 =  7;+    <7>                 =  8;+    <8>                 =  9;+    <9>                 =  10;+    <0>                 =  11;+    <MINUS>             =  12;+    <EQUAL>             =  13;+    <BACKSPACE>         =  14;+    <TAB>               =  15;+    <Q>                 =  16;+    <W>                 =  17;+    <E>                 =  18;+    <R>                 =  19;+    <T>                 =  20;+    <Y>                 =  21;+    <U>                 =  22;+    <I>                 =  23;+    <O>                 =  24;+    <P>                 =  25;+    <LEFTBRACE>         =  26;+    <RIGHTBRACE>        =  27;+    <ENTER>             =  28;+    <LEFTCTRL>          =  29;+    <A>                 =  30;+    <S>                 =  31;+    <D>                 =  32;+    <F>                 =  33;+    <G>                 =  34;+    <H>                 =  35;+    <J>                 =  36;+    <K>                 =  37;+    <L>                 =  38;+    <SEMICOLON>         =  39;+    <APOSTROPHE>        =  40;+    <GRAVE>             =  41;+    <LEFTSHIFT>         =  42;+    <BACKSLASH>         =  43;+    <Z>                 =  44;+    <X>                 =  45;+    <C>                 =  46;+    <V>                 =  47;+    <B>                 =  48;+    <N>                 =  49;+    <M>                 =  50;+    <COMMA>             =  51;+    <DOT>               =  52;+    <SLASH>             =  53;+    <RIGHTSHIFT>        =  54;+    <KPASTERISK>        =  55;+    <LEFTALT>           =  56;+    <SPACE>             =  57;+    <CAPSLOCK>          =  58;+    <F1>                =  59;+    <F2>                =  60;+    <F3>                =  61;+    <F4>                =  62;+    <F5>                =  63;+    <F6>                =  64;+    <F7>                =  65;+    <F8>                =  66;+    <F9>                =  67;+    <F10>               =  68;+    <NUMLOCK>           =  69;+    <SCROLLLOCK>        =  70;+    <KP7>               =  71;+    <KP8>               =  72;+    <KP9>               =  73;+    <KPMINUS>           =  74;+    <KP4>               =  75;+    <KP5>               =  76;+    <KP6>               =  77;+    <KPPLUS>            =  78;+    <KP1>               =  79;+    <KP2>               =  80;+    <KP3>               =  81;+    <KP0>               =  82;+    <KPDOT>             =  83;+    <ZENKAKUHANKAKU>    =  85;+    <102ND>             =  86;+    <F11>               =  87;+    <F12>               =  88;+    <RO>                =  89;+    <KATAKANA>          =  90;+    <HIRAGANA>          =  91;+    <HENKAN>            =  92;+    <KATAKANAHIRAGANA>  =  93;+    <MUHENKAN>          =  94;+    <KPJPCOMMA>         =  95;+    <KPENTER>           =  96;+    <RIGHTCTRL>         =  97;+    <KPSLASH>           =  98;+    <SYSRQ>             =  99;+    <RIGHTALT>          =  100;+    <LINEFEED>          =  101;+    <HOME>              =  102;+    <UP>                =  103;+    <PAGEUP>            =  104;+    <LEFT>              =  105;+    <RIGHT>             =  106;+    <END>               =  107;+    <DOWN>              =  108;+    <PAGEDOWN>          =  109;+    <INSERT>            =  110;+    <DELETE>            =  111;+    <MACRO>             =  112;+    <MUTE>              =  113;+    <VOLUMEDOWN>        =  114;+    <VOLUMEUP>          =  115;+    <POWER>             =  116;+    <KPEQUAL>           =  117;+    <KPPLUSMINUS>       =  118;+    <PAUSE>             =  119;+    <SCALE>             =  120;+    <KPCOMMA>           =  121;+    <HANGEUL>           =  122;+    <HANJA>             =  123;+    <YEN>               =  124;+    <LEFTMETA>          =  125;+    <RIGHTMETA>         =  126;+    <COMPOSE>           =  127;+    <STOP>              =  128;+    <AGAIN>             =  129;+    <PROPS>             =  130;+    <UNDO>              =  131;+    <FRONT>             =  132;+    <COPY>              =  133;+    <OPEN>              =  134;+    <PASTE>             =  135;+    <FIND>              =  136;+    <CUT>               =  137;+    <HELP>              =  138;+    <MENU>              =  139;+    <CALC>              =  140;+    <SETUP>             =  141;+    <SLEEP>             =  142;+    <WAKEUP>            =  143;+    <FILE>              =  144;+    <SENDFILE>          =  145;+    <DELETEFILE>        =  146;+    <XFER>              =  147;+    <PROG1>             =  148;+    <PROG2>             =  149;+    <WWW>               =  150;+    <MSDOS>             =  151;+    <COFFEE>            =  152;+    <DIRECTION>         =  153;+    <CYCLEWINDOWS>      =  154;+    <MAIL>              =  155;+    <BOOKMARKS>         =  156;+    <COMPUTER>          =  157;+    <BACK>              =  158;+    <FORWARD>           =  159;+    <CLOSECD>           =  160;+    <EJECTCD>           =  161;+    <EJECTCLOSECD>      =  162;+    <NEXTSONG>          =  163;+    <PLAYPAUSE>         =  164;+    <PREVIOUSSONG>      =  165;+    <STOPCD>            =  166;+    <RECORD>            =  167;+    <REWIND>            =  168;+    <PHONE>             =  169;+    <ISO>               =  170;+    <CONFIG>            =  171;+    <HOMEPAGE>          =  172;+    <REFRESH>           =  173;+    <EXIT>              =  174;+    <MOVE>              =  175;+    <EDIT>              =  176;+    <SCROLLUP>          =  177;+    <SCROLLDOWN>        =  178;+    <KPLEFTPAREN>       =  179;+    <KPRIGHTPAREN>      =  180;+    <NEW>               =  181;+    <REDO>              =  182;+    <F13>               =  183;+    <F14>               =  184;+    <F15>               =  185;+    <F16>               =  186;+    <F17>               =  187;+    <F18>               =  188;+    <F19>               =  189;+    <F20>               =  190;+    <F21>               =  191;+    <F22>               =  192;+    <F23>               =  193;+    <F24>               =  194;+    <PLAYCD>            =  200;+    <PAUSECD>           =  201;+    <PROG3>             =  202;+    <PROG4>             =  203;+    <DASHBOARD>         =  204;+    <SUSPEND>           =  205;+    <CLOSE>             =  206;+    <PLAY>              =  207;+    <FASTFORWARD>       =  208;+    <BASSBOOST>         =  209;+    <PRINT>             =  210;+    <HP>                =  211;+    <CAMERA>            =  212;+    <SOUND>             =  213;+    <QUESTION>          =  214;+    <EMAIL>             =  215;+    <CHAT>              =  216;+    <SEARCH>            =  217;+    <CONNECT>           =  218;+    <FINANCE>           =  219;+    <SPORT>             =  220;+    <SHOP>              =  221;+    <ALTERASE>          =  222;+    <CANCEL>            =  223;+    <BRIGHTNESSDOWN>    =  224;+    <BRIGHTNESSUP>      =  225;+    <MEDIA>             =  226;+    <SWITCHVIDEOMODE>   =  227;+    <KBDILLUMTOGGLE>    =  228;+    <KBDILLUMDOWN>      =  229;+    <KBDILLUMUP>        =  230;+    <SEND>              =  231;+    <REPLY>             =  232;+    <FORWARDMAIL>       =  233;+    <SAVE>              =  234;+    <DOCUMENTS>         =  235;+    <BATTERY>           =  236;+    <BLUETOOTH>         =  237;+    <WLAN>              =  238;+    <UWB>               =  239;+    <UNKNOWN>           =  240;+    <VIDEO_NEXT>        =  241;+    <VIDEO_PREV>        =  242;+    <BRIGHTNESS_CYCLE>  =  243;+    <BRIGHTNESS_ZERO>   =  244;+    <DISPLAY_OFF>       =  245;+    <WIMAX>             =  246;+    <RFKILL>            =  247;+    <MICMUTE>           =  248;++    // Fake keycodes for virtual keys+    <LVL3>              =  84;+    <MDSW>              =  195;+    <ALT>               =  196;+    <META>              =  197;+    <SUPR>              =  198;+    <HYPR>              =  199;++    indicator 0x01 = "Num Lock";    // NUML+    indicator 0x02 = "Caps Lock";   // CAPSL+    indicator 0x03 = "Scroll Lock"; // SCROLLL+    indicator 0x04 = "Compose";     // COMPOSE+    indicator 0x05 = "Kana";        // KANA+    indicator 0x06 = "Sleep";       // SLEEP+    indicator 0x07 = "Suspend";     // SUSPEND+    indicator 0x08 = "Mute";        // MUTE+    indicator 0x09 = "Misc";        // MISC+    indicator 0x0a = "Mail";        // MAIL+    indicator 0x0b = "Charging";    // CHARGING++    alias <TLDE> = <GRAVE>;+    alias <AE01> = <1>;+    alias <AE02> = <2>;+    alias <AE03> = <3>;+    alias <AE04> = <4>;+    alias <AE05> = <5>;+    alias <AE06> = <6>;+    alias <AE07> = <7>;+    alias <AE08> = <8>;+    alias <AE09> = <9>;+    alias <AE10> = <0>;+    alias <AE11> = <MINUS>;+    alias <AE12> = <EQUAL>;+    alias <BKSP> = <BACKSPACE>;++    alias <AD01> = <Q>;+    alias <AD02> = <W>;+    alias <AD03> = <E>;+    alias <AD04> = <R>;+    alias <AD05> = <T>;+    alias <AD06> = <Y>;+    alias <AD07> = <U>;+    alias <AD08> = <I>;+    alias <AD09> = <O>;+    alias <AD10> = <P>;+    alias <AD11> = <LEFTBRACE>;+    alias <AD12> = <RIGHTBRACE>;+    alias <BKSL> = <BACKSLASH>;+    alias <AC12> = <BACKSLASH>;+    alias <RTRN> = <ENTER>;++    alias <CAPS> = <CAPSLOCK>;+    alias <AC01> = <A>;+    alias <AC02> = <S>;+    alias <AC03> = <D>;+    alias <AC04> = <F>;+    alias <AC05> = <G>;+    alias <AC06> = <H>;+    alias <AC07> = <J>;+    alias <AC08> = <K>;+    alias <AC09> = <L>;+    alias <AC10> = <SEMICOLON>;+    alias <AC11> = <APOSTROPHE>;++    alias <LFSH> = <LEFTSHIFT>;+    alias <AB01> = <Z>;+    alias <AB02> = <X>;+    alias <AB03> = <C>;+    alias <AB04> = <V>;+    alias <AB05> = <B>;+    alias <AB06> = <N>;+    alias <AB07> = <M>;+    alias <AB08> = <COMMA>;+    alias <AB09> = <DOT>;+    alias <AB10> = <SLASH>;+    alias <RTSH> = <RIGHTSHIFT>;++    alias <LALT> = <LEFTALT>;+    alias <LCTL> = <LEFTCTRL>;+    alias <SPCE> = <SPACE>;+    alias <RCTL> = <RIGHTCTRL>;+    alias <RALT> = <RIGHTALT>;+    alias <LWIN> = <LEFTMETA>;+    alias <RWIN> = <RIGHTMETA>;+    alias <COMP> = <COMPOSE>;+    alias <MENU> = <COMPOSE>;++    alias <FK01> = <F1>;+    alias <FK02> = <F2>;+    alias <FK03> = <F3>;+    alias <FK04> = <F4>;+    alias <FK05> = <F5>;+    alias <FK06> = <F6>;+    alias <FK07> = <F7>;+    alias <FK08> = <F8>;+    alias <FK09> = <F9>;+    alias <FK10> = <F10>;+    alias <FK11> = <F11>;+    alias <FK12> = <F12>;++    alias <PRSC> = <SYSRQ>;+    alias <SCLK> = <SCROLLLOCK>;+    alias <PAUS> = <PAUSE>;++    alias <INS> = <INSERT>;+    alias <PGUP> = <PAGEUP>;+    alias <DELE> = <DELETE>;+    alias <PGDN> = <PAGEDOWN>;++    alias <RGHT> = <RIGHT>;++    alias <NMLK> = <NUMLOCK>;+    alias <KPDV> = <KPSLASH>;+    alias <KPMU> = <KPASTERISK>;+    alias <KPSU> = <KPMINUS>;++    alias <KPAD> = <KPPLUS>;++    alias <KPEN> = <KPENTER>;++    alias <KPDL> = <KPDOT>;+    alias <KPEQ> = <KPEQUAL>;++    alias <FK13> = <F13>;+    alias <FK14> = <F14>;+    alias <FK15> = <F15>;+    alias <FK16> = <F16>;+    alias <FK17> = <F17>;+    alias <FK18> = <F18>;+    alias <FK19> = <F19>;+    alias <FK20> = <F20>;+    alias <FK21> = <F21>;+    alias <FK22> = <F22>;+    alias <FK23> = <F23>;+    alias <FK24> = <F24>;++    alias <HZTG> = <APOSTROPHE>;+    alias <HKTG> = <KATAKANAHIRAGANA>;+    alias <AB11> = <RO>;+    alias <HENK> = <HENKAN>;+    alias <MUHE> = <MUHENKAN>;+    alias <AE13> = <YEN>;+    alias <KATA> = <KATAKANA>;+    alias <HIRA> = <HIRAGANA>;+    alias <JPCM> = <KPJPCOMMA>;++    alias <HNGL> = <HANGEUL>;+    alias <HJCV> = <HANJA>;++    alias <LMTA> = <LEFTMETA>;+    alias <RMTA> = <RIGHTMETA>;+    alias <VOL-> = <VOLUMEDOWN>;+    alias <VOL+> = <VOLUMEUP>;+    alias <POWR> = <POWER>;+    alias <AGAI> = <AGAIN>;+    alias <PROP> = <PROPS>;+    alias <FRNT> = <FRONT>;+    alias <PAST> = <PASTE>;++    alias <LNFD> = <LINEFEED>;+    alias <I120> = <MACRO>;+    alias <I126> = <KPPLUSMINUS>;+    alias <I128> = <SCALE>;+    alias <I129> = <KPCOMMA>;+    alias <I147> = <MENU>;+    alias <I148> = <CALC>;+    alias <I149> = <SETUP>;+    alias <I150> = <SLEEP>;+    alias <I151> = <WAKEUP>;+    alias <I152> = <FILE>;+    alias <I153> = <SENDFILE>;+    alias <I154> = <DELETEFILE>;+    alias <I155> = <XFER>;+    alias <I156> = <PROG1>;+    alias <I157> = <PROG2>;+    alias <I158> = <WWW>;+    alias <I159> = <MSDOS>;+    alias <I160> = <COFFEE>;+    alias <I161> = <DIRECTION>;+    alias <I162> = <CYCLEWINDOWS>;+    alias <I163> = <MAIL>;+    alias <I164> = <BOOKMARKS>;+    alias <I165> = <COMPUTER>;+    alias <I166> = <BACK>;+    alias <I167> = <FORWARD>;+    alias <I168> = <CLOSECD>;+    alias <I169> = <EJECTCD>;+    alias <I170> = <EJECTCLOSECD>;+    alias <I171> = <NEXTSONG>;+    alias <I172> = <PLAYPAUSE>;+    alias <I173> = <PREVIOUSSONG>;+    alias <I174> = <STOPCD>;+    alias <I175> = <RECORD>;+    alias <I176> = <REWIND>;+    alias <I177> = <PHONE>;+    alias <I178> = <ISO>;+    alias <I179> = <CONFIG>;+    alias <I180> = <HOMEPAGE>;+    alias <I181> = <REFRESH>;+    alias <I182> = <EXIT>;+    alias <I183> = <MOVE>;+    alias <I184> = <EDIT>;+    alias <I185> = <SCROLLUP>;+    alias <I186> = <SCROLLDOWN>;+    alias <I187> = <KPLEFTPAREN>;+    alias <I188> = <KPRIGHTPAREN>;+    alias <I189> = <NEW>;+    alias <I190> = <REDO>;+    alias <I208> = <PLAYCD>;+    alias <I209> = <PAUSECD>;+    alias <I210> = <PROG3>;+    alias <I211> = <PROG4>;+    alias <I212> = <DASHBOARD>;+    alias <I213> = <SUSPEND>;+    alias <I214> = <CLOSE>;+    alias <I215> = <PLAY>;+    alias <I216> = <FASTFORWARD>;+    alias <I217> = <BASSBOOST>;+    alias <I218> = <PRINT>;+    alias <I219> = <HP>;+    alias <I220> = <CAMERA>;+    alias <I221> = <SOUND>;+    alias <I222> = <QUESTION>;+    alias <I223> = <EMAIL>;+    alias <I224> = <CHAT>;+    alias <I225> = <SEARCH>;+    alias <I226> = <CONNECT>;+    alias <I227> = <FINANCE>;+    alias <I228> = <SPORT>;+    alias <I229> = <SHOP>;+    alias <I230> = <ALTERASE>;+    alias <I231> = <CANCEL>;+    alias <I232> = <BRIGHTNESSDOWN>;+    alias <I233> = <BRIGHTNESSUP>;+    alias <I234> = <MEDIA>;+    alias <I235> = <SWITCHVIDEOMODE>;+    alias <I236> = <KBDILLUMTOGGLE>;+    alias <I237> = <KBDILLUMDOWN>;+    alias <I238> = <KBDILLUMUP>;+    alias <I239> = <SEND>;+    alias <I240> = <REPLY>;+    alias <I241> = <FORWARDMAIL>;+    alias <I242> = <SAVE>;+    alias <I243> = <DOCUMENTS>;+    alias <I244> = <BATTERY>;+    alias <I245> = <BLUETOOTH>;+    alias <I246> = <WLAN>;+    alias <I247> = <UWB>;+    alias <I248> = <UNKNOWN>;+    alias <I249> = <VIDEO_NEXT>;+    alias <I250> = <VIDEO_PREV>;+    alias <I251> = <BRIGHTNESS_CYCLE>;+    alias <I252> = <BRIGHTNESS_ZERO>;+    alias <I253> = <DISPLAY_OFF>;++    alias <ALGR> = <RIGHTALT>;++    // For Brazilian ABNT2+    alias <KPPT> = <KPCOMMA>;+};
+ data/keycodes/xfree86 view
@@ -0,0 +1,410 @@+// "standard" XFree86 codes+// It seems that the "default" must be the first entry in the file.++default xkb_keycodes "xfree86" {+    include "xfree86(basic)"+    <BKSL> =  51;+    alias <AC12> = <BKSL>;+    <LSGT> =  94;+};++xkb_keycodes "basic" {++    minimum= 8;+    maximum= 255;++    <TLDE> =  49;+    alias <AE00> = <TLDE>;	// Some geometries use AE00+    <AE01> =  10;+    <AE02> =  11;+    <AE03> =  12;+    <AE04> =  13;+    <AE05> =  14;+    <AE06> =  15;+    <AE07> =  16;+    <AE08> =  17;+    <AE09> =  18;+    <AE10> =  19;+    <AE11> =  20;+    <AE12> =  21;+    <BKSP> =  22;++    <TAB>  =  23;+    <AD01> =  24;+    <AD02> =  25;+    <AD03> =  26;+    <AD04> =  27;+    <AD05> =  28;+    <AD06> =  29;+    <AD07> =  30;+    <AD08> =  31;+    <AD09> =  32;+    <AD10> =  33;+    <AD11> =  34;+    <AD12> =  35;+    <RTRN> =  36;++    <CAPS> =  66;+    <AC01> =  38;+    <AC02> =  39;+    <AC03> =  40;+    <AC04> =  41;+    <AC05> =  42;+    <AC06> =  43;+    <AC07> =  44;+    <AC08> =  45;+    <AC09> =  46;+    <AC10> =  47;+    <AC11> =  48;++    <LFSH> =  50;+    <AB01> =  52;+    <AB02> =  53;+    <AB03> =  54;+    <AB04> =  55;+    <AB05> =  56;+    <AB06> =  57;+    <AB07> =  58;+    <AB08> =  59;+    <AB09> =  60;+    <AB10> =  61;+    <RTSH> =  62;++    <LALT> =  64;+    <LCTL> =  37;+    <SPCE> =  65;+    <RCTL> = 109;+    <RALT> = 113;+    // Microsoft keyboard extra keys+    <LWIN> = 115;+    <RWIN> = 116;+    <MENU> = 117;++    <ESC>  =   9;+    <FK01> =  67;+    <FK02> =  68;+    <FK03> =  69;+    <FK04> =  70;+    <FK05> =  71;+    <FK06> =  72;+    <FK07> =  73;+    <FK08> =  74;+    <FK09> =  75;+    <FK10> =  76;+    <FK11> =  95;+    <FK12> =  96;++    <PRSC> = 111;+    <SYRQ> =  92;+    <SCLK> =  78;+    <PAUS> = 110;+    <BRK>  = 114;++    <INS>  = 106;+    <HOME> =  97;+    <PGUP> =  99;+    <DELE> = 107;+    <END>  = 103;+    <PGDN> = 105;++    <UP>   =  98;+    <LEFT> = 100;+    <DOWN> = 104;+    <RGHT> = 102;++    <NMLK> =  77;+    <KPDV> = 112;+    <KPMU> =  63;+    <KPSU> =  82;++    <KP7>  =  79;+    <KP8>  =  80;+    <KP9>  =  81;+    <KPAD> =  86;++    <KP4>  =  83;+    <KP5>  =  84;+    <KP6>  =  85;++    <KP1>  =  87;+    <KP2>  =  88;+    <KP3>  =  89;+    <KPEN> = 108;++    <KP0>  =  90;+    <KPDL> =  91;+    <KPEQ> = 126;++    <FK13> =  118;+    <FK14> =  119;+    <FK15> =  120;+    <FK16> =  121;+    <FK17> =  122;+    <KPDC> =  123;++    // Keys that are generated on Japanese keyboards++    alias <HZTG> = <TLDE>;	// Hankaku_Zenkaku toggle+    <HKTG> =   208;		// Hiragana_Katakana toggle+    <AB11> =   211;		// backslash/underscore+    <XFER> =   129;		// Henkan+    <NFER> =   131;		// Muhenkan+    <AE13> =   133;		// Yen+    <EISU> =   210;		// Alphanumeric mode on macintosh+    <KANA> =   209;		// Kana mode on macintosh++    // Keys that are generated on Korean keyboards++    alias <HNGL> = <FK16>;     // Hangul Latin toggle+    alias <HJCV> = <FK17>;     // Hangul to Hanja conversion++    // Extended keys that may be generated on "Internet" keyboards.+    // These are not standardised, hence the meaningless names.+    // The entries commented out are never generated because the raw codes+    // in those positions are already used for well-defined keys.++    alias <I01> = <XFER>;+    <I02> =   130;+    alias <I03> = <NFER>;+    <I04> =   132;+    alias <I05> = <AE13>;+    <I06> =   134;+    <I07> =   135;+    <I08> =   136;+    <I09> =   137;+    <I0A> =   138;+    <I0B> =   139;+    <I0C> =   140;+    <I0D> =   141;+    <I0E> =   142;+    <I0F> =   143;+    <I10> =   144;+    <I11> =   145;+    <I12> =   146;+    <I13> =   147;+    <I14> =   148;+    <I15> =   149;+    <I16> =   150;+    <I17> =   151;+    <I18> =   152;+    <I19> =   153;+    <I1A> =   154;+    <I1B> =   155;+    // <I1C> =   156;	<META>+    // <I1D> =   157;	<K59>+    <I1E> =   158;+    <I1F> =   159;+    <I20> =   160;+    <I21> =   161;+    <I22> =   162;+    <I23> =   163;+    <I24> =   164;+    <I25> =   165;+    <I26> =   166;+    <I27> =   167;+    <I28> =   168;+    <I29> =   169;+    // <I2A> =   170;	<K5A>+    <I2B> =   171;+    <I2C> =   172;+    <I2D> =   173;+    <I2E> =   174;+    <I2F> =   175;+    <I30> =   176;+    <I31> =   177;+    <I32> =   178;+    <I33> =   179;+    <I34> =   180;+    // <I35> =   181;	<K5B>+    // <I36> =   182;	<K5D>+    // <I37> =   183;	<K5E>+    // <I38> =   184;	<K5F>+    <I39> =   185;+    <I3A> =   186;+    <I3B> =   187;+    <I3C> =   188;+    // <I3D> =   189;	<K62>+    // <I3E> =   190;	<K63>+    // <I3F> =   191;	<K64>+    // <I40> =   192;	<K65>+    // <I41> =   193;	<K66>+    <I42> =   194;+    <I43> =   195;+    <I44> =   196;+    <I45> =   197;+    // <I46> =   198;	<K67>+    // <I47> =   199;	<K68>+    // <I48> =   200;	<K69>+    // <I49> =   201;	<K6A>+    <I4A> =   202;+    // <I4B> =   203;	<K6B>+    // <I4C> =   204;	<K6C>+    // <I4D> =   205;	<K6D>+    // <I4E> =   206;	<K6E>+    // <I4F> =   207;	<K6F>+    // <I50> =   208;	<K70>+    // <I51> =   209;	<K71>+    // <I52> =   210;	<K72>+    // <I53> =   211;	<K73>+    <I54> =   212;+    <I55> =   213;+    <I56> =   214;+    <I57> =   215;+    <I58> =   216;+    <I59> =   217;+    <I5A> =   218;+    // <I5B> =   219;	<K74>+    // <I5C> =   220;	<K75>+    // <I5D> =   221;	<K76>+    <I5E> =   222;+    <I5F> =   223;+    <I60> =   224;+    <I61> =   225;+    <I62> =   226;+    <I63> =   227;+    <I64> =   228;+    <I65> =   229;+    <I66> =   230;+    <I67> =   231;+    <I68> =   232;+    <I69> =   233;+    <I6A> =   234;+    <I6B> =   235;+    <I6C> =   236;+    <I6D> =   237;+    <I6E> =   238;+    <I6F> =   239;+    <I70> =   240;+    <I71> =   241;+    <I72> =   242;+    <I73> =   243;+    <I74> =   244;+    <I75> =   245;+    <I76> =   246;+    <I77> =   247;+    <I78> =   248;+    <I79> =   249;+    <I7A> =   250;+    <I7B> =   251;+    <I7C> =   252;+    <I7D> =   253;+    <I7E> =   254;+    <I7F> =   255;++    // MacBooks generate 0x65 for the lower brightness key+    <II65> =  101;++    // Required for apple/logitech_g15 keyboard+    <II5D> = 93;++    // Codes generated for scancodes 0x59-0x5f, 0x62-0x76+    <K59> =   157;		// <I1D>+    <K5A> =   170;		// <I2A>+    <K5B> =   181;		// <I35>+    alias <K5C> = <KPEQ>;+    <K5D> =   182;		// <I36>+    <K5E> =   183;		// <I37>+    <K5F> =   184;		// <I38>+    <K62> =   189;		// <I3D>+    <K63> =   190;		// <I3E>+    <K64> =   191;		// <I3F>+    <K65> =   192;		// <I40>+    <K66> =   193;		// <I41>+    <K67> =   198;		// <I46>+    <K68> =   199;		// <I47>+    <K69> =   200;		// <I48>+    <K6A> =   201;		// <I49>+    <K6B> =   203;		// <I4B>+    <K6C> =   204;		// <I4C>+    <K6D> =   205;		// <I4D>+    <K6E> =   206;		// <I4E>+    <K6F> =   207;		// <I4F>+    alias <K70> = <HKTG>;	// <I50>+    alias <K71> = <KANA>;	// <I51>+    alias <K72> = <EISU>;	// <I52>+    alias <K73> = <AB11>;	// <I53>+    <K74> =   219;		// <I5B>+    <K75> =   220;		// <I5C>+    <K76> =   221;		// <I5D>+   +    // Solaris compatibility++    alias <LMTA> = <LWIN>;+    alias <RMTA> = <RWIN>;+    alias <COMP> = <MENU>;+    alias <POWR> = <I0C>;+    alias <MUTE> = <I0D>;+    alias <VOL-> = <I0E>;+    alias <VOL+> = <I0F>;+    alias <HELP> = <I10>;+    alias <STOP> = <I11>;+    alias <AGAI> = <I12>;+    alias <PROP> = <I13>;+    alias <UNDO> = <I14>;+    alias <FRNT> = <I15>;+    alias <COPY> = <I16>;+    alias <OPEN> = <I17>;+    alias <PAST> = <I18>;+    alias <FIND> = <I19>;+    alias <CUT>  = <I1A>;+    alias <OUTP> = <I56>;+    alias <KITG> = <I57>;+    alias <KIDN> = <I58>;+    alias <KIUP> = <I59>;++    // Other codes never generated.  The XFree86 ddx never generates+    // these codes.+    // Thus we can use them as fake keys+    <MDSW> =     8;+    <LVL3> =   124; // <U7C>+    <ALT>  =   125; // <U7D>+    <META> =   156; // <I1C>+    <SUPR> =   127; // <U7F>+    <HYPR> =   128; // <U80>++    indicator 1 = "Caps Lock";+    indicator 2 = "Num Lock";+    indicator 3 = "Scroll Lock";++    alias <ALGR> = <RALT>;++    // For Brazilian ABNT2+    alias <KPPT> = <I06>;+};++// What keyboard is this?++xkb_keycodes "102" {+    include "xfree86(xfree86)"++    // There will be warnings from xkbcomp because of multiple definitions.++    <RALT> = 122;+    <RCTL> = 123;++    <PRSC> = 121;+    <PAUS> = 118;++    <INS>  = 131;+    <HOME> = 135;+    <PGUP> = 119;+    <DELE> = 129;+    <END>  = 130;+    <PGDN> = 134;++    <UP>   = 128;+    <LEFT> = 132;+    <DOWN> = 120;+    <RGHT> = 133;++    <KPDV> = 125;++    <KPEN> = 124;+};+++// IBM ThinkPad Z60m/Z60t/Z61m/Z61t+xkb_keycodes "thinkpadz60" {+    include "xfree86(xfree86)"+    <MENU> = 227;+};
+ data/keymaps/bad.xkb view
@@ -0,0 +1,5 @@+xkb_keymap {+    xkb_types     { include "complete" };+    xkb_compat    { include "complete" };+    xkb_symbols   { include "pc+us" };+};
+ data/keymaps/basic.xkb view
@@ -0,0 +1,6 @@+xkb_keymap {+    xkb_keycodes  { include "evdev+aliases(qwerty)" };+    xkb_types     { include "complete" };+    xkb_compat    { include "complete" };+    xkb_symbols   { include "pc+us" };+};
+ data/keymaps/comprehensive-plus-geom.xkb view
@@ -0,0 +1,1813 @@+xkb_keymap {+xkb_keycodes "evdev+aliases(qwerty)" {+    minimum = 8;+    maximum = 255;+     <ESC> = 9;+    <AE01> = 10;+    <AE02> = 11;+    <AE03> = 12;+    <AE04> = 13;+    <AE05> = 14;+    <AE06> = 15;+    <AE07> = 16;+    <AE08> = 17;+    <AE09> = 18;+    <AE10> = 19;+    <AE11> = 20;+    <AE12> = 21;+    <BKSP> = 22;+     <TAB> = 23;+    <AD01> = 24;+    <AD02> = 25;+    <AD03> = 26;+    <AD04> = 27;+    <AD05> = 28;+    <AD06> = 29;+    <AD07> = 30;+    <AD08> = 31;+    <AD09> = 32;+    <AD10> = 33;+    <AD11> = 34;+    <AD12> = 35;+    <RTRN> = 36;+    <LCTL> = 37;+    <AC01> = 38;+    <AC02> = 39;+    <AC03> = 40;+    <AC04> = 41;+    <AC05> = 42;+    <AC06> = 43;+    <AC07> = 44;+    <AC08> = 45;+    <AC09> = 46;+    <AC10> = 47;+    <AC11> = 48;+    <TLDE> = 49;+    <LFSH> = 50;+    <BKSL> = 51;+    <AB01> = 52;+    <AB02> = 53;+    <AB03> = 54;+    <AB04> = 55;+    <AB05> = 56;+    <AB06> = 57;+    <AB07> = 58;+    <AB08> = 59;+    <AB09> = 60;+    <AB10> = 61;+    <RTSH> = 62;+    <KPMU> = 63;+    <LALT> = 64;+    <SPCE> = 65;+    <CAPS> = 66;+    <FK01> = 67;+    <FK02> = 68;+    <FK03> = 69;+    <FK04> = 70;+    <FK05> = 71;+    <FK06> = 72;+    <FK07> = 73;+    <FK08> = 74;+    <FK09> = 75;+    <FK10> = 76;+    <NMLK> = 77;+    <SCLK> = 78;+     <KP7> = 79;+     <KP8> = 80;+     <KP9> = 81;+    <KPSU> = 82;+     <KP4> = 83;+     <KP5> = 84;+     <KP6> = 85;+    <KPAD> = 86;+     <KP1> = 87;+     <KP2> = 88;+     <KP3> = 89;+     <KP0> = 90;+    <KPDL> = 91;+    <LVL3> = 92;+    <LSGT> = 94;+    <FK11> = 95;+    <FK12> = 96;+    <AB11> = 97;+    <KATA> = 98;+    <HIRA> = 99;+    <HENK> = 100;+    <HKTG> = 101;+    <MUHE> = 102;+    <JPCM> = 103;+    <KPEN> = 104;+    <RCTL> = 105;+    <KPDV> = 106;+    <PRSC> = 107;+    <RALT> = 108;+    <LNFD> = 109;+    <HOME> = 110;+      <UP> = 111;+    <PGUP> = 112;+    <LEFT> = 113;+    <RGHT> = 114;+     <END> = 115;+    <DOWN> = 116;+    <PGDN> = 117;+     <INS> = 118;+    <DELE> = 119;+    <I120> = 120;+    <MUTE> = 121;+    <VOL-> = 122;+    <VOL+> = 123;+    <POWR> = 124;+    <KPEQ> = 125;+    <I126> = 126;+    <PAUS> = 127;+    <I128> = 128;+    <I129> = 129;+    <HNGL> = 130;+    <HJCV> = 131;+    <AE13> = 132;+    <LWIN> = 133;+    <RWIN> = 134;+    <COMP> = 135;+    <STOP> = 136;+    <AGAI> = 137;+    <PROP> = 138;+    <UNDO> = 139;+    <FRNT> = 140;+    <COPY> = 141;+    <OPEN> = 142;+    <PAST> = 143;+    <FIND> = 144;+     <CUT> = 145;+    <HELP> = 146;+    <I147> = 147;+    <I148> = 148;+    <I149> = 149;+    <I150> = 150;+    <I151> = 151;+    <I152> = 152;+    <I153> = 153;+    <I154> = 154;+    <I155> = 155;+    <I156> = 156;+    <I157> = 157;+    <I158> = 158;+    <I159> = 159;+    <I160> = 160;+    <I161> = 161;+    <I162> = 162;+    <I163> = 163;+    <I164> = 164;+    <I165> = 165;+    <I166> = 166;+    <I167> = 167;+    <I168> = 168;+    <I169> = 169;+    <I170> = 170;+    <I171> = 171;+    <I172> = 172;+    <I173> = 173;+    <I174> = 174;+    <I175> = 175;+    <I176> = 176;+    <I177> = 177;+    <I178> = 178;+    <I179> = 179;+    <I180> = 180;+    <I181> = 181;+    <I182> = 182;+    <I183> = 183;+    <I184> = 184;+    <I185> = 185;+    <I186> = 186;+    <I187> = 187;+    <I188> = 188;+    <I189> = 189;+    <I190> = 190;+    <FK13> = 191;+    <FK14> = 192;+    <FK15> = 193;+    <FK16> = 194;+    <FK17> = 195;+    <FK18> = 196;+    <FK19> = 197;+    <FK20> = 198;+    <FK21> = 199;+    <FK22> = 200;+    <FK23> = 201;+    <FK24> = 202;+    <MDSW> = 203;+     <ALT> = 204;+    <META> = 205;+    <SUPR> = 206;+    <HYPR> = 207;+    <I208> = 208;+    <I209> = 209;+    <I210> = 210;+    <I211> = 211;+    <I212> = 212;+    <I213> = 213;+    <I214> = 214;+    <I215> = 215;+    <I216> = 216;+    <I217> = 217;+    <I218> = 218;+    <I219> = 219;+    <I220> = 220;+    <I221> = 221;+    <I222> = 222;+    <I223> = 223;+    <I224> = 224;+    <I225> = 225;+    <I226> = 226;+    <I227> = 227;+    <I228> = 228;+    <I229> = 229;+    <I230> = 230;+    <I231> = 231;+    <I232> = 232;+    <I233> = 233;+    <I234> = 234;+    <I235> = 235;+    <I236> = 236;+    <I237> = 237;+    <I238> = 238;+    <I239> = 239;+    <I240> = 240;+    <I241> = 241;+    <I242> = 242;+    <I243> = 243;+    <I244> = 244;+    <I245> = 245;+    <I246> = 246;+    <I247> = 247;+    <I248> = 248;+    <I249> = 249;+    <I250> = 250;+    <I251> = 251;+    <I252> = 252;+    <I253> = 253;+    indicator 1 = "Caps Lock";+    indicator 2 = "Num Lock";+    indicator 3 = "Scroll Lock";+    indicator 4 = "Compose";+    indicator 5 = "Kana";+    indicator 6 = "Sleep";+    indicator 7 = "Suspend";+    indicator 8 = "Mute";+    indicator 9 = "Misc";+    indicator 10 = "Mail";+    indicator 11 = "Charging";+    virtual indicator 12 = "Shift Lock";+    virtual indicator 13 = "Group 2";+    virtual indicator 14 = "Mouse Keys";+    alias <AC12> = <BKSL>;+    alias <MENU> = <COMP>;+    alias <HZTG> = <TLDE>;+    alias <LMTA> = <LWIN>;+    alias <RMTA> = <RWIN>;+    alias <ALGR> = <RALT>;+    alias <KPPT> = <I129>;+    alias <LatQ> = <AD01>;+    alias <LatW> = <AD02>;+    alias <LatE> = <AD03>;+    alias <LatR> = <AD04>;+    alias <LatT> = <AD05>;+    alias <LatY> = <AD06>;+    alias <LatU> = <AD07>;+    alias <LatI> = <AD08>;+    alias <LatO> = <AD09>;+    alias <LatP> = <AD10>;+    alias <LatA> = <AC01>;+    alias <LatS> = <AC02>;+    alias <LatD> = <AC03>;+    alias <LatF> = <AC04>;+    alias <LatG> = <AC05>;+    alias <LatH> = <AC06>;+    alias <LatJ> = <AC07>;+    alias <LatK> = <AC08>;+    alias <LatL> = <AC09>;+    alias <LatZ> = <AB01>;+    alias <LatX> = <AB02>;+    alias <LatC> = <AB03>;+    alias <LatV> = <AB04>;+    alias <LatB> = <AB05>;+    alias <LatN> = <AB06>;+    alias <LatM> = <AB07>;+};++xkb_types "complete" {++    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;++    type "ONE_LEVEL" {+        modifiers= none;+        level_name[Level1]= "Any";+    };+    type "TWO_LEVEL" {+        modifiers= Shift;+        map[Shift]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+    };+    type "ALPHABETIC" {+        modifiers= Shift+Lock;+        map[Shift]= Level2;+        map[Lock]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Caps";+    };+    type "KEYPAD" {+        modifiers= Shift+NumLock;+        map[Shift]= Level2;+        map[NumLock]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Number";+    };+    type "SHIFT+ALT" {+        modifiers= Shift+Alt;+        map[Shift+Alt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift+Alt";+    };+    type "PC_CONTROL_LEVEL2" {+        modifiers= Control;+        map[Control]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Control";+    };+    type "PC_LCONTROL_LEVEL2" {+        modifiers= LControl;+        map[LControl]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "LControl";+    };+    type "PC_RCONTROL_LEVEL2" {+        modifiers= RControl;+        map[RControl]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "RControl";+    };+    type "PC_ALT_LEVEL2" {+        modifiers= Alt;+        map[Alt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Alt";+    };+    type "PC_LALT_LEVEL2" {+        modifiers= LAlt;+        map[LAlt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "LAlt";+    };+    type "PC_RALT_LEVEL2" {+        modifiers= RAlt;+        map[RAlt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "RAlt";+    };+    type "CTRL+ALT" {+        modifiers= Shift+Control+Alt+LevelThree;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Control+Alt]= Level5;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "Ctrl+Alt";+    };+    type "LOCAL_EIGHT_LEVEL" {+        modifiers= Shift+Lock+Control+LevelThree;+        map[Shift+Lock]= Level1;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+Lock+LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level4;+        map[Control]= Level5;+        map[Shift+Lock+Control]= Level5;+        map[Shift+Control]= Level6;+        map[Lock+Control]= Level6;+        map[Control+LevelThree]= Level7;+        map[Shift+Lock+Control+LevelThree]= Level7;+        map[Shift+Control+LevelThree]= Level8;+        map[Lock+Control+LevelThree]= Level8;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Level3";+        level_name[Level4]= "Shift Level3";+        level_name[Level5]= "Ctrl";+        level_name[Level6]= "Shift Ctrl";+        level_name[Level7]= "Level3 Ctrl";+        level_name[Level8]= "Shift Level3 Ctrl";+    };+    type "THREE_LEVEL" {+        modifiers= Shift+LevelThree;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Level3";+    };+    type "EIGHT_LEVEL" {+        modifiers= Shift+LevelThree+LevelFive;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[LevelFive]= Level5;+        map[Shift+LevelFive]= Level6;+        map[LevelThree+LevelFive]= Level7;+        map[Shift+LevelThree+LevelFive]= Level8;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "X";+        level_name[Level6]= "X Shift";+        level_name[Level7]= "X Alt Base";+        level_name[Level8]= "X Shift Alt";+    };+    type "EIGHT_LEVEL_ALPHABETIC" {+        modifiers= Shift+Lock+LevelThree+LevelFive;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level4;+        map[Shift+Lock+LevelThree]= Level3;+        map[LevelFive]= Level5;+        map[Shift+LevelFive]= Level6;+        map[Lock+LevelFive]= Level6;+        map[LevelThree+LevelFive]= Level7;+        map[Shift+LevelThree+LevelFive]= Level8;+        map[Lock+LevelThree+LevelFive]= Level8;+        map[Shift+Lock+LevelThree+LevelFive]= Level7;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "X";+        level_name[Level6]= "X Shift";+        level_name[Level7]= "X Alt Base";+        level_name[Level8]= "X Shift Alt";+    };+    type "EIGHT_LEVEL_SEMIALPHABETIC" {+        modifiers= Shift+Lock+LevelThree+LevelFive;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level3;+        preserve[Lock+LevelThree]= Lock;+        map[Shift+Lock+LevelThree]= Level4;+        preserve[Shift+Lock+LevelThree]= Lock;+        map[LevelFive]= Level5;+        map[Shift+LevelFive]= Level6;+        map[Lock+LevelFive]= Level6;+        preserve[Lock+LevelFive]= Lock;+        map[LevelThree+LevelFive]= Level7;+        map[Shift+LevelThree+LevelFive]= Level8;+        map[Lock+LevelThree+LevelFive]= Level7;+        preserve[Lock+LevelThree+LevelFive]= Lock;+        map[Shift+Lock+LevelThree+LevelFive]= Level8;+        preserve[Shift+Lock+LevelThree+LevelFive]= Lock;+        map[Shift+Lock+LevelFive]= Level1;+        preserve[Shift+Lock+LevelFive]= Lock;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "X";+        level_name[Level6]= "X Shift";+        level_name[Level7]= "X Alt Base";+        level_name[Level8]= "X Shift Alt";+    };+    type "FOUR_LEVEL" {+        modifiers= Shift+LevelThree;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_ALPHABETIC" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level4;+        map[Shift+Lock+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_SEMIALPHABETIC" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level3;+        preserve[Lock+LevelThree]= Lock;+        map[Shift+Lock+LevelThree]= Level4;+        preserve[Shift+Lock+LevelThree]= Lock;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_MIXED_KEYPAD" {+        modifiers= Shift+NumLock+LevelThree;+        map[Shift+NumLock]= Level1;+        map[NumLock]= Level2;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[NumLock+LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Shift+NumLock+LevelThree]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Number";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_X" {+        modifiers= Shift+Control+Alt+LevelThree;+        map[LevelThree]= Level2;+        map[Shift+LevelThree]= Level3;+        map[Control+Alt]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Alt Base";+        level_name[Level3]= "Shift Alt";+        level_name[Level4]= "Ctrl+Alt";+    };+    type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[Lock]= Level4;+        preserve[Lock]= Lock;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level3;+        preserve[Lock+LevelThree]= Lock;+        map[Shift+Lock+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "AltGr Base";+        level_name[Level4]= "Shift AltGr";+    };+    type "FOUR_LEVEL_PLUS_LOCK" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock]= Level5;+        map[Shift+Lock]= Level2;+        map[Lock+LevelThree]= Level3;+        map[Shift+Lock+LevelThree]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "Lock";+    };+    type "FOUR_LEVEL_KEYPAD" {+        modifiers= Shift+NumLock+LevelThree;+        map[Shift]= Level2;+        map[NumLock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[NumLock+LevelThree]= Level4;+        map[Shift+NumLock+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Number";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Alt Number";+    };+};++xkb_compatibility "complete" {++    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;++    interpret.useModMapMods= AnyLevel;+    interpret.repeat= False;+    interpret.locking= False;+    interpret ISO_Level2_Latch+Exactly(Shift) {+        useModMapMods=level1;+        action= LatchMods(modifiers=Shift,clearLocks,latchToLock);+    };+    interpret Shift_Lock+AnyOf(Shift+Lock) {+        action= LockMods(modifiers=Shift);+    };+    interpret Num_Lock+AnyOf(all) {+        virtualModifier= NumLock;+        action= LockMods(modifiers=NumLock);+    };+    interpret ISO_Lock+AnyOf(all) {+        action= ISOLock(modifiers=modMapMods,affect=all);+    };+    interpret ISO_Level3_Shift+AnyOf(all) {+        virtualModifier= LevelThree;+        useModMapMods=level1;+        action= SetMods(modifiers=LevelThree,clearLocks);+    };+    interpret ISO_Level3_Latch+AnyOf(all) {+        virtualModifier= LevelThree;+        useModMapMods=level1;+        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+    };+    interpret ISO_Level3_Lock+AnyOf(all) {+        virtualModifier= LevelThree;+        useModMapMods=level1;+        action= LockMods(modifiers=LevelThree);+    };+    interpret Alt_L+AnyOf(all) {+        virtualModifier= Alt;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Alt_R+AnyOf(all) {+        virtualModifier= Alt;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Meta_L+AnyOf(all) {+        virtualModifier= Meta;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Meta_R+AnyOf(all) {+        virtualModifier= Meta;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Super_L+AnyOf(all) {+        virtualModifier= Super;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Super_R+AnyOf(all) {+        virtualModifier= Super;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Hyper_L+AnyOf(all) {+        virtualModifier= Hyper;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Hyper_R+AnyOf(all) {+        virtualModifier= Hyper;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Scroll_Lock+AnyOf(all) {+        virtualModifier= ScrollLock;+        action= LockMods(modifiers=modMapMods);+    };+    interpret ISO_Level5_Shift+AnyOf(all) {+        virtualModifier= LevelFive;+        useModMapMods=level1;+        action= SetMods(modifiers=LevelFive,clearLocks);+    };+    interpret ISO_Level5_Latch+AnyOf(all) {+        virtualModifier= LevelFive;+        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+    };+    interpret ISO_Level5_Lock+AnyOf(all) {+        virtualModifier= LevelFive;+        action= LockMods(modifiers=LevelFive);+    };+    interpret Mode_switch+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= SetGroup(group=+1);+    };+    interpret ISO_Level3_Shift+AnyOfOrNone(all) {+        action= SetMods(modifiers=LevelThree,clearLocks);+    };+    interpret ISO_Level3_Latch+AnyOfOrNone(all) {+        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+    };+    interpret ISO_Level3_Lock+AnyOfOrNone(all) {+        action= LockMods(modifiers=LevelThree);+    };+    interpret ISO_Group_Latch+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= LatchGroup(group=2);+    };+    interpret ISO_Next_Group+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= LockGroup(group=+1);+    };+    interpret ISO_Prev_Group+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= LockGroup(group=-1);+    };+    interpret ISO_First_Group+AnyOfOrNone(all) {+        action= LockGroup(group=1);+    };+    interpret ISO_Last_Group+AnyOfOrNone(all) {+        action= LockGroup(group=2);+    };+    interpret KP_1+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+1);+    };+    interpret KP_End+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+1);+    };+    interpret KP_2+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=+1);+    };+    interpret KP_Down+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=+1);+    };+    interpret KP_3+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+1);+    };+    interpret KP_Next+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+1);+    };+    interpret KP_4+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+0);+    };+    interpret KP_Left+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+0);+    };+    interpret KP_6+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+0);+    };+    interpret KP_Right+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+0);+    };+    interpret KP_7+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=-1);+    };+    interpret KP_Home+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=-1);+    };+    interpret KP_8+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=-1);+    };+    interpret KP_Up+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=-1);+    };+    interpret KP_9+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=-1);+    };+    interpret KP_Prior+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=-1);+    };+    interpret KP_5+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default);+    };+    interpret KP_Begin+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default);+    };+    interpret KP_F2+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=1);+    };+    interpret KP_Divide+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=1);+    };+    interpret KP_F3+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=2);+    };+    interpret KP_Multiply+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=2);+    };+    interpret KP_F4+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=3);+    };+    interpret KP_Subtract+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=3);+    };+    interpret KP_Separator+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default,count=2);+    };+    interpret KP_Add+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default,count=2);+    };+    interpret KP_0+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=lock);+    };+    interpret KP_Insert+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=lock);+    };+    interpret KP_Decimal+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=unlock);+    };+    interpret KP_Delete+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=unlock);+    };+    interpret F25+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=1);+    };+    interpret F26+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=2);+    };+    interpret F27+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=-1);+    };+    interpret F29+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=-1);+    };+    interpret F31+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default);+    };+    interpret F33+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+1);+    };+    interpret F35+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+1);+    };+    interpret Pointer_Button_Dflt+AnyOfOrNone(all) {+        action= PtrBtn(button=default);+    };+    interpret Pointer_Button1+AnyOfOrNone(all) {+        action= PtrBtn(button=1);+    };+    interpret Pointer_Button2+AnyOfOrNone(all) {+        action= PtrBtn(button=2);+    };+    interpret Pointer_Button3+AnyOfOrNone(all) {+        action= PtrBtn(button=3);+    };+    interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {+        action= PtrBtn(button=default,count=2);+    };+    interpret Pointer_DblClick1+AnyOfOrNone(all) {+        action= PtrBtn(button=1,count=2);+    };+    interpret Pointer_DblClick2+AnyOfOrNone(all) {+        action= PtrBtn(button=2,count=2);+    };+    interpret Pointer_DblClick3+AnyOfOrNone(all) {+        action= PtrBtn(button=3,count=2);+    };+    interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {+        action= LockPtrBtn(button=default,affect=both);+    };+    interpret Pointer_Drag1+AnyOfOrNone(all) {+        action= LockPtrBtn(button=1,affect=both);+    };+    interpret Pointer_Drag2+AnyOfOrNone(all) {+        action= LockPtrBtn(button=2,affect=both);+    };+    interpret Pointer_Drag3+AnyOfOrNone(all) {+        action= LockPtrBtn(button=3,affect=both);+    };+    interpret Pointer_EnableKeys+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeys);+    };+    interpret Pointer_Accelerate+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeysAccel);+    };+    interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {+        action= SetPtrDflt(affect=button,button=+1);+    };+    interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {+        action= SetPtrDflt(affect=button,button=-1);+    };+    interpret AccessX_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=AccessXKeys);+    };+    interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=AccessXFeedback);+    };+    interpret RepeatKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=RepeatKeys);+    };+    interpret SlowKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=SlowKeys);+    };+    interpret BounceKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=BounceKeys);+    };+    interpret StickyKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=StickyKeys);+    };+    interpret MouseKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeys);+    };+    interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeysAccel);+    };+    interpret Overlay1_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=Overlay1);+    };+    interpret Overlay2_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=Overlay2);+    };+    interpret AudibleBell_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=AudibleBell);+    };+    interpret Terminate_Server+AnyOfOrNone(all) {+        action= Terminate();+    };+    interpret Alt_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Alt,clearLocks);+    };+    interpret Alt_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Alt,clearLocks);+    };+    interpret Meta_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Meta,clearLocks);+    };+    interpret Meta_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Meta,clearLocks);+    };+    interpret Super_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Super,clearLocks);+    };+    interpret Super_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Super,clearLocks);+    };+    interpret Hyper_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Hyper,clearLocks);+    };+    interpret Hyper_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Hyper,clearLocks);+    };+    interpret Shift_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Shift,clearLocks);+    };+    interpret XF86Switch_VT_1+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=1,!same);+    };+    interpret XF86Switch_VT_2+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=2,!same);+    };+    interpret XF86Switch_VT_3+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=3,!same);+    };+    interpret XF86Switch_VT_4+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=4,!same);+    };+    interpret XF86Switch_VT_5+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=5,!same);+    };+    interpret XF86Switch_VT_6+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=6,!same);+    };+    interpret XF86Switch_VT_7+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=7,!same);+    };+    interpret XF86Switch_VT_8+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=8,!same);+    };+    interpret XF86Switch_VT_9+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=9,!same);+    };+    interpret XF86Switch_VT_10+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=10,!same);+    };+    interpret XF86Switch_VT_11+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=11,!same);+    };+    interpret XF86Switch_VT_12+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=12,!same);+    };+    interpret XF86LogGrabInfo+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);+    };+    interpret XF86LogWindowTree+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);+    };+    interpret XF86Next_VMode+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+    };+    interpret XF86Prev_VMode+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+    };+    interpret ISO_Level5_Shift+AnyOfOrNone(all) {+        action= SetMods(modifiers=LevelFive,clearLocks);+    };+    interpret ISO_Level5_Latch+AnyOfOrNone(all) {+        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+    };+    interpret ISO_Level5_Lock+AnyOfOrNone(all) {+        action= LockMods(modifiers=LevelFive);+    };+    interpret Caps_Lock+AnyOfOrNone(all) {+        action= LockMods(modifiers=Lock);+    };+    interpret Any+Exactly(Lock) {+        action= LockMods(modifiers=Lock);+    };+    interpret Any+AnyOf(all) {+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    indicator "Caps Lock" {+        !allowExplicit;+        whichModState= locked;+        modifiers= Lock;+    };+    indicator "Num Lock" {+        !allowExplicit;+        whichModState= locked;+        modifiers= NumLock;+    };+    indicator "Scroll Lock" {+        whichModState= locked;+        modifiers= ScrollLock;+    };+    indicator "Shift Lock" {+        !allowExplicit;+        whichModState= locked;+        modifiers= Shift;+    };+    indicator "Group 2" {+        !allowExplicit;+        groups= 0xfe;+    };+    indicator "Mouse Keys" {+        indicatorDrivesKeyboard;+        controls= mouseKeys;+    };+};++xkb_symbols "pc+us+inet(evdev)+ctrl(nocaps)+compose(rwin)+terminate(ctrl_alt_bksp)" {++    name[group1]="English (US)";++    key  <ESC> {         [          Escape ] };+    key <AE01> {         [               1,          exclam ] };+    key <AE02> {         [               2,              at ] };+    key <AE03> {         [               3,      numbersign ] };+    key <AE04> {         [               4,          dollar ] };+    key <AE05> {         [               5,         percent ] };+    key <AE06> {         [               6,     asciicircum ] };+    key <AE07> {         [               7,       ampersand ] };+    key <AE08> {         [               8,        asterisk ] };+    key <AE09> {         [               9,       parenleft ] };+    key <AE10> {         [               0,      parenright ] };+    key <AE11> {         [           minus,      underscore ] };+    key <AE12> {         [           equal,            plus ] };+    key <BKSP> {+        type= "CTRL+ALT",+        symbols[Group1]= [       BackSpace,       BackSpace,        NoSymbol,        NoSymbol, Terminate_Server ]+    };+    key  <TAB> {         [             Tab,    ISO_Left_Tab ] };+    key <AD01> {+        type= "ALPHABETIC",+        symbols[Group1]= [               q,               Q ]+    };+    key <AD02> {+        type= "ALPHABETIC",+        symbols[Group1]= [               w,               W ]+    };+    key <AD03> {+        type= "ALPHABETIC",+        symbols[Group1]= [               e,               E ]+    };+    key <AD04> {+        type= "ALPHABETIC",+        symbols[Group1]= [               r,               R ]+    };+    key <AD05> {+        type= "ALPHABETIC",+        symbols[Group1]= [               t,               T ]+    };+    key <AD06> {+        type= "ALPHABETIC",+        symbols[Group1]= [               y,               Y ]+    };+    key <AD07> {+        type= "ALPHABETIC",+        symbols[Group1]= [               u,               U ]+    };+    key <AD08> {+        type= "ALPHABETIC",+        symbols[Group1]= [               i,               I ]+    };+    key <AD09> {+        type= "ALPHABETIC",+        symbols[Group1]= [               o,               O ]+    };+    key <AD10> {+        type= "ALPHABETIC",+        symbols[Group1]= [               p,               P ]+    };+    key <AD11> {         [     bracketleft,       braceleft ] };+    key <AD12> {         [    bracketright,      braceright ] };+    key <RTRN> {         [          Return ] };+    key <LCTL> {         [       Control_L ] };+    key <AC01> {+        type= "ALPHABETIC",+        symbols[Group1]= [               a,               A ]+    };+    key <AC02> {+        type= "ALPHABETIC",+        symbols[Group1]= [               s,               S ]+    };+    key <AC03> {+        type= "ALPHABETIC",+        symbols[Group1]= [               d,               D ]+    };+    key <AC04> {+        type= "ALPHABETIC",+        symbols[Group1]= [               f,               F ]+    };+    key <AC05> {+        type= "ALPHABETIC",+        symbols[Group1]= [               g,               G ]+    };+    key <AC06> {+        type= "ALPHABETIC",+        symbols[Group1]= [               h,               H ]+    };+    key <AC07> {+        type= "ALPHABETIC",+        symbols[Group1]= [               j,               J ]+    };+    key <AC08> {+        type= "ALPHABETIC",+        symbols[Group1]= [               k,               K ]+    };+    key <AC09> {+        type= "ALPHABETIC",+        symbols[Group1]= [               l,               L ]+    };+    key <AC10> {         [       semicolon,           colon ] };+    key <AC11> {         [      apostrophe,        quotedbl ] };+    key <TLDE> {         [           grave,      asciitilde ] };+    key <LFSH> {         [         Shift_L ] };+    key <BKSL> {         [       backslash,             bar ] };+    key <AB01> {+        type= "ALPHABETIC",+        symbols[Group1]= [               z,               Z ]+    };+    key <AB02> {+        type= "ALPHABETIC",+        symbols[Group1]= [               x,               X ]+    };+    key <AB03> {+        type= "ALPHABETIC",+        symbols[Group1]= [               c,               C ]+    };+    key <AB04> {+        type= "ALPHABETIC",+        symbols[Group1]= [               v,               V ]+    };+    key <AB05> {+        type= "ALPHABETIC",+        symbols[Group1]= [               b,               B ]+    };+    key <AB06> {+        type= "ALPHABETIC",+        symbols[Group1]= [               n,               N ]+    };+    key <AB07> {+        type= "ALPHABETIC",+        symbols[Group1]= [               m,               M ]+    };+    key <AB08> {         [           comma,            less ] };+    key <AB09> {         [          period,         greater ] };+    key <AB10> {         [           slash,        question ] };+    key <RTSH> {         [         Shift_R ] };+    key <KPMU> {+        type= "CTRL+ALT",+        symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ]+    };+    key <LALT> {         [           Alt_L,          Meta_L ] };+    key <SPCE> {         [           space ] };+    key <CAPS> {         [       Control_L,       Control_L ] };+    key <FK01> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]+    };+    key <FK02> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]+    };+    key <FK03> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]+    };+    key <FK04> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]+    };+    key <FK05> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]+    };+    key <FK06> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]+    };+    key <FK07> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]+    };+    key <FK08> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]+    };+    key <FK09> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]+    };+    key <FK10> {+        type= "CTRL+ALT",+        symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]+    };+    key <NMLK> {         [        Num_Lock ] };+    key <SCLK> {         [     Scroll_Lock ] };+    key  <KP7> {         [         KP_Home,            KP_7 ] };+    key  <KP8> {         [           KP_Up,            KP_8 ] };+    key  <KP9> {         [        KP_Prior,            KP_9 ] };+    key <KPSU> {+        type= "CTRL+ALT",+        symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ]+    };+    key  <KP4> {         [         KP_Left,            KP_4 ] };+    key  <KP5> {         [        KP_Begin,            KP_5 ] };+    key  <KP6> {         [        KP_Right,            KP_6 ] };+    key <KPAD> {+        type= "CTRL+ALT",+        symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ]+    };+    key  <KP1> {         [          KP_End,            KP_1 ] };+    key  <KP2> {         [         KP_Down,            KP_2 ] };+    key  <KP3> {         [         KP_Next,            KP_3 ] };+    key  <KP0> {         [       KP_Insert,            KP_0 ] };+    key <KPDL> {         [       KP_Delete,      KP_Decimal ] };+    key <LVL3> {         [ ISO_Level3_Shift ] };+    key <LSGT> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [            less,         greater,             bar,       brokenbar ]+    };+    key <FK11> {+        type= "CTRL+ALT",+        symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]+    };+    key <FK12> {+        type= "CTRL+ALT",+        symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]+    };+    key <KATA> {         [        Katakana ] };+    key <HIRA> {         [        Hiragana ] };+    key <HENK> {         [     Henkan_Mode ] };+    key <HKTG> {         [ Hiragana_Katakana ] };+    key <MUHE> {         [        Muhenkan ] };+    key <KPEN> {         [        KP_Enter ] };+    key <RCTL> {         [       Control_R ] };+    key <KPDV> {+        type= "CTRL+ALT",+        symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ]+    };+    key <PRSC> {+        type= "PC_ALT_LEVEL2",+        symbols[Group1]= [           Print,         Sys_Req ]+    };+    key <RALT> {+        type= "TWO_LEVEL",+        symbols[Group1]= [           Alt_R,          Meta_R ]+    };+    key <LNFD> {         [        Linefeed ] };+    key <HOME> {         [            Home ] };+    key   <UP> {         [              Up ] };+    key <PGUP> {         [           Prior ] };+    key <LEFT> {         [            Left ] };+    key <RGHT> {         [           Right ] };+    key  <END> {         [             End ] };+    key <DOWN> {         [            Down ] };+    key <PGDN> {         [            Next ] };+    key  <INS> {         [          Insert ] };+    key <DELE> {         [          Delete ] };+    key <MUTE> {         [   XF86AudioMute ] };+    key <VOL-> {         [ XF86AudioLowerVolume ] };+    key <VOL+> {         [ XF86AudioRaiseVolume ] };+    key <POWR> {         [    XF86PowerOff ] };+    key <KPEQ> {         [        KP_Equal ] };+    key <I126> {         [       plusminus ] };+    key <PAUS> {+        type= "PC_CONTROL_LEVEL2",+        symbols[Group1]= [           Pause,           Break ]+    };+    key <I128> {         [     XF86LaunchA ] };+    key <I129> {         [      KP_Decimal,      KP_Decimal ] };+    key <HNGL> {         [          Hangul ] };+    key <HJCV> {         [    Hangul_Hanja ] };+    key <LWIN> {         [         Super_L ] };+    key <RWIN> {+        type= "TWO_LEVEL",+        symbols[Group1]= [       Multi_key,       Multi_key ]+    };+    key <COMP> {         [            Menu ] };+    key <STOP> {         [          Cancel ] };+    key <AGAI> {         [            Redo ] };+    key <PROP> {         [        SunProps ] };+    key <UNDO> {         [            Undo ] };+    key <FRNT> {         [        SunFront ] };+    key <COPY> {         [        XF86Copy ] };+    key <OPEN> {         [         SunOpen ] };+    key <PAST> {         [       XF86Paste ] };+    key <FIND> {         [            Find ] };+    key  <CUT> {         [         XF86Cut ] };+    key <HELP> {         [            Help ] };+    key <I147> {         [      XF86MenuKB ] };+    key <I148> {         [  XF86Calculator ] };+    key <I150> {         [       XF86Sleep ] };+    key <I151> {         [      XF86WakeUp ] };+    key <I152> {         [    XF86Explorer ] };+    key <I153> {         [        XF86Send ] };+    key <I155> {         [        XF86Xfer ] };+    key <I156> {         [     XF86Launch1 ] };+    key <I157> {         [     XF86Launch2 ] };+    key <I158> {         [         XF86WWW ] };+    key <I159> {         [         XF86DOS ] };+    key <I160> {         [ XF86ScreenSaver ] };+    key <I162> {         [ XF86RotateWindows ] };+    key <I163> {         [        XF86Mail ] };+    key <I164> {         [   XF86Favorites ] };+    key <I165> {         [  XF86MyComputer ] };+    key <I166> {         [        XF86Back ] };+    key <I167> {         [     XF86Forward ] };+    key <I169> {         [       XF86Eject ] };+    key <I170> {         [       XF86Eject,       XF86Eject ] };+    key <I171> {         [   XF86AudioNext ] };+    key <I172> {         [   XF86AudioPlay,  XF86AudioPause ] };+    key <I173> {         [   XF86AudioPrev ] };+    key <I174> {         [   XF86AudioStop,       XF86Eject ] };+    key <I175> {         [ XF86AudioRecord ] };+    key <I176> {         [ XF86AudioRewind ] };+    key <I177> {         [       XF86Phone ] };+    key <I179> {         [       XF86Tools ] };+    key <I180> {         [    XF86HomePage ] };+    key <I181> {         [      XF86Reload ] };+    key <I182> {         [       XF86Close ] };+    key <I185> {         [    XF86ScrollUp ] };+    key <I186> {         [  XF86ScrollDown ] };+    key <I187> {         [       parenleft ] };+    key <I188> {         [      parenright ] };+    key <I189> {         [         XF86New ] };+    key <I190> {         [            Redo ] };+    key <FK13> {         [       XF86Tools ] };+    key <FK14> {         [     XF86Launch5 ] };+    key <FK15> {         [     XF86Launch6 ] };+    key <FK16> {         [     XF86Launch7 ] };+    key <FK17> {         [     XF86Launch8 ] };+    key <FK18> {         [     XF86Launch9 ] };+    key <FK21> {         [ XF86TouchpadToggle ] };+    key <FK22> {         [  XF86TouchpadOn ] };+    key <FK23> {         [ XF86TouchpadOff ] };+    key <MDSW> {         [     Mode_switch ] };+    key  <ALT> {         [        NoSymbol,           Alt_L ] };+    key <META> {         [        NoSymbol,          Meta_L ] };+    key <SUPR> {         [        NoSymbol,         Super_L ] };+    key <HYPR> {         [        NoSymbol,         Hyper_L ] };+    key <I208> {         [   XF86AudioPlay ] };+    key <I209> {         [  XF86AudioPause ] };+    key <I210> {         [     XF86Launch3 ] };+    key <I211> {         [     XF86Launch4 ] };+    key <I212> {         [     XF86LaunchB ] };+    key <I213> {         [     XF86Suspend ] };+    key <I214> {         [       XF86Close ] };+    key <I215> {         [   XF86AudioPlay ] };+    key <I216> {         [ XF86AudioForward ] };+    key <I218> {         [           Print ] };+    key <I220> {         [      XF86WebCam ] };+    key <I223> {         [        XF86Mail ] };+    key <I224> {         [   XF86Messenger ] };+    key <I225> {         [      XF86Search ] };+    key <I226> {         [          XF86Go ] };+    key <I227> {         [     XF86Finance ] };+    key <I228> {         [        XF86Game ] };+    key <I229> {         [        XF86Shop ] };+    key <I231> {         [          Cancel ] };+    key <I232> {         [ XF86MonBrightnessDown ] };+    key <I233> {         [ XF86MonBrightnessUp ] };+    key <I234> {         [  XF86AudioMedia ] };+    key <I235> {         [     XF86Display ] };+    key <I236> {         [ XF86KbdLightOnOff ] };+    key <I237> {         [ XF86KbdBrightnessDown ] };+    key <I238> {         [ XF86KbdBrightnessUp ] };+    key <I239> {         [        XF86Send ] };+    key <I240> {         [       XF86Reply ] };+    key <I241> {         [ XF86MailForward ] };+    key <I242> {         [        XF86Save ] };+    key <I243> {         [   XF86Documents ] };+    key <I244> {         [     XF86Battery ] };+    key <I245> {         [   XF86Bluetooth ] };+    key <I246> {         [        XF86WLAN ] };+    modifier_map Control { <LCTL> };+    modifier_map Shift { <LFSH> };+    modifier_map Shift { <RTSH> };+    modifier_map Mod1 { <LALT> };+    modifier_map Control { <CAPS> };+    modifier_map Mod2 { <NMLK> };+    modifier_map Mod5 { <LVL3> };+    modifier_map Control { <RCTL> };+    modifier_map Mod1 { <RALT> };+    modifier_map Mod4 { <LWIN> };+    modifier_map Mod5 { <MDSW> };+    modifier_map Mod1 { <META> };+    modifier_map Mod4 { <SUPR> };+    modifier_map Mod4 { <HYPR> };+};++xkb_geometry "pc(pc105)" {++    width=       470;+    height=      180;++    alias <AC00> = <CAPS>;+    alias <AA00> = <LCTL>;++    baseColor=   "white";+    labelColor=  "black";+    xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";+    description= "Generic 105";++    shape "NORM" {+        corner= 1,+        { [  18,  18 ] },+        { [   2,   1 ], [  16,  16 ] }+    };+    shape "BKSP" {+        corner= 1,+        { [  38,  18 ] },+        { [   2,   1 ], [  36,  16 ] }+    };+    shape "TABK" {+        corner= 1,+        { [  28,  18 ] },+        { [   2,   1 ], [  26,  16 ] }+    };+    shape "BKSL" {+        corner= 1,+        { [  28,  18 ] },+        { [   2,   1 ], [  26,  16 ] }+    };+    shape "RTRN" {+        corner= 1,+        { [   0,   0 ], [  28,   0 ], [  28,  37 ], [   5,  37 ],+          [   5,  18 ], [   0,  18 ] },+        { [   2,   1 ], [  26,   1 ], [  26,  35 ], [   7,  35 ],+          [   7,  16 ], [   2,  16 ] },+        approx= { [   5,   0 ], [  28,  37 ] }+    };+    shape "CAPS" {+        corner= 1,+        { [  33,  18 ] },+        { [   2,   1 ], [  31,  16 ] }+    };+    shape "LFSH" {+        corner= 1,+        { [  25,  18 ] },+        { [   2,   1 ], [  23,  16 ] }+    };+    shape "RTSH" {+        corner= 1,+        { [  50,  18 ] },+        { [   2,   1 ], [  48,  16 ] }+    };+    shape "MODK" {+        corner= 1,+        { [  27,  18 ] },+        { [   2,   1 ], [  25,  16 ] }+    };+    shape "SMOD" {+        corner= 1,+        { [  23,  18 ] },+        { [   2,   1 ], [  21,  16 ] }+    };+    shape "SPCE" {+        corner= 1,+        { [ 113,  18 ] },+        { [   2,   1 ], [ 111,  16 ] }+    };+    shape "KP0" {+        corner= 1,+        { [  37,  18 ] },+        { [   2,   1 ], [  35,  16 ] }+    };+    shape "KPAD" {+        corner= 1,+        { [  18,  37 ] },+        { [   2,   1 ], [  16,  35 ] }+    };+    shape "LEDS" { { [  75,  20 ] } };+    shape "LED" { { [   5,   1 ] } };+    section "Function" {+        key.color= "grey20";+        priority=  7;+        top=       22;+        left=      19;+        width=     351;+        height=    19;+        row {+            top=  1;+            left= 1;+            keys {+                {  <ESC>, "NORM",   1 },+                { <FK01>, "NORM",  20, color="white" },+                { <FK02>, "NORM",   1, color="white" },+                { <FK03>, "NORM",   1, color="white" },+                { <FK04>, "NORM",   1, color="white" },+                { <FK05>, "NORM",  11, color="white" },+                { <FK06>, "NORM",   1, color="white" },+                { <FK07>, "NORM",   1, color="white" },+                { <FK08>, "NORM",   1, color="white" },+                { <FK09>, "NORM",  11, color="white" },+                { <FK10>, "NORM",   1, color="white" },+                { <FK11>, "NORM",   1, color="white" },+                { <FK12>, "NORM",   1, color="white" },+                { <PRSC>, "NORM",   8, color="white" },+                { <SCLK>, "NORM",   1, color="white" },+                { <PAUS>, "NORM",   1, color="white" }+            };+        };+    }; // End of "Function" section++    section "Alpha" {+        key.color= "white";+        priority=  8;+        top=       61;+        left=      19;+        width=     287;+        height=    95;+        row {+            top=  1;+            left= 1;+            keys {+                { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },+                { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },+                { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },+                { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },+                { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },+                { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },+                { <AE12>, "NORM",   1 },+                { <BKSP>, "BKSP",   1, color="grey20" }+            };+        };+        row {+            top=  20;+            left= 1;+            keys {+                {  <TAB>, "TABK",   1, color="grey20" },+                { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },+                { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },+                { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },+                { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },+                { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },+                { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },+                { <RTRN>, "RTRN",   1, color="grey20" }+            };+        };+        row {+            top=  39;+            left= 1;+            keys {+                { <CAPS>, "CAPS",   1, color="grey20" },+                { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },+                { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },+                { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },+                { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },+                { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },+                { <AC11>, "NORM",   1 }, { <BKSL>, "NORM",   1 }+            };+        };+        row {+            top=  58;+            left= 1;+            keys {+                { <LFSH>, "LFSH",   1, color="grey20" },+                { <LSGT>, "NORM",   1 }, { <AB01>, "NORM",   1 },+                { <AB02>, "NORM",   1 }, { <AB03>, "NORM",   1 },+                { <AB04>, "NORM",   1 }, { <AB05>, "NORM",   1 },+                { <AB06>, "NORM",   1 }, { <AB07>, "NORM",   1 },+                { <AB08>, "NORM",   1 }, { <AB09>, "NORM",   1 },+                { <AB10>, "NORM",   1 },+                { <RTSH>, "RTSH",   1, color="grey20" }+            };+        };+        row {+            top=  77;+            left= 1;+            keys {+                { <LCTL>, "MODK",   1, color="grey20" },+                { <LWIN>, "SMOD",   1, color="grey20" },+                { <LALT>, "SMOD",   1, color="grey20" },+                { <SPCE>, "SPCE",   1 },+                { <RALT>, "SMOD",   1, color="grey20" },+                { <RWIN>, "SMOD",   1, color="grey20" },+                { <MENU>, "SMOD",   1, color="grey20" },+                { <RCTL>, "SMOD",   1, color="grey20" }+            };+        };+    }; // End of "Alpha" section++    section "Editing" {+        key.color= "grey20";+        priority=  9;+        top=       61;+        left=      312;+        width=     58;+        height=    95;+        row {+            top=  1;+            left= 1;+            keys {+                {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },+                { <PGUP>, "NORM",   1 }+            };+        };+        row {+            top=  20;+            left= 1;+            keys {+                { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },+                { <PGDN>, "NORM",   1 }+            };+        };+        row {+            top=  58;+            left= 20;+            keys {+                {   <UP>, "NORM",   1 }+            };+        };+        row {+            top=  77;+            left= 1;+            keys {+                { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },+                { <RGHT>, "NORM",   1 }+            };+        };+    }; // End of "Editing" section++    section "Keypad" {+        key.color= "grey20";+        priority=  10;+        top=       61;+        left=      376;+        width=     77;+        height=    95;+        row {+            top=  1;+            left= 1;+            keys {+                { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },+                { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }+            };+        };+        row {+            top=  20;+            left= 1;+            keys {+                {  <KP7>, "NORM",   1, color="white" },+                {  <KP8>, "NORM",   1, color="white" },+                {  <KP9>, "NORM",   1, color="white" },+                { <KPAD>, "KPAD",   1 }+            };+        };+        row {+            top=  39;+            left= 1;+            keys {+                {  <KP4>, "NORM",   1, color="white" },+                {  <KP5>, "NORM",   1, color="white" },+                {  <KP6>, "NORM",   1, color="white" }+            };+        };+        row {+            top=  58;+            left= 1;+            keys {+                {  <KP1>, "NORM",   1, color="white" },+                {  <KP2>, "NORM",   1, color="white" },+                {  <KP3>, "NORM",   1, color="white" },+                { <KPEN>, "KPAD",   1 }+            };+        };+        row {+            top=  77;+            left= 1;+            keys {+                {  <KP0>, "KP0",   1, color="white" },+                { <KPDL>, "NORM",   1, color="white" }+            };+        };+    }; // End of "Keypad" section++    solid "LedPanel" {+        top=      22;+        left=     377;+        priority= 0;+        color= "grey10";+        shape= "LEDS";+    };+    indicator "Num Lock" {+        top=      37;+        left=     382;+        priority= 1;+        onColor= "green";+        offColor= "green30";+        shape= "LED";+    };+    indicator "Caps Lock" {+        top=      37;+        left=     407;+        priority= 2;+        onColor= "green";+        offColor= "green30";+        shape= "LED";+    };+    indicator "Scroll Lock" {+        top=      37;+        left=     433;+        priority= 3;+        onColor= "green";+        offColor= "green30";+        shape= "LED";+    };+    text "NumLockLabel" {+        top=      25;+        left=     378;+        priority= 4;+        width=  19.8;+        height=  10;+        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";+        text=  "Num\nLock";+    };+    text "CapsLockLabel" {+        top=      25;+        left=     403;+        priority= 5;+        width=  26.4;+        height=  10;+        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";+        text=  "Caps\nLock";+    };+    text "ScrollLockLabel" {+        top=      25;+        left=     428;+        priority= 6;+        width=  39.6;+        height=  10;+        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";+        text=  "Scroll\nLock";+    };+};++};
+ data/keymaps/divide-by-zero.xkb view
@@ -0,0 +1,21 @@+xkb_keymap {+	xkb_keycodes {+		 <ESC> = 1;+	};++	xkb_types {+		virtual_modifiers NumLock;+	};++	xkb_compatibility {+		virtual_modifiers NumLock;+		interpret KP_1+AnyOfOrNone(all) {+			repeat= True;+			action= MovePtr(x=(1/0),y=+1);+		};+	};++	xkb_symbols {+		key <HYPR> {	[        NoSymbol,         Hyper_L ] };+	};+};
+ data/keymaps/no-types.xkb view
@@ -0,0 +1,1025 @@+xkb_keymap {+	xkb_keycodes {+		minimum = 8;+		maximum = 255;+		 <ESC> = 9;+		<AE01> = 10;+		<AE02> = 11;+		<AE03> = 12;+		<AE04> = 13;+		<AE05> = 14;+		<AE06> = 15;+		<AE07> = 16;+		<AE08> = 17;+		<AE09> = 18;+		<AE10> = 19;+		<AE11> = 20;+		<AE12> = 21;+		<BKSP> = 22;+		 <TAB> = 23;+		<AD01> = 24;+		<AD02> = 25;+		<AD03> = 26;+		<AD04> = 27;+		<AD05> = 28;+		<AD06> = 29;+		<AD07> = 30;+		<AD08> = 31;+		<AD09> = 32;+		<AD10> = 33;+		<AD11> = 34;+		<AD12> = 35;+		<RTRN> = 36;+		<LCTL> = 37;+		<AC01> = 38;+		<AC02> = 39;+		<AC03> = 40;+		<AC04> = 41;+		<AC05> = 42;+		<AC06> = 43;+		<AC07> = 44;+		<AC08> = 45;+		<AC09> = 46;+		<AC10> = 47;+		<AC11> = 48;+		<TLDE> = 49;+		<LFSH> = 50;+		<BKSL> = 51;+		<AB01> = 52;+		<AB02> = 53;+		<AB03> = 54;+		<AB04> = 55;+		<AB05> = 56;+		<AB06> = 57;+		<AB07> = 58;+		<AB08> = 59;+		<AB09> = 60;+		<AB10> = 61;+		<RTSH> = 62;+		<KPMU> = 63;+		<LALT> = 64;+		<SPCE> = 65;+		<CAPS> = 66;+		<FK01> = 67;+		<FK02> = 68;+		<FK03> = 69;+		<FK04> = 70;+		<FK05> = 71;+		<FK06> = 72;+		<FK07> = 73;+		<FK08> = 74;+		<FK09> = 75;+		<FK10> = 76;+		<NMLK> = 77;+		<SCLK> = 78;+		 <KP7> = 79;+		 <KP8> = 80;+		 <KP9> = 81;+		<KPSU> = 82;+		 <KP4> = 83;+		 <KP5> = 84;+		 <KP6> = 85;+		<KPAD> = 86;+		 <KP1> = 87;+		 <KP2> = 88;+		 <KP3> = 89;+		 <KP0> = 90;+		<KPDL> = 91;+		<LVL3> = 92;+		<LSGT> = 94;+		<FK11> = 95;+		<FK12> = 96;+		<AB11> = 97;+		<KATA> = 98;+		<HIRA> = 99;+		<HENK> = 100;+		<HKTG> = 101;+		<MUHE> = 102;+		<JPCM> = 103;+		<KPEN> = 104;+		<RCTL> = 105;+		<KPDV> = 106;+		<PRSC> = 107;+		<RALT> = 108;+		<LNFD> = 109;+		<HOME> = 110;+		  <UP> = 111;+		<PGUP> = 112;+		<LEFT> = 113;+		<RGHT> = 114;+		 <END> = 115;+		<DOWN> = 116;+		<PGDN> = 117;+		 <INS> = 118;+		<DELE> = 119;+		<I120> = 120;+		<MUTE> = 121;+		<VOL-> = 122;+		<VOL+> = 123;+		<POWR> = 124;+		<KPEQ> = 125;+		<I126> = 126;+		<PAUS> = 127;+		<I128> = 128;+		<I129> = 129;+		<HNGL> = 130;+		<HJCV> = 131;+		<AE13> = 132;+		<LWIN> = 133;+		<RWIN> = 134;+		<COMP> = 135;+		<STOP> = 136;+		<AGAI> = 137;+		<PROP> = 138;+		<UNDO> = 139;+		<FRNT> = 140;+		<COPY> = 141;+		<OPEN> = 142;+		<PAST> = 143;+		<FIND> = 144;+		 <CUT> = 145;+		<HELP> = 146;+		<I147> = 147;+		<I148> = 148;+		<I149> = 149;+		<I150> = 150;+		<I151> = 151;+		<I152> = 152;+		<I153> = 153;+		<I154> = 154;+		<I155> = 155;+		<I156> = 156;+		<I157> = 157;+		<I158> = 158;+		<I159> = 159;+		<I160> = 160;+		<I161> = 161;+		<I162> = 162;+		<I163> = 163;+		<I164> = 164;+		<I165> = 165;+		<I166> = 166;+		<I167> = 167;+		<I168> = 168;+		<I169> = 169;+		<I170> = 170;+		<I171> = 171;+		<I172> = 172;+		<I173> = 173;+		<I174> = 174;+		<I175> = 175;+		<I176> = 176;+		<I177> = 177;+		<I178> = 178;+		<I179> = 179;+		<I180> = 180;+		<I181> = 181;+		<I182> = 182;+		<I183> = 183;+		<I184> = 184;+		<I185> = 185;+		<I186> = 186;+		<I187> = 187;+		<I188> = 188;+		<I189> = 189;+		<I190> = 190;+		<FK13> = 191;+		<FK14> = 192;+		<FK15> = 193;+		<FK16> = 194;+		<FK17> = 195;+		<FK18> = 196;+		<FK19> = 197;+		<FK20> = 198;+		<FK21> = 199;+		<FK22> = 200;+		<FK23> = 201;+		<FK24> = 202;+		<MDSW> = 203;+		 <ALT> = 204;+		<META> = 205;+		<SUPR> = 206;+		<HYPR> = 207;+		<I208> = 208;+		<I209> = 209;+		<I210> = 210;+		<I211> = 211;+		<I212> = 212;+		<I213> = 213;+		<I214> = 214;+		<I215> = 215;+		<I216> = 216;+		<I217> = 217;+		<I218> = 218;+		<I219> = 219;+		<I220> = 220;+		<I221> = 221;+		<I222> = 222;+		<I223> = 223;+		<I224> = 224;+		<I225> = 225;+		<I226> = 226;+		<I227> = 227;+		<I228> = 228;+		<I229> = 229;+		<I230> = 230;+		<I231> = 231;+		<I232> = 232;+		<I233> = 233;+		<I234> = 234;+		<I235> = 235;+		<I236> = 236;+		<I237> = 237;+		<I238> = 238;+		<I239> = 239;+		<I240> = 240;+		<I241> = 241;+		<I242> = 242;+		<I243> = 243;+		<I244> = 244;+		<I245> = 245;+		<I246> = 246;+		<I247> = 247;+		<I248> = 248;+		<I249> = 249;+		<I250> = 250;+		<I251> = 251;+		<I252> = 252;+		<I253> = 253;+		indicator 1 = "Caps Lock";+		indicator 2 = "Num Lock";+		indicator 3 = "Scroll Lock";+		indicator 4 = "Compose";+		indicator 5 = "Kana";+		indicator 6 = "Sleep";+		indicator 7 = "Suspend";+		indicator 8 = "Mute";+		indicator 9 = "Misc";+		indicator 10 = "Mail";+		indicator 11 = "Charging";+		indicator 12 = "Shift Lock";+		indicator 13 = "Group 2";+		indicator 14 = "Mouse Keys";+		alias <AC12> = <BKSL>;+		alias <MENU> = <COMP>;+		alias <HZTG> = <TLDE>;+		alias <LMTA> = <LWIN>;+		alias <RMTA> = <RWIN>;+		alias <ALGR> = <RALT>;+		alias <KPPT> = <I129>;+		alias <LatQ> = <AD01>;+		alias <LatW> = <AD02>;+		alias <LatE> = <AD03>;+		alias <LatR> = <AD04>;+		alias <LatT> = <AD05>;+		alias <LatY> = <AD06>;+		alias <LatU> = <AD07>;+		alias <LatI> = <AD08>;+		alias <LatO> = <AD09>;+		alias <LatP> = <AD10>;+		alias <LatA> = <AC01>;+		alias <LatS> = <AC02>;+		alias <LatD> = <AC03>;+		alias <LatF> = <AC04>;+		alias <LatG> = <AC05>;+		alias <LatH> = <AC06>;+		alias <LatJ> = <AC07>;+		alias <LatK> = <AC08>;+		alias <LatL> = <AC09>;+		alias <LatZ> = <AB01>;+		alias <LatX> = <AB02>;+		alias <LatC> = <AB03>;+		alias <LatV> = <AB04>;+		alias <LatB> = <AB05>;+		alias <LatN> = <AB06>;+		alias <LatM> = <AB07>;+	};++	xkb_types {+	};++	xkb_compatibility {+		virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;++		interpret.useModMapMods= AnyLevel;+		interpret.repeat= false;+		interpret.locking= false;+		interpret ISO_Level2_Latch+Exactly(Shift) {+			useModMapMods=level1;+			action= LatchMods(modifiers=Shift,clearLocks,latchToLock);+		};+		interpret Shift_Lock+AnyOf(Shift+Lock) {+			action= LockMods(modifiers=Shift);+		};+		interpret Num_Lock+AnyOf(all) {+			virtualModifier= NumLock;+			action= LockMods(modifiers=NumLock);+		};+		interpret ISO_Lock+AnyOf(all) {+                        action= NoAction();+		};+		interpret ISO_Level3_Shift+AnyOf(all) {+			virtualModifier= LevelThree;+			useModMapMods=level1;+			action= SetMods(modifiers=LevelThree,clearLocks);+		};+		interpret ISO_Level3_Latch+AnyOf(all) {+			virtualModifier= LevelThree;+			useModMapMods=level1;+			action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+		};+		interpret ISO_Level3_Lock+AnyOf(all) {+			virtualModifier= LevelThree;+			useModMapMods=level1;+			action= LockMods(modifiers=LevelThree);+		};+		interpret Alt_L+AnyOf(all) {+			virtualModifier= Alt;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Alt_R+AnyOf(all) {+			virtualModifier= Alt;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Meta_L+AnyOf(all) {+			virtualModifier= Meta;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Meta_R+AnyOf(all) {+			virtualModifier= Meta;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Super_L+AnyOf(all) {+			virtualModifier= Super;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Super_R+AnyOf(all) {+			virtualModifier= Super;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Hyper_L+AnyOf(all) {+			virtualModifier= Hyper;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Hyper_R+AnyOf(all) {+			virtualModifier= Hyper;+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		interpret Scroll_Lock+AnyOf(all) {+			virtualModifier= ScrollLock;+			action= LockMods(modifiers=modMapMods);+		};+		interpret ISO_Level5_Shift+AnyOf(all) {+			virtualModifier= LevelFive;+			useModMapMods=level1;+			action= SetMods(modifiers=LevelFive,clearLocks);+		};+		interpret ISO_Level5_Latch+AnyOf(all) {+			virtualModifier= LevelFive;+			action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+		};+		interpret ISO_Level5_Lock+AnyOf(all) {+			virtualModifier= LevelFive;+			action= LockMods(modifiers=LevelFive);+		};+		interpret Mode_switch+AnyOfOrNone(all) {+			virtualModifier= AltGr;+			useModMapMods=level1;+			action= SetGroup(group=+1);+		};+		interpret ISO_Level3_Shift+AnyOfOrNone(all) {+			action= SetMods(modifiers=LevelThree,clearLocks);+		};+		interpret ISO_Level3_Latch+AnyOfOrNone(all) {+			action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+		};+		interpret ISO_Level3_Lock+AnyOfOrNone(all) {+			action= LockMods(modifiers=LevelThree);+		};+		interpret ISO_Group_Latch+AnyOfOrNone(all) {+			virtualModifier= AltGr;+			useModMapMods=level1;+			action= LatchGroup(group=2);+		};+		interpret ISO_Next_Group+AnyOfOrNone(all) {+			virtualModifier= AltGr;+			useModMapMods=level1;+			action= LockGroup(group=+1);+		};+		interpret ISO_Prev_Group+AnyOfOrNone(all) {+			virtualModifier= AltGr;+			useModMapMods=level1;+			action= LockGroup(group=-1);+		};+		interpret ISO_First_Group+AnyOfOrNone(all) {+			action= LockGroup(group=1);+		};+		interpret ISO_Last_Group+AnyOfOrNone(all) {+			action= LockGroup(group=2);+		};+		interpret KP_1+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=+1);+		};+		interpret KP_End+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=+1);+		};+		interpret KP_2+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+0,y=+1);+		};+		interpret KP_Down+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+0,y=+1);+		};+		interpret KP_3+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=+1);+		};+		interpret KP_Next+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=+1);+		};+		interpret KP_4+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=+0);+		};+		interpret KP_Left+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=+0);+		};+		interpret KP_6+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=+0);+		};+		interpret KP_Right+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=+0);+		};+		interpret KP_7+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=-1);+		};+		interpret KP_Home+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=-1);+		};+		interpret KP_8+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+0,y=-1);+		};+		interpret KP_Up+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+0,y=-1);+		};+		interpret KP_9+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=-1);+		};+		interpret KP_Prior+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=-1);+		};+		interpret KP_5+AnyOfOrNone(all) {+			repeat= true;+			action= PtrBtn(button=default);+		};+		interpret KP_Begin+AnyOfOrNone(all) {+			repeat= true;+			action= PtrBtn(button=default);+		};+		interpret KP_F2+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=1);+		};+		interpret KP_Divide+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=1);+		};+		interpret KP_F3+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=2);+		};+		interpret KP_Multiply+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=2);+		};+		interpret KP_F4+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=3);+		};+		interpret KP_Subtract+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=3);+		};+		interpret KP_Separator+AnyOfOrNone(all) {+			repeat= true;+			action= PtrBtn(button=default,count=2);+		};+		interpret KP_Add+AnyOfOrNone(all) {+			repeat= true;+			action= PtrBtn(button=default,count=2);+		};+		interpret KP_0+AnyOfOrNone(all) {+			repeat= true;+			action= LockPtrBtn(button=default,affect=lock);+		};+		interpret KP_Insert+AnyOfOrNone(all) {+			repeat= true;+			action= LockPtrBtn(button=default,affect=lock);+		};+		interpret KP_Decimal+AnyOfOrNone(all) {+			repeat= true;+			action= LockPtrBtn(button=default,affect=unlock);+		};+		interpret KP_Delete+AnyOfOrNone(all) {+			repeat= true;+			action= LockPtrBtn(button=default,affect=unlock);+		};+		interpret F25+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=1);+		};+		interpret F26+AnyOfOrNone(all) {+			repeat= true;+			action= SetPtrDflt(affect=button,button=2);+		};+		interpret F27+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=-1);+		};+		interpret F29+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=-1);+		};+		interpret F31+AnyOfOrNone(all) {+			repeat= true;+			action= PtrBtn(button=default);+		};+		interpret F33+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=-1,y=+1);+		};+		interpret F35+AnyOfOrNone(all) {+			repeat= true;+			action= MovePtr(x=+1,y=+1);+		};+		interpret Pointer_Button_Dflt+AnyOfOrNone(all) {+			action= PtrBtn(button=default);+		};+		interpret Pointer_Button1+AnyOfOrNone(all) {+			action= PtrBtn(button=1);+		};+		interpret Pointer_Button2+AnyOfOrNone(all) {+			action= PtrBtn(button=2);+		};+		interpret Pointer_Button3+AnyOfOrNone(all) {+			action= PtrBtn(button=3);+		};+		interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {+			action= PtrBtn(button=default,count=2);+		};+		interpret Pointer_DblClick1+AnyOfOrNone(all) {+			action= PtrBtn(button=1,count=2);+		};+		interpret Pointer_DblClick2+AnyOfOrNone(all) {+			action= PtrBtn(button=2,count=2);+		};+		interpret Pointer_DblClick3+AnyOfOrNone(all) {+			action= PtrBtn(button=3,count=2);+		};+		interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {+			action= LockPtrBtn(button=default,affect=both);+		};+		interpret Pointer_Drag1+AnyOfOrNone(all) {+			action= LockPtrBtn(button=1,affect=both);+		};+		interpret Pointer_Drag2+AnyOfOrNone(all) {+			action= LockPtrBtn(button=2,affect=both);+		};+		interpret Pointer_Drag3+AnyOfOrNone(all) {+			action= LockPtrBtn(button=3,affect=both);+		};+		interpret Pointer_EnableKeys+AnyOfOrNone(all) {+			action= LockControls(controls=mouseKeys);+		};+		interpret Pointer_Accelerate+AnyOfOrNone(all) {+			action= LockControls(controls=mouseKeysAccel);+		};+		interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {+			action= SetPtrDflt(affect=button,button=+1);+		};+		interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {+			action= SetPtrDflt(affect=button,button=-1);+		};+		interpret AccessX_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=accessXKeys);+		};+		interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=accessXFeedback);+		};+		interpret RepeatKeys_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=repeatKeys);+		};+		interpret SlowKeys_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=slowKeys);+		};+		interpret BounceKeys_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=bounceKeys);+		};+		interpret StickyKeys_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=stickyKeys);+		};+		interpret MouseKeys_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=mouseKeys);+		};+		interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=mouseKeysAccel);+		};+		interpret Overlay1_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=none);+		};+		interpret Overlay2_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=none);+		};+		interpret AudibleBell_Enable+AnyOfOrNone(all) {+			action= LockControls(controls=audibleBell);+		};+		interpret Terminate_Server+AnyOfOrNone(all) {+			action= Terminate();+		};+		interpret Alt_L+AnyOfOrNone(all) {+			action= SetMods(modifiers=Alt,clearLocks);+		};+		interpret Alt_R+AnyOfOrNone(all) {+			action= SetMods(modifiers=Alt,clearLocks);+		};+		interpret Meta_L+AnyOfOrNone(all) {+			action= SetMods(modifiers=Meta,clearLocks);+		};+		interpret Meta_R+AnyOfOrNone(all) {+			action= SetMods(modifiers=Meta,clearLocks);+		};+		interpret Super_L+AnyOfOrNone(all) {+			action= SetMods(modifiers=Super,clearLocks);+		};+		interpret Super_R+AnyOfOrNone(all) {+			action= SetMods(modifiers=Super,clearLocks);+		};+		interpret Hyper_L+AnyOfOrNone(all) {+			action= SetMods(modifiers=Hyper,clearLocks);+		};+		interpret Hyper_R+AnyOfOrNone(all) {+			action= SetMods(modifiers=Hyper,clearLocks);+		};+		interpret Shift_L+AnyOfOrNone(all) {+			action= SetMods(modifiers=Shift,clearLocks);+		};+		interpret XF86Switch_VT_1+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=1,!same);+		};+		interpret XF86Switch_VT_2+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=2,!same);+		};+		interpret XF86Switch_VT_3+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=3,!same);+		};+		interpret XF86Switch_VT_4+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=4,!same);+		};+		interpret XF86Switch_VT_5+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=5,!same);+		};+		interpret XF86Switch_VT_6+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=6,!same);+		};+		interpret XF86Switch_VT_7+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=7,!same);+		};+		interpret XF86Switch_VT_8+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=8,!same);+		};+		interpret XF86Switch_VT_9+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=9,!same);+		};+		interpret XF86Switch_VT_10+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=10,!same);+		};+		interpret XF86Switch_VT_11+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=11,!same);+		};+		interpret XF86Switch_VT_12+AnyOfOrNone(all) {+			repeat= true;+			action= SwitchScreen(screen=12,!same);+		};+		interpret XF86LogGrabInfo+AnyOfOrNone(all) {+			repeat= true;+			action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);+		};+		interpret XF86LogWindowTree+AnyOfOrNone(all) {+			repeat= true;+			action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);+		};+		interpret XF86Next_VMode+AnyOfOrNone(all) {+			repeat= true;+			action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+		};+		interpret XF86Prev_VMode+AnyOfOrNone(all) {+			repeat= true;+			action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+		};+		interpret ISO_Level5_Shift+AnyOfOrNone(all) {+			action= SetMods(modifiers=LevelFive,clearLocks);+		};+		interpret ISO_Level5_Latch+AnyOfOrNone(all) {+			action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+		};+		interpret ISO_Level5_Lock+AnyOfOrNone(all) {+			action= LockMods(modifiers=LevelFive);+		};+		interpret Caps_Lock+AnyOfOrNone(all) {+			action= LockMods(modifiers=Lock);+		};+		interpret Any+Exactly(Lock) {+			action= LockMods(modifiers=Lock);+		};+		interpret Any+AnyOf(all) {+			action= SetMods(modifiers=modMapMods,clearLocks);+		};+		group 2 = AltGr;+		group 3 = AltGr;+		group 4 = AltGr;+		indicator "Caps Lock" {+			whichModState= locked;+			modifiers= Lock;+		};+		indicator "Num Lock" {+			whichModState= locked;+			modifiers= NumLock;+		};+		indicator "Scroll Lock" {+			whichModState= locked;+			modifiers= ScrollLock;+		};+		indicator "Shift Lock" {+			whichModState= locked;+			modifiers= Shift;+		};+		indicator "Group 2" {+			groups= 0xfe;+		};+		indicator "Mouse Keys" {+			controls= mouseKeys;+		};+	};++	xkb_symbols {+		name[group1]="English (US)";++		key  <ESC> {	[          Escape ] };+		key <AE01> {	[               1 ] };+		key <AE02> {	[               2 ] };+		key <AE03> {	[               3 ] };+		key <AE04> {	[               4 ] };+		key <AE05> {	[               5 ] };+		key <AE06> {	[               6 ] };+		key <AE07> {	[               7 ] };+		key <AE08> {	[               8 ] };+		key <AE09> {	[               9 ] };+		key <AE10> {	[               0 ] };+		key <AE11> {	[           minus ] };+		key <AE12> {	[           equal ] };+		key <BKSP> {	[       BackSpace ] };+		key  <TAB> {	[             Tab ] };+		key <AD01> {    [               q ] };+		key <AD02> {    [               w ] };+		key <AD03> {    [               e ] };+		key <AD04> {    [               r ] };+		key <AD05> {    [               t ] };+		key <AD06> {    [               y ] };+		key <AD07> {    [               u ] };+		key <AD08> {    [               i ] };+		key <AD09> {    [               o ] };+		key <AD10> {    [               p ] };+		key <AD11> {	[     bracketleft ] };+		key <AD12> {	[    bracketright ] };+		key <RTRN> {	[          Return ] };+		key <LCTL> {	[       Control_L ] };+		key <AC01> {    [               a ] };+		key <AC02> {    [               s ] };+		key <AC03> {    [               d ] };+		key <AC04> {    [               f ] };+		key <AC05> {    [               g ] };+		key <AC06> {    [               h ] };+		key <AC07> {    [               j ] };+		key <AC08> {    [               k ] };+		key <AC09> {    [               l ] };+		key <AC10> {	[       semicolon ] };+		key <AC11> {	[      apostrophe ] };+		key <TLDE> {	[           grave ] };+		key <LFSH> {	[         Shift_L ] };+		key <BKSL> {	[        NoSymbol ] };+		key <AB01> {    [               z ] };+		key <AB02> {    [               x ] };+		key <AB03> {    [               c ] };+		key <AB04> {    [               v ] };+		key <AB05> {    [               b ] };+		key <AB06> {    [               n ] };+		key <AB07> {    [               m ] };+		key <AB08> {	[           comma ] };+		key <AB09> {	[          period ] };+		key <AB10> {	[           slash ] };+		key <RTSH> {	[         Shift_R ] };+		key <KPMU> {    [     KP_Multiply ] };+		key <LALT> {	[           Alt_L ] };+		key <SPCE> {	[           space ] };+		key <CAPS> {	[       Caps_Lock ] };+		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 <NMLK> {	[        Num_Lock ] };+		key <SCLK> {	[     Scroll_Lock ] };+		key  <KP7> {	[         KP_Home ] };+		key  <KP8> {	[           KP_Up ] };+		key  <KP9> {	[        KP_Prior ] };+		key <KPSU> {    [     KP_Subtract ] };+		key  <KP4> {	[         KP_Left ] };+		key  <KP5> {	[        KP_Begin ] };+		key  <KP6> {	[        KP_Right ] };+		key <KPAD> {    [          KP_Add ] };+		key  <KP1> {	[          KP_End ] };+		key  <KP2> {	[         KP_Down ] };+		key  <KP3> {	[         KP_Next ] };+		key  <KP0> {	[       KP_Insert ] };+		key <KPDL> {	[       KP_Delete ] };+		key <LVL3> {	[ ISO_Level3_Shift ] };+		key <LSGT> {    [            less ] };+		key <FK11> {    [             F11 ] };+		key <FK12> {    [             F12 ] };+		key <KATA> {	[        Katakana ] };+		key <HIRA> {	[        Hiragana ] };+		key <HENK> {	[     Henkan_Mode ] };+		key <HKTG> {	[ Hiragana_Katakana ] };+		key <MUHE> {	[        Muhenkan ] };+		key <KPEN> {	[        KP_Enter ] };+		key <RCTL> {	[       Control_R ] };+		key <KPDV> {    [       KP_Divide ] };+		key <PRSC> {    [           Print ] };+		key <RALT> {    [           Alt_R ] };+		key <LNFD> {	[        Linefeed ] };+		key <HOME> {	[            Home ] };+		key   <UP> {	[              Up ] };+		key <PGUP> {	[           Prior ] };+		key <LEFT> {	[            Left ] };+		key <RGHT> {	[           Right ] };+		key  <END> {	[             End ] };+		key <DOWN> {	[            Down ] };+		key <PGDN> {	[            Next ] };+		key  <INS> {	[          Insert ] };+		key <DELE> {	[          Delete ] };+		key <MUTE> {	[   XF86AudioMute ] };+		key <VOL-> {	[ XF86AudioLowerVolume ] };+		key <VOL+> {	[ XF86AudioRaiseVolume ] };+		key <POWR> {	[    XF86PowerOff ] };+		key <KPEQ> {	[        KP_Equal ] };+		key <I126> {	[       plusminus ] };+		key <PAUS> {    [           Pause ] };+		key <I128> {	[     XF86LaunchA ] };+		key <I129> {	[       KP_Decimal] };+		key <HNGL> {	[          Hangul ] };+		key <HJCV> {	[    Hangul_Hanja ] };+		key <LWIN> {	[         Super_L ] };+		key <RWIN> {	[         Super_R ] };+		key <COMP> {	[            Menu ] };+		key <STOP> {	[          Cancel ] };+		key <AGAI> {	[            Redo ] };+		key <PROP> {	[        SunProps ] };+		key <UNDO> {	[            Undo ] };+		key <FRNT> {	[        SunFront ] };+		key <COPY> {	[        XF86Copy ] };+		key <OPEN> {	[         SunOpen ] };+		key <PAST> {	[       XF86Paste ] };+		key <FIND> {	[            Find ] };+		key  <CUT> {	[         XF86Cut ] };+		key <HELP> {	[            Help ] };+		key <I147> {	[      XF86MenuKB ] };+		key <I148> {	[  XF86Calculator ] };+		key <I150> {	[       XF86Sleep ] };+		key <I151> {	[      XF86WakeUp ] };+		key <I152> {	[    XF86Explorer ] };+		key <I153> {	[        XF86Send ] };+		key <I155> {	[        XF86Xfer ] };+		key <I156> {	[     XF86Launch1 ] };+		key <I157> {	[     XF86Launch2 ] };+		key <I158> {	[         XF86WWW ] };+		key <I159> {	[         XF86DOS ] };+		key <I160> {	[ XF86ScreenSaver ] };+		key <I162> {	[ XF86RotateWindows ] };+		key <I163> {	[        XF86Mail ] };+		key <I164> {	[   XF86Favorites ] };+		key <I165> {	[  XF86MyComputer ] };+		key <I166> {	[        XF86Back ] };+		key <I167> {	[     XF86Forward ] };+		key <I169> {	[       XF86Eject ] };+		key <I170> {	[       XF86Eject ] };+		key <I171> {	[   XF86AudioNext ] };+		key <I172> {	[   XF86AudioPlay ] };+		key <I173> {	[   XF86AudioPrev ] };+		key <I174> {	[   XF86AudioStop ] };+		key <I175> {	[ XF86AudioRecord ] };+		key <I176> {	[ XF86AudioRewind ] };+		key <I177> {	[       XF86Phone ] };+		key <I179> {	[       XF86Tools ] };+		key <I180> {	[    XF86HomePage ] };+		key <I181> {	[      XF86Reload ] };+		key <I182> {	[       XF86Close ] };+		key <I185> {	[    XF86ScrollUp ] };+		key <I186> {	[  XF86ScrollDown ] };+		key <I187> {	[       parenleft ] };+		key <I188> {	[      parenright ] };+		key <I189> {	[         XF86New ] };+		key <I190> {	[            Redo ] };+		key <FK13> {	[       XF86Tools ] };+		key <FK14> {	[     XF86Launch5 ] };+		key <FK15> {	[     XF86Launch6 ] };+		key <FK16> {	[     XF86Launch7 ] };+		key <FK17> {	[     XF86Launch8 ] };+		key <FK18> {	[     XF86Launch9 ] };+		key <FK21> {	[ XF86TouchpadToggle ] };+		key <FK22> {	[  XF86TouchpadOn ] };+		key <FK23> {	[ XF86TouchpadOff ] };+		key <MDSW> {	[     Mode_switch ] };+		key  <ALT> {	[        NoSymbol ] };+		key <META> {	[        NoSymbol ] };+		key <SUPR> {	[        NoSymbol ] };+		key <HYPR> {	[        NoSymbol ] };+		key <I208> {	[   XF86AudioPlay ] };+		key <I209> {	[  XF86AudioPause ] };+		key <I210> {	[     XF86Launch3 ] };+		key <I211> {	[     XF86Launch4 ] };+		key <I212> {	[     XF86LaunchB ] };+		key <I213> {	[     XF86Suspend ] };+		key <I214> {	[       XF86Close ] };+		key <I215> {	[   XF86AudioPlay ] };+		key <I216> {	[ XF86AudioForward ] };+		key <I218> {	[           Print ] };+		key <I220> {	[      XF86WebCam ] };+		key <I223> {	[        XF86Mail ] };+		key <I224> {	[   XF86Messenger ] };+		key <I225> {	[      XF86Search ] };+		key <I226> {	[          XF86Go ] };+		key <I227> {	[     XF86Finance ] };+		key <I228> {	[        XF86Game ] };+		key <I229> {	[        XF86Shop ] };+		key <I231> {	[          Cancel ] };+		key <I232> {	[ XF86MonBrightnessDown ] };+		key <I233> {	[ XF86MonBrightnessUp ] };+		key <I234> {	[  XF86AudioMedia ] };+		key <I235> {	[     XF86Display ] };+		key <I236> {	[ XF86KbdLightOnOff ] };+		key <I237> {	[ XF86KbdBrightnessDown ] };+		key <I238> {	[ XF86KbdBrightnessUp ] };+		key <I239> {	[        XF86Send ] };+		key <I240> {	[       XF86Reply ] };+		key <I241> {	[ XF86MailForward ] };+		key <I242> {	[        XF86Save ] };+		key <I243> {	[   XF86Documents ] };+		key <I244> {	[     XF86Battery ] };+		key <I245> {	[   XF86Bluetooth ] };+		key <I246> {	[        XF86WLAN ] };+		modifier_map Control { <LCTL> };+		modifier_map Shift { <LFSH> };+		modifier_map Shift { <RTSH> };+		modifier_map Mod1 { <LALT> };+		modifier_map Lock { <CAPS> };+		modifier_map Mod2 { <NMLK> };+		modifier_map Mod5 { <LVL3> };+		modifier_map Control { <RCTL> };+		modifier_map Mod1 { <RALT> };+		modifier_map Mod4 { <LWIN> };+		modifier_map Mod4 { <RWIN> };+		modifier_map Mod5 { <MDSW> };+		modifier_map Mod1 { <META> };+		modifier_map Mod4 { <SUPR> };+		modifier_map Mod4 { <HYPR> };+	};+};
+ data/keymaps/quartz.xkb view
@@ -0,0 +1,1139 @@+xkb_keymap {
+xkb_keycodes "empty_aliases(qwerty)" {
+    minimum = 8;
+    maximum = 255;
+    virtual indicator 1 = "Caps Lock";
+    virtual indicator 2 = "Num Lock";
+    virtual indicator 3 = "Shift Lock";
+    virtual indicator 4 = "Group 2";
+    virtual indicator 5 = "Mouse Keys";
+    virtual indicator 6 = "Scroll Lock";
+};
+
+xkb_types "complete" {
+
+    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
+
+    type "ONE_LEVEL" {
+        modifiers= none;
+        level_name[Level1]= "Any";
+    };
+    type "TWO_LEVEL" {
+        modifiers= Shift;
+        map[Shift]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+    };
+    type "ALPHABETIC" {
+        modifiers= Shift+Lock;
+        map[Shift]= Level2;
+        map[Lock]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Caps";
+    };
+    type "KEYPAD" {
+        modifiers= Shift+NumLock;
+        map[Shift]= Level2;
+        map[NumLock]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Number";
+    };
+    type "SHIFT+ALT" {
+        modifiers= Shift+Alt;
+        map[Shift+Alt]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift+Alt";
+    };
+    type "PC_CONTROL_LEVEL2" {
+        modifiers= Control;
+        map[Control]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Control";
+    };
+    type "PC_LCONTROL_LEVEL2" {
+        modifiers= LControl;
+        map[LControl]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "LControl";
+    };
+    type "PC_RCONTROL_LEVEL2" {
+        modifiers= RControl;
+        map[RControl]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "RControl";
+    };
+    type "PC_ALT_LEVEL2" {
+        modifiers= Alt;
+        map[Alt]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Alt";
+    };
+    type "PC_LALT_LEVEL2" {
+        modifiers= LAlt;
+        map[LAlt]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "LAlt";
+    };
+    type "PC_RALT_LEVEL2" {
+        modifiers= RAlt;
+        map[RAlt]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "RAlt";
+    };
+    type "CTRL+ALT" {
+        modifiers= Control+Alt;
+        map[Control+Alt]= Level2;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Ctrl+Alt";
+    };
+    type "LOCAL_EIGHT_LEVEL" {
+        modifiers= Shift+Lock+Control+LevelThree;
+        map[Shift]= Level2;
+        map[Lock]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+Lock+LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Lock+LevelThree]= Level4;
+        map[Control]= Level5;
+        map[Shift+Lock+Control]= Level5;
+        map[Shift+Control]= Level6;
+        map[Lock+Control]= Level6;
+        map[Control+LevelThree]= Level7;
+        map[Shift+Lock+Control+LevelThree]= Level7;
+        map[Shift+Control+LevelThree]= Level8;
+        map[Lock+Control+LevelThree]= Level8;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Level3";
+        level_name[Level4]= "Shift Level3";
+        level_name[Level5]= "Ctrl";
+        level_name[Level6]= "Shift Ctrl";
+        level_name[Level7]= "Level3 Ctrl";
+        level_name[Level8]= "Shift Level3 Ctrl";
+    };
+    type "THREE_LEVEL" {
+        modifiers= Shift+LevelThree;
+        map[Shift]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level3;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Level3";
+    };
+    type "EIGHT_LEVEL" {
+        modifiers= Shift+LevelThree+LevelFive;
+        map[Shift]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[LevelFive]= Level5;
+        map[Shift+LevelFive]= Level6;
+        map[LevelThree+LevelFive]= Level7;
+        map[Shift+LevelThree+LevelFive]= Level8;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+        level_name[Level5]= "X";
+        level_name[Level6]= "X Shift";
+        level_name[Level7]= "X Alt Base";
+        level_name[Level8]= "X Shift Alt";
+    };
+    type "EIGHT_LEVEL_ALPHABETIC" {
+        modifiers= Shift+Lock+LevelThree+LevelFive;
+        map[Shift]= Level2;
+        map[Lock]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Lock+LevelThree]= Level4;
+        map[Shift+Lock+LevelThree]= Level3;
+        map[LevelFive]= Level5;
+        map[Shift+LevelFive]= Level6;
+        map[Lock+LevelFive]= Level6;
+        map[LevelThree+LevelFive]= Level7;
+        map[Shift+LevelThree+LevelFive]= Level8;
+        map[Lock+LevelThree+LevelFive]= Level8;
+        map[Shift+Lock+LevelThree+LevelFive]= Level7;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+        level_name[Level5]= "X";
+        level_name[Level6]= "X Shift";
+        level_name[Level7]= "X Alt Base";
+        level_name[Level8]= "X Shift Alt";
+    };
+    type "EIGHT_LEVEL_SEMIALPHABETIC" {
+        modifiers= Shift+Lock+LevelThree+LevelFive;
+        map[Shift]= Level2;
+        map[Lock]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Lock+LevelThree]= Level3;
+        preserve[Lock+LevelThree]= Lock;
+        map[Shift+Lock+LevelThree]= Level4;
+        preserve[Shift+Lock+LevelThree]= Lock;
+        map[LevelFive]= Level5;
+        map[Shift+LevelFive]= Level6;
+        map[Lock+LevelFive]= Level6;
+        preserve[Lock+LevelFive]= Lock;
+        map[LevelThree+LevelFive]= Level7;
+        map[Shift+LevelThree+LevelFive]= Level8;
+        map[Lock+LevelThree+LevelFive]= Level7;
+        preserve[Lock+LevelThree+LevelFive]= Lock;
+        map[Shift+Lock+LevelThree+LevelFive]= Level8;
+        preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
+        map[Shift+Lock+LevelFive]= Level1;
+        preserve[Shift+Lock+LevelFive]= Lock;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+        level_name[Level5]= "X";
+        level_name[Level6]= "X Shift";
+        level_name[Level7]= "X Alt Base";
+        level_name[Level8]= "X Shift Alt";
+    };
+    type "FOUR_LEVEL" {
+        modifiers= Shift+LevelThree;
+        map[Shift]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+    };
+    type "FOUR_LEVEL_ALPHABETIC" {
+        modifiers= Shift+Lock+LevelThree;
+        map[Shift]= Level2;
+        map[Lock]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Lock+LevelThree]= Level4;
+        map[Shift+Lock+LevelThree]= Level3;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+    };
+    type "FOUR_LEVEL_SEMIALPHABETIC" {
+        modifiers= Shift+Lock+LevelThree;
+        map[Shift]= Level2;
+        map[Lock]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Lock+LevelThree]= Level3;
+        preserve[Lock+LevelThree]= Lock;
+        map[Shift+Lock+LevelThree]= Level4;
+        preserve[Shift+Lock+LevelThree]= Lock;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+    };
+    type "FOUR_LEVEL_MIXED_KEYPAD" {
+        modifiers= Shift+NumLock+LevelThree;
+        map[NumLock]= Level2;
+        map[Shift]= Level2;
+        map[LevelThree]= Level3;
+        map[NumLock+LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Shift+NumLock+LevelThree]= Level4;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Number";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+    };
+    type "FOUR_LEVEL_X" {
+        modifiers= Shift+Control+Alt+LevelThree;
+        map[LevelThree]= Level2;
+        map[Shift+LevelThree]= Level3;
+        map[Control+Alt]= Level4;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Alt Base";
+        level_name[Level3]= "Shift Alt";
+        level_name[Level4]= "Ctrl+Alt";
+    };
+    type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
+        modifiers= Shift+Lock+LevelThree;
+        map[Shift]= Level2;
+        map[Lock]= Level4;
+        preserve[Lock]= Lock;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Lock+LevelThree]= Level3;
+        preserve[Lock+LevelThree]= Lock;
+        map[Shift+Lock+LevelThree]= Level3;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "AltGr Base";
+        level_name[Level4]= "Shift AltGr";
+    };
+    type "FOUR_LEVEL_PLUS_LOCK" {
+        modifiers= Shift+Lock+LevelThree;
+        map[Shift]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[Lock]= Level5;
+        map[Shift+Lock]= Level2;
+        map[Lock+LevelThree]= Level3;
+        map[Shift+Lock+LevelThree]= Level4;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Shift";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Shift Alt";
+        level_name[Level5]= "Lock";
+    };
+    type "FOUR_LEVEL_KEYPAD" {
+        modifiers= Shift+NumLock+LevelThree;
+        map[Shift]= Level2;
+        map[NumLock]= Level2;
+        map[LevelThree]= Level3;
+        map[Shift+LevelThree]= Level4;
+        map[NumLock+LevelThree]= Level4;
+        map[Shift+NumLock+LevelThree]= Level3;
+        level_name[Level1]= "Base";
+        level_name[Level2]= "Number";
+        level_name[Level3]= "Alt Base";
+        level_name[Level4]= "Alt Number";
+    };
+};
+
+xkb_compatibility "complete" {
+
+    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
+
+    interpret.useModMapMods= AnyLevel;
+    interpret.repeat= False;
+    interpret.locking= False;
+    interpret ISO_Level2_Latch+Exactly(Shift) {
+        useModMapMods=level1;
+        action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
+    };
+    interpret Shift_Lock+AnyOf(Shift+Lock) {
+        action= LockMods(modifiers=Shift);
+    };
+    interpret Num_Lock+AnyOf(all) {
+        virtualModifier= NumLock;
+        action= LockMods(modifiers=NumLock);
+    };
+    interpret ISO_Lock+AnyOf(all) {
+        action= ISOLock(modifiers=modMapMods,affect=all);
+    };
+    interpret ISO_Level3_Shift+AnyOf(all) {
+        virtualModifier= LevelThree;
+        useModMapMods=level1;
+        action= SetMods(modifiers=LevelThree,clearLocks);
+    };
+    interpret ISO_Level3_Latch+AnyOf(all) {
+        virtualModifier= LevelThree;
+        useModMapMods=level1;
+        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
+    };
+    interpret ISO_Level3_Lock+AnyOf(all) {
+        virtualModifier= LevelThree;
+        useModMapMods=level1;
+        action= LockMods(modifiers=LevelThree);
+    };
+    interpret Alt_L+AnyOf(all) {
+        virtualModifier= Alt;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Alt_R+AnyOf(all) {
+        virtualModifier= Alt;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Meta_L+AnyOf(all) {
+        virtualModifier= Meta;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Meta_R+AnyOf(all) {
+        virtualModifier= Meta;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Super_L+AnyOf(all) {
+        virtualModifier= Super;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Super_R+AnyOf(all) {
+        virtualModifier= Super;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Hyper_L+AnyOf(all) {
+        virtualModifier= Hyper;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Hyper_R+AnyOf(all) {
+        virtualModifier= Hyper;
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    interpret Scroll_Lock+AnyOf(all) {
+        virtualModifier= ScrollLock;
+        action= LockMods(modifiers=modMapMods);
+    };
+    interpret ISO_Level5_Shift+AnyOf(all) {
+        virtualModifier= LevelFive;
+        useModMapMods=level1;
+        action= SetMods(modifiers=LevelFive,clearLocks);
+    };
+    interpret ISO_Level5_Latch+AnyOf(all) {
+        virtualModifier= LevelFive;
+        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
+    };
+    interpret ISO_Level5_Lock+AnyOf(all) {
+        virtualModifier= LevelFive;
+        action= LockMods(modifiers=LevelFive);
+    };
+    interpret Mode_switch+AnyOfOrNone(all) {
+        virtualModifier= AltGr;
+        useModMapMods=level1;
+        action= SetGroup(group=+1);
+    };
+    interpret ISO_Level3_Shift+AnyOfOrNone(all) {
+        action= SetMods(modifiers=LevelThree,clearLocks);
+    };
+    interpret ISO_Level3_Latch+AnyOfOrNone(all) {
+        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
+    };
+    interpret ISO_Level3_Lock+AnyOfOrNone(all) {
+        action= LockMods(modifiers=LevelThree);
+    };
+    interpret ISO_Group_Latch+AnyOfOrNone(all) {
+        virtualModifier= AltGr;
+        useModMapMods=level1;
+        action= LatchGroup(group=2);
+    };
+    interpret ISO_Next_Group+AnyOfOrNone(all) {
+        virtualModifier= AltGr;
+        useModMapMods=level1;
+        action= LockGroup(group=+1);
+    };
+    interpret ISO_Prev_Group+AnyOfOrNone(all) {
+        virtualModifier= AltGr;
+        useModMapMods=level1;
+        action= LockGroup(group=-1);
+    };
+    interpret ISO_First_Group+AnyOfOrNone(all) {
+        action= LockGroup(group=1);
+    };
+    interpret ISO_Last_Group+AnyOfOrNone(all) {
+        action= LockGroup(group=2);
+    };
+    interpret KP_1+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=+1);
+    };
+    interpret KP_End+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=+1);
+    };
+    interpret KP_2+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+0,y=+1);
+    };
+    interpret KP_Down+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+0,y=+1);
+    };
+    interpret KP_3+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=+1);
+    };
+    interpret KP_Next+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=+1);
+    };
+    interpret KP_4+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=+0);
+    };
+    interpret KP_Left+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=+0);
+    };
+    interpret KP_6+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=+0);
+    };
+    interpret KP_Right+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=+0);
+    };
+    interpret KP_7+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=-1);
+    };
+    interpret KP_Home+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=-1);
+    };
+    interpret KP_8+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+0,y=-1);
+    };
+    interpret KP_Up+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+0,y=-1);
+    };
+    interpret KP_9+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=-1);
+    };
+    interpret KP_Prior+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=-1);
+    };
+    interpret KP_5+AnyOfOrNone(all) {
+        repeat= True;
+        action= PtrBtn(button=default);
+    };
+    interpret KP_Begin+AnyOfOrNone(all) {
+        repeat= True;
+        action= PtrBtn(button=default);
+    };
+    interpret KP_F2+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=1);
+    };
+    interpret KP_Divide+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=1);
+    };
+    interpret KP_F3+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=2);
+    };
+    interpret KP_Multiply+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=2);
+    };
+    interpret KP_F4+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=3);
+    };
+    interpret KP_Subtract+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=3);
+    };
+    interpret KP_Separator+AnyOfOrNone(all) {
+        repeat= True;
+        action= PtrBtn(button=default,count=2);
+    };
+    interpret KP_Add+AnyOfOrNone(all) {
+        repeat= True;
+        action= PtrBtn(button=default,count=2);
+    };
+    interpret KP_0+AnyOfOrNone(all) {
+        repeat= True;
+        action= LockPtrBtn(button=default,affect=lock);
+    };
+    interpret KP_Insert+AnyOfOrNone(all) {
+        repeat= True;
+        action= LockPtrBtn(button=default,affect=lock);
+    };
+    interpret KP_Decimal+AnyOfOrNone(all) {
+        repeat= True;
+        action= LockPtrBtn(button=default,affect=unlock);
+    };
+    interpret KP_Delete+AnyOfOrNone(all) {
+        repeat= True;
+        action= LockPtrBtn(button=default,affect=unlock);
+    };
+    interpret F25+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=1);
+    };
+    interpret F26+AnyOfOrNone(all) {
+        repeat= True;
+        action= SetPtrDflt(affect=button,button=2);
+    };
+    interpret F27+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=-1);
+    };
+    interpret F29+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=-1);
+    };
+    interpret F31+AnyOfOrNone(all) {
+        repeat= True;
+        action= PtrBtn(button=default);
+    };
+    interpret F33+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=-1,y=+1);
+    };
+    interpret F35+AnyOfOrNone(all) {
+        repeat= True;
+        action= MovePtr(x=+1,y=+1);
+    };
+    interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
+        action= PtrBtn(button=default);
+    };
+    interpret Pointer_Button1+AnyOfOrNone(all) {
+        action= PtrBtn(button=1);
+    };
+    interpret Pointer_Button2+AnyOfOrNone(all) {
+        action= PtrBtn(button=2);
+    };
+    interpret Pointer_Button3+AnyOfOrNone(all) {
+        action= PtrBtn(button=3);
+    };
+    interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
+        action= PtrBtn(button=default,count=2);
+    };
+    interpret Pointer_DblClick1+AnyOfOrNone(all) {
+        action= PtrBtn(button=1,count=2);
+    };
+    interpret Pointer_DblClick2+AnyOfOrNone(all) {
+        action= PtrBtn(button=2,count=2);
+    };
+    interpret Pointer_DblClick3+AnyOfOrNone(all) {
+        action= PtrBtn(button=3,count=2);
+    };
+    interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
+        action= LockPtrBtn(button=default,affect=both);
+    };
+    interpret Pointer_Drag1+AnyOfOrNone(all) {
+        action= LockPtrBtn(button=1,affect=both);
+    };
+    interpret Pointer_Drag2+AnyOfOrNone(all) {
+        action= LockPtrBtn(button=2,affect=both);
+    };
+    interpret Pointer_Drag3+AnyOfOrNone(all) {
+        action= LockPtrBtn(button=3,affect=both);
+    };
+    interpret Pointer_EnableKeys+AnyOfOrNone(all) {
+        action= LockControls(controls=MouseKeys);
+    };
+    interpret Pointer_Accelerate+AnyOfOrNone(all) {
+        action= LockControls(controls=MouseKeysAccel);
+    };
+    interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
+        action= SetPtrDflt(affect=button,button=+1);
+    };
+    interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
+        action= SetPtrDflt(affect=button,button=-1);
+    };
+    interpret AccessX_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=AccessXKeys);
+    };
+    interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=AccessXFeedback);
+    };
+    interpret RepeatKeys_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=RepeatKeys);
+    };
+    interpret SlowKeys_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=SlowKeys);
+    };
+    interpret BounceKeys_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=BounceKeys);
+    };
+    interpret StickyKeys_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=StickyKeys);
+    };
+    interpret MouseKeys_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=MouseKeys);
+    };
+    interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=MouseKeysAccel);
+    };
+    interpret Overlay1_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=Overlay1);
+    };
+    interpret Overlay2_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=Overlay2);
+    };
+    interpret AudibleBell_Enable+AnyOfOrNone(all) {
+        action= LockControls(controls=AudibleBell);
+    };
+    interpret Terminate_Server+AnyOfOrNone(all) {
+        action= Terminate();
+    };
+    interpret Alt_L+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Alt,clearLocks);
+    };
+    interpret Alt_R+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Alt,clearLocks);
+    };
+    interpret Meta_L+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Meta,clearLocks);
+    };
+    interpret Meta_R+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Meta,clearLocks);
+    };
+    interpret Super_L+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Super,clearLocks);
+    };
+    interpret Super_R+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Super,clearLocks);
+    };
+    interpret Hyper_L+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Hyper,clearLocks);
+    };
+    interpret Hyper_R+AnyOfOrNone(all) {
+        action= SetMods(modifiers=Hyper,clearLocks);
+    };
+    interpret XF86Switch_VT_1+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=1,!same);
+    };
+    interpret XF86Switch_VT_2+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=2,!same);
+    };
+    interpret XF86Switch_VT_3+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=3,!same);
+    };
+    interpret XF86Switch_VT_4+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=4,!same);
+    };
+    interpret XF86Switch_VT_5+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=5,!same);
+    };
+    interpret XF86Switch_VT_6+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=6,!same);
+    };
+    interpret XF86Switch_VT_7+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=7,!same);
+    };
+    interpret XF86Switch_VT_8+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=8,!same);
+    };
+    interpret XF86Switch_VT_9+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=9,!same);
+    };
+    interpret XF86Switch_VT_10+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=10,!same);
+    };
+    interpret XF86Switch_VT_11+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=11,!same);
+    };
+    interpret XF86Switch_VT_12+AnyOfOrNone(all) {
+        repeat= True;
+        action= SwitchScreen(screen=12,!same);
+    };
+    interpret XF86Ungrab+AnyOfOrNone(all) {
+        repeat= True;
+        action= Private(type=0x86,data[0]=0x55,data[1]=0x6e,data[2]=0x67,data[3]=0x72,data[4]=0x61,data[5]=0x62,data[6]=0x00);
+    };
+    interpret XF86ClearGrab+AnyOfOrNone(all) {
+        repeat= True;
+        action= Private(type=0x86,data[0]=0x43,data[1]=0x6c,data[2]=0x73,data[3]=0x47,data[4]=0x72,data[5]=0x62,data[6]=0x00);
+    };
+    interpret XF86Next_VMode+AnyOfOrNone(all) {
+        repeat= True;
+        action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
+    };
+    interpret XF86Prev_VMode+AnyOfOrNone(all) {
+        repeat= True;
+        action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
+    };
+    interpret ISO_Level5_Shift+AnyOfOrNone(all) {
+        action= SetMods(modifiers=LevelFive,clearLocks);
+    };
+    interpret ISO_Level5_Latch+AnyOfOrNone(all) {
+        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
+    };
+    interpret ISO_Level5_Lock+AnyOfOrNone(all) {
+        action= LockMods(modifiers=LevelFive);
+    };
+    interpret Any+Exactly(Lock) {
+        action= LockMods(modifiers=Lock);
+    };
+    interpret Any+AnyOf(all) {
+        action= SetMods(modifiers=modMapMods,clearLocks);
+    };
+    group 2 = AltGr;
+    group 3 = AltGr;
+    group 4 = AltGr;
+    indicator "Caps Lock" {
+        !allowExplicit;
+        whichModState= locked;
+        modifiers= Lock;
+    };
+    indicator "Num Lock" {
+        !allowExplicit;
+        whichModState= locked;
+        modifiers= NumLock;
+    };
+    indicator "Shift Lock" {
+        !allowExplicit;
+        whichModState= locked;
+        modifiers= Shift;
+    };
+    indicator "Group 2" {
+        !allowExplicit;
+        groups= 0xfe;
+    };
+    indicator "Mouse Keys" {
+        indicatorDrivesKeyboard;
+        controls= mouseKeys;
+    };
+    indicator "Scroll Lock" {
+        whichModState= locked;
+        modifiers= ScrollLock;
+    };
+};
+
+xkb_symbols "unknown" {
+
+    key     <> {
+        type= "ALPHABETIC",
+        symbols[Group1]= [               a,               A ],
+        symbols[Group2]= [           aring,           Aring ]
+    };
+    modifier_map Mod2 { <> };
+};
+
+xkb_geometry "pc(pc104)" {
+
+    width=       470;
+    height=      180;
+
+    baseColor=   "white";
+    labelColor=  "black";
+    xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
+    description= "Generic 104";
+
+    shape "NORM" {
+        corner= 1,
+        { [  18,  18 ] },
+        { [   2,   1 ], [  16,  16 ] }
+    };
+    shape "BKSP" {
+        corner= 1,
+        { [  38,  18 ] },
+        { [   2,   1 ], [  36,  16 ] }
+    };
+    shape "TABK" {
+        corner= 1,
+        { [  28,  18 ] },
+        { [   2,   1 ], [  26,  16 ] }
+    };
+    shape "BKSL" {
+        corner= 1,
+        { [  28,  18 ] },
+        { [   2,   1 ], [  26,  16 ] }
+    };
+    shape "RTRN" {
+        corner= 1,
+        { [  42,  18 ] },
+        { [   2,   1 ], [  40,  16 ] }
+    };
+    shape "CAPS" {
+        corner= 1,
+        { [  33,  18 ] },
+        { [   2,   1 ], [  31,  16 ] }
+    };
+    shape "LFSH" {
+        corner= 1,
+        { [  42,  18 ] },
+        { [   2,   1 ], [  40,  16 ] }
+    };
+    shape "RTSH" {
+        corner= 1,
+        { [  52,  18 ] },
+        { [   2,   1 ], [  50,  16 ] }
+    };
+    shape "MODK" {
+        corner= 1,
+        { [  27,  18 ] },
+        { [   2,   1 ], [  25,  16 ] }
+    };
+    shape "SMOD" {
+        corner= 1,
+        { [  23,  18 ] },
+        { [   2,   1 ], [  21,  16 ] }
+    };
+    shape "SPCE" {
+        corner= 1,
+        { [ 113,  18 ] },
+        { [   2,   1 ], [ 111,  16 ] }
+    };
+    shape "KP0" {
+        corner= 1,
+        { [  37,  18 ] },
+        { [   2,   1 ], [  35,  16 ] }
+    };
+    shape "KPAD" {
+        corner= 1,
+        { [  18,  37 ] },
+        { [   2,   1 ], [  16,  35 ] }
+    };
+    shape "LEDS" { { [  75,  20 ] } };
+    shape "LED" { { [   5,   1 ] } };
+    section "Function" {
+        key.color= "grey20";
+        priority=  7;
+        top=       22;
+        left=      19;
+        width=     351;
+        height=    19;
+        row {
+            top=  1;
+            left= 1;
+            keys {
+                {  <ESC>, "NORM",   1 },
+                { <FK01>, "NORM",  20, color="white" },
+                { <FK02>, "NORM",   1, color="white" },
+                { <FK03>, "NORM",   1, color="white" },
+                { <FK04>, "NORM",   1, color="white" },
+                { <FK05>, "NORM",  11, color="white" },
+                { <FK06>, "NORM",   1, color="white" },
+                { <FK07>, "NORM",   1, color="white" },
+                { <FK08>, "NORM",   1, color="white" },
+                { <FK09>, "NORM",  11, color="white" },
+                { <FK10>, "NORM",   1, color="white" },
+                { <FK11>, "NORM",   1, color="white" },
+                { <FK12>, "NORM",   1, color="white" },
+                { <PRSC>, "NORM",   8, color="white" },
+                { <SCLK>, "NORM",   1, color="white" },
+                { <PAUS>, "NORM",   1, color="white" }
+            };
+        };
+    }; // End of "Function" section
+
+    section "Alpha" {
+        key.color= "white";
+        priority=  8;
+        top=       61;
+        left=      19;
+        width=     287;
+        height=    95;
+        row {
+            top=  1;
+            left= 1;
+            keys {
+                { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },
+                { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },
+                { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },
+                { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },
+                { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },
+                { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },
+                { <AE12>, "NORM",   1 },
+                { <BKSP>, "BKSP",   1, color="grey20" }
+            };
+        };
+        row {
+            top=  20;
+            left= 1;
+            keys {
+                {  <TAB>, "TABK",   1, color="grey20" },
+                { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },
+                { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },
+                { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },
+                { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },
+                { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },
+                { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },
+                { <BKSL>, "BKSL",   1 }
+            };
+        };
+        row {
+            top=  39;
+            left= 1;
+            keys {
+                { <CAPS>, "CAPS",   1, color="grey20" },
+                { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },
+                { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },
+                { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },
+                { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },
+                { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },
+                { <AC11>, "NORM",   1 },
+                { <RTRN>, "RTRN",   1, color="grey20" }
+            };
+        };
+        row {
+            top=  58;
+            left= 1;
+            keys {
+                { <LFSH>, "LFSH",   1, color="grey20" },
+                { <AB01>, "NORM",   1 }, { <AB02>, "NORM",   1 },
+                { <AB03>, "NORM",   1 }, { <AB04>, "NORM",   1 },
+                { <AB05>, "NORM",   1 }, { <AB06>, "NORM",   1 },
+                { <AB07>, "NORM",   1 }, { <AB08>, "NORM",   1 },
+                { <AB09>, "NORM",   1 }, { <AB10>, "NORM",   1 },
+                { <RTSH>, "RTSH",   1, color="grey20" }
+            };
+        };
+        row {
+            top=  77;
+            left= 1;
+            keys {
+                { <LCTL>, "MODK",   1, color="grey20" },
+                { <LWIN>, "SMOD",   1, color="grey20" },
+                { <LALT>, "SMOD",   1, color="grey20" },
+                { <SPCE>, "SPCE",   1 },
+                { <RALT>, "SMOD",   1, color="grey20" },
+                { <RWIN>, "SMOD",   1, color="grey20" },
+                { <MENU>, "SMOD",   1, color="grey20" },
+                { <RCTL>, "SMOD",   1, color="grey20" }
+            };
+        };
+    }; // End of "Alpha" section
+
+    section "Editing" {
+        key.color= "grey20";
+        priority=  9;
+        top=       61;
+        left=      312;
+        width=     58;
+        height=    95;
+        row {
+            top=  1;
+            left= 1;
+            keys {
+                {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },
+                { <PGUP>, "NORM",   1 }
+            };
+        };
+        row {
+            top=  20;
+            left= 1;
+            keys {
+                { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },
+                { <PGDN>, "NORM",   1 }
+            };
+        };
+        row {
+            top=  58;
+            left= 20;
+            keys {
+                {   <UP>, "NORM",   1 }
+            };
+        };
+        row {
+            top=  77;
+            left= 1;
+            keys {
+                { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },
+                { <RGHT>, "NORM",   1 }
+            };
+        };
+    }; // End of "Editing" section
+
+    section "Keypad" {
+        key.color= "grey20";
+        priority=  10;
+        top=       61;
+        left=      376;
+        width=     77;
+        height=    95;
+        row {
+            top=  1;
+            left= 1;
+            keys {
+                { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },
+                { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }
+            };
+        };
+        row {
+            top=  20;
+            left= 1;
+            keys {
+                {  <KP7>, "NORM",   1, color="white" },
+                {  <KP8>, "NORM",   1, color="white" },
+                {  <KP9>, "NORM",   1, color="white" },
+                { <KPAD>, "KPAD",   1 }
+            };
+        };
+        row {
+            top=  39;
+            left= 1;
+            keys {
+                {  <KP4>, "NORM",   1, color="white" },
+                {  <KP5>, "NORM",   1, color="white" },
+                {  <KP6>, "NORM",   1, color="white" }
+            };
+        };
+        row {
+            top=  58;
+            left= 1;
+            keys {
+                {  <KP1>, "NORM",   1, color="white" },
+                {  <KP2>, "NORM",   1, color="white" },
+                {  <KP3>, "NORM",   1, color="white" },
+                { <KPEN>, "KPAD",   1 }
+            };
+        };
+        row {
+            top=  77;
+            left= 1;
+            keys {
+                {  <KP0>, "KP0",   1, color="white" },
+                { <KPDL>, "NORM",   1, color="white" }
+            };
+        };
+    }; // End of "Keypad" section
+
+    solid "LedPanel" {
+        top=      22;
+        left=     377;
+        priority= 0;
+        color= "grey10";
+        shape= "LEDS";
+    };
+    indicator "Num Lock" {
+        top=      37;
+        left=     382;
+        priority= 1;
+        onColor= "green";
+        offColor= "green30";
+        shape= "LED";
+    };
+    indicator "Caps Lock" {
+        top=      37;
+        left=     407;
+        priority= 2;
+        onColor= "green";
+        offColor= "green30";
+        shape= "LED";
+    };
+    indicator "Scroll Lock" {
+        top=      37;
+        left=     433;
+        priority= 3;
+        onColor= "green";
+        offColor= "green30";
+        shape= "LED";
+    };
+    text "NumLockLabel" {
+        top=      25;
+        left=     378;
+        priority= 4;
+        width=  19.8;
+        height=  10;
+        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
+        text=  "Num\nLock";
+    };
+    text "CapsLockLabel" {
+        top=      25;
+        left=     403;
+        priority= 5;
+        width=  26.4;
+        height=  10;
+        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
+        text=  "Caps\nLock";
+    };
+    text "ScrollLockLabel" {
+        top=      25;
+        left=     428;
+        priority= 6;
+        width=  39.6;
+        height=  10;
+        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
+        text=  "Scroll\nLock";
+    };
+};
+
+};
+ data/keymaps/stringcomp.data view
@@ -0,0 +1,1913 @@+xkb_keymap {+xkb_keycodes "evdev_aliases(qwerty)" {+	minimum = 8;+	maximum = 255;+	<ESC>                = 9;+	<AE01>               = 10;+	<AE02>               = 11;+	<AE03>               = 12;+	<AE04>               = 13;+	<AE05>               = 14;+	<AE06>               = 15;+	<AE07>               = 16;+	<AE08>               = 17;+	<AE09>               = 18;+	<AE10>               = 19;+	<AE11>               = 20;+	<AE12>               = 21;+	<BKSP>               = 22;+	<TAB>                = 23;+	<AD01>               = 24;+	<AD02>               = 25;+	<AD03>               = 26;+	<AD04>               = 27;+	<AD05>               = 28;+	<AD06>               = 29;+	<AD07>               = 30;+	<AD08>               = 31;+	<AD09>               = 32;+	<AD10>               = 33;+	<AD11>               = 34;+	<AD12>               = 35;+	<RTRN>               = 36;+	<LCTL>               = 37;+	<AC01>               = 38;+	<AC02>               = 39;+	<AC03>               = 40;+	<AC04>               = 41;+	<AC05>               = 42;+	<AC06>               = 43;+	<AC07>               = 44;+	<AC08>               = 45;+	<AC09>               = 46;+	<AC10>               = 47;+	<AC11>               = 48;+	<TLDE>               = 49;+	<LFSH>               = 50;+	<BKSL>               = 51;+	<AB01>               = 52;+	<AB02>               = 53;+	<AB03>               = 54;+	<AB04>               = 55;+	<AB05>               = 56;+	<AB06>               = 57;+	<AB07>               = 58;+	<AB08>               = 59;+	<AB09>               = 60;+	<AB10>               = 61;+	<RTSH>               = 62;+	<KPMU>               = 63;+	<LALT>               = 64;+	<SPCE>               = 65;+	<CAPS>               = 66;+	<FK01>               = 67;+	<FK02>               = 68;+	<FK03>               = 69;+	<FK04>               = 70;+	<FK05>               = 71;+	<FK06>               = 72;+	<FK07>               = 73;+	<FK08>               = 74;+	<FK09>               = 75;+	<FK10>               = 76;+	<NMLK>               = 77;+	<SCLK>               = 78;+	<KP7>                = 79;+	<KP8>                = 80;+	<KP9>                = 81;+	<KPSU>               = 82;+	<KP4>                = 83;+	<KP5>                = 84;+	<KP6>                = 85;+	<KPAD>               = 86;+	<KP1>                = 87;+	<KP2>                = 88;+	<KP3>                = 89;+	<KP0>                = 90;+	<KPDL>               = 91;+	<LVL3>               = 92;+	<LSGT>               = 94;+	<FK11>               = 95;+	<FK12>               = 96;+	<AB11>               = 97;+	<KATA>               = 98;+	<HIRA>               = 99;+	<HENK>               = 100;+	<HKTG>               = 101;+	<MUHE>               = 102;+	<JPCM>               = 103;+	<KPEN>               = 104;+	<RCTL>               = 105;+	<KPDV>               = 106;+	<PRSC>               = 107;+	<RALT>               = 108;+	<LNFD>               = 109;+	<HOME>               = 110;+	<UP>                 = 111;+	<PGUP>               = 112;+	<LEFT>               = 113;+	<RGHT>               = 114;+	<END>                = 115;+	<DOWN>               = 116;+	<PGDN>               = 117;+	<INS>                = 118;+	<DELE>               = 119;+	<I120>               = 120;+	<MUTE>               = 121;+	<VOL->               = 122;+	<VOL+>               = 123;+	<POWR>               = 124;+	<KPEQ>               = 125;+	<I126>               = 126;+	<PAUS>               = 127;+	<I128>               = 128;+	<I129>               = 129;+	<HNGL>               = 130;+	<HJCV>               = 131;+	<AE13>               = 132;+	<LWIN>               = 133;+	<RWIN>               = 134;+	<COMP>               = 135;+	<STOP>               = 136;+	<AGAI>               = 137;+	<PROP>               = 138;+	<UNDO>               = 139;+	<FRNT>               = 140;+	<COPY>               = 141;+	<OPEN>               = 142;+	<PAST>               = 143;+	<FIND>               = 144;+	<CUT>                = 145;+	<HELP>               = 146;+	<I147>               = 147;+	<I148>               = 148;+	<I149>               = 149;+	<I150>               = 150;+	<I151>               = 151;+	<I152>               = 152;+	<I153>               = 153;+	<I154>               = 154;+	<I155>               = 155;+	<I156>               = 156;+	<I157>               = 157;+	<I158>               = 158;+	<I159>               = 159;+	<I160>               = 160;+	<I161>               = 161;+	<I162>               = 162;+	<I163>               = 163;+	<I164>               = 164;+	<I165>               = 165;+	<I166>               = 166;+	<I167>               = 167;+	<I168>               = 168;+	<I169>               = 169;+	<I170>               = 170;+	<I171>               = 171;+	<I172>               = 172;+	<I173>               = 173;+	<I174>               = 174;+	<I175>               = 175;+	<I176>               = 176;+	<I177>               = 177;+	<I178>               = 178;+	<I179>               = 179;+	<I180>               = 180;+	<I181>               = 181;+	<I182>               = 182;+	<I183>               = 183;+	<I184>               = 184;+	<I185>               = 185;+	<I186>               = 186;+	<I187>               = 187;+	<I188>               = 188;+	<I189>               = 189;+	<I190>               = 190;+	<FK13>               = 191;+	<FK14>               = 192;+	<FK15>               = 193;+	<FK16>               = 194;+	<FK17>               = 195;+	<FK18>               = 196;+	<FK19>               = 197;+	<FK20>               = 198;+	<FK21>               = 199;+	<FK22>               = 200;+	<FK23>               = 201;+	<FK24>               = 202;+	<MDSW>               = 203;+	<ALT>                = 204;+	<META>               = 205;+	<SUPR>               = 206;+	<HYPR>               = 207;+	<I208>               = 208;+	<I209>               = 209;+	<I210>               = 210;+	<I211>               = 211;+	<I212>               = 212;+	<I213>               = 213;+	<I214>               = 214;+	<I215>               = 215;+	<I216>               = 216;+	<I217>               = 217;+	<I218>               = 218;+	<I219>               = 219;+	<I220>               = 220;+	<I221>               = 221;+	<I222>               = 222;+	<I223>               = 223;+	<I224>               = 224;+	<I225>               = 225;+	<I226>               = 226;+	<I227>               = 227;+	<I228>               = 228;+	<I229>               = 229;+	<I230>               = 230;+	<I231>               = 231;+	<I232>               = 232;+	<I233>               = 233;+	<I234>               = 234;+	<I235>               = 235;+	<I236>               = 236;+	<I237>               = 237;+	<I238>               = 238;+	<I239>               = 239;+	<I240>               = 240;+	<I241>               = 241;+	<I242>               = 242;+	<I243>               = 243;+	<I244>               = 244;+	<I245>               = 245;+	<I246>               = 246;+	<I247>               = 247;+	<I248>               = 248;+	<I249>               = 249;+	<I250>               = 250;+	<I251>               = 251;+	<I252>               = 252;+	<I253>               = 253;+	indicator 1 = "Caps Lock";+	indicator 2 = "Num Lock";+	indicator 3 = "Scroll Lock";+	indicator 4 = "Compose";+	indicator 5 = "Kana";+	indicator 6 = "Sleep";+	indicator 7 = "Suspend";+	indicator 8 = "Mute";+	indicator 9 = "Misc";+	indicator 10 = "Mail";+	indicator 11 = "Charging";+	indicator 12 = "Shift Lock";+	indicator 13 = "Group 2";+	indicator 14 = "Mouse Keys";+	alias <AC12>         = <BKSL>;+	alias <MENU>         = <COMP>;+	alias <HZTG>         = <TLDE>;+	alias <LMTA>         = <LWIN>;+	alias <RMTA>         = <RWIN>;+	alias <ALGR>         = <RALT>;+	alias <KPPT>         = <I129>;+	alias <LatQ>         = <AD01>;+	alias <LatW>         = <AD02>;+	alias <LatE>         = <AD03>;+	alias <LatR>         = <AD04>;+	alias <LatT>         = <AD05>;+	alias <LatY>         = <AD06>;+	alias <LatU>         = <AD07>;+	alias <LatI>         = <AD08>;+	alias <LatO>         = <AD09>;+	alias <LatP>         = <AD10>;+	alias <LatA>         = <AC01>;+	alias <LatS>         = <AC02>;+	alias <LatD>         = <AC03>;+	alias <LatF>         = <AC04>;+	alias <LatG>         = <AC05>;+	alias <LatH>         = <AC06>;+	alias <LatJ>         = <AC07>;+	alias <LatK>         = <AC08>;+	alias <LatL>         = <AC09>;+	alias <LatZ>         = <AB01>;+	alias <LatX>         = <AB02>;+	alias <LatC>         = <AB03>;+	alias <LatV>         = <AB04>;+	alias <LatB>         = <AB05>;+	alias <LatN>         = <AB06>;+	alias <LatM>         = <AB07>;+};++xkb_types "complete" {+	virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;++	type "ONE_LEVEL" {+		modifiers= none;+		level_name[Level1]= "Any";+	};+	type "TWO_LEVEL" {+		modifiers= Shift;+		map[Shift]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+	};+	type "ALPHABETIC" {+		modifiers= Shift+Lock;+		map[Shift]= Level2;+		map[Lock]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "Caps";+	};+	type "SHIFT+ALT" {+		modifiers= Shift+Alt;+		map[Shift+Alt]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift+Alt";+	};+	type "PC_CONTROL_LEVEL2" {+		modifiers= Control;+		map[Control]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "Control";+	};+	type "PC_LCONTROL_LEVEL2" {+		modifiers= LControl;+		map[LControl]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "LControl";+	};+	type "PC_RCONTROL_LEVEL2" {+		modifiers= RControl;+		map[RControl]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "RControl";+	};+	type "PC_ALT_LEVEL2" {+		modifiers= Alt;+		map[Alt]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "Alt";+	};+	type "PC_LALT_LEVEL2" {+		modifiers= LAlt;+		map[LAlt]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "LAlt";+	};+	type "PC_RALT_LEVEL2" {+		modifiers= RAlt;+		map[RAlt]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "RAlt";+	};+	type "CTRL+ALT" {+		modifiers= Shift+Control+Alt+LevelThree;+		map[Shift]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Control+Alt]= Level5;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+		level_name[Level5]= "Ctrl+Alt";+	};+	type "LOCAL_EIGHT_LEVEL" {+		modifiers= Shift+Lock+Control+LevelThree;+		map[Shift]= Level2;+		map[Lock]= Level2;+		map[LevelThree]= Level3;+		map[Shift+Lock+LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Lock+LevelThree]= Level4;+		map[Control]= Level5;+		map[Shift+Lock+Control]= Level5;+		map[Shift+Control]= Level6;+		map[Lock+Control]= Level6;+		map[Control+LevelThree]= Level7;+		map[Shift+Lock+Control+LevelThree]= Level7;+		map[Shift+Control+LevelThree]= Level8;+		map[Lock+Control+LevelThree]= Level8;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Level3";+		level_name[Level4]= "Shift Level3";+		level_name[Level5]= "Ctrl";+		level_name[Level6]= "Shift Ctrl";+		level_name[Level7]= "Level3 Ctrl";+		level_name[Level8]= "Shift Level3 Ctrl";+	};+	type "THREE_LEVEL" {+		modifiers= Shift+LevelThree;+		map[Shift]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level3;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Level3";+	};+	type "EIGHT_LEVEL" {+		modifiers= Shift+LevelThree+LevelFive;+		map[Shift]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[LevelFive]= Level5;+		map[Shift+LevelFive]= Level6;+		map[LevelThree+LevelFive]= Level7;+		map[Shift+LevelThree+LevelFive]= Level8;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+		level_name[Level5]= "X";+		level_name[Level6]= "X Shift";+		level_name[Level7]= "X Alt Base";+		level_name[Level8]= "X Shift Alt";+	};+	type "EIGHT_LEVEL_ALPHABETIC" {+		modifiers= Shift+Lock+LevelThree+LevelFive;+		map[Shift]= Level2;+		map[Lock]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Lock+LevelThree]= Level4;+		map[Shift+Lock+LevelThree]= Level3;+		map[LevelFive]= Level5;+		map[Shift+LevelFive]= Level6;+		map[Lock+LevelFive]= Level6;+		map[LevelThree+LevelFive]= Level7;+		map[Shift+LevelThree+LevelFive]= Level8;+		map[Lock+LevelThree+LevelFive]= Level8;+		map[Shift+Lock+LevelThree+LevelFive]= Level7;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+		level_name[Level5]= "X";+		level_name[Level6]= "X Shift";+		level_name[Level7]= "X Alt Base";+		level_name[Level8]= "X Shift Alt";+	};+	type "EIGHT_LEVEL_SEMIALPHABETIC" {+		modifiers= Shift+Lock+LevelThree+LevelFive;+		map[Shift]= Level2;+		map[Lock]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Lock+LevelThree]= Level3;+		preserve[Lock+LevelThree]= Lock;+		map[Shift+Lock+LevelThree]= Level4;+		preserve[Shift+Lock+LevelThree]= Lock;+		map[LevelFive]= Level5;+		map[Shift+LevelFive]= Level6;+		map[Lock+LevelFive]= Level6;+		preserve[Lock+LevelFive]= Lock;+		map[LevelThree+LevelFive]= Level7;+		map[Shift+LevelThree+LevelFive]= Level8;+		map[Lock+LevelThree+LevelFive]= Level7;+		preserve[Lock+LevelThree+LevelFive]= Lock;+		map[Shift+Lock+LevelThree+LevelFive]= Level8;+		preserve[Shift+Lock+LevelThree+LevelFive]= Lock;+		map[Shift+Lock+LevelFive]= Level1;+		preserve[Shift+Lock+LevelFive]= Lock;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+		level_name[Level5]= "X";+		level_name[Level6]= "X Shift";+		level_name[Level7]= "X Alt Base";+		level_name[Level8]= "X Shift Alt";+	};+	type "FOUR_LEVEL" {+		modifiers= Shift+LevelThree;+		map[Shift]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+	};+	type "FOUR_LEVEL_ALPHABETIC" {+		modifiers= Shift+Lock+LevelThree;+		map[Shift]= Level2;+		map[Lock]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Lock+LevelThree]= Level4;+		map[Shift+Lock+LevelThree]= Level3;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+	};+	type "FOUR_LEVEL_SEMIALPHABETIC" {+		modifiers= Shift+Lock+LevelThree;+		map[Shift]= Level2;+		map[Lock]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Lock+LevelThree]= Level3;+		preserve[Lock+LevelThree]= Lock;+		map[Shift+Lock+LevelThree]= Level4;+		preserve[Shift+Lock+LevelThree]= Lock;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+	};+	type "FOUR_LEVEL_MIXED_KEYPAD" {+		modifiers= Shift+NumLock+LevelThree;+		map[NumLock]= Level2;+		map[Shift]= Level2;+		map[LevelThree]= Level3;+		map[NumLock+LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Shift+NumLock+LevelThree]= Level4;+		level_name[Level1]= "Base";+		level_name[Level2]= "Number";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+	};+	type "FOUR_LEVEL_X" {+		modifiers= Shift+Control+Alt+LevelThree;+		map[LevelThree]= Level2;+		map[Shift+LevelThree]= Level3;+		map[Control+Alt]= Level4;+		level_name[Level1]= "Base";+		level_name[Level2]= "Alt Base";+		level_name[Level3]= "Shift Alt";+		level_name[Level4]= "Ctrl+Alt";+	};+	type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {+		modifiers= Shift+Lock+LevelThree;+		map[Shift]= Level2;+		map[Lock]= Level4;+		preserve[Lock]= Lock;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Lock+LevelThree]= Level3;+		preserve[Lock+LevelThree]= Lock;+		map[Shift+Lock+LevelThree]= Level3;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "AltGr Base";+		level_name[Level4]= "Shift AltGr";+	};+	type "FOUR_LEVEL_PLUS_LOCK" {+		modifiers= Shift+Lock+LevelThree;+		map[Shift]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[Lock]= Level5;+		map[Shift+Lock]= Level2;+		map[Lock+LevelThree]= Level3;+		map[Shift+Lock+LevelThree]= Level4;+		level_name[Level1]= "Base";+		level_name[Level2]= "Shift";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Shift Alt";+		level_name[Level5]= "Lock";+	};+	type "KEYPAD" {+		modifiers= Shift+NumLock;+		map[Shift]= Level2;+		map[NumLock]= Level2;+		level_name[Level1]= "Base";+		level_name[Level2]= "Number";+	};+	type "FOUR_LEVEL_KEYPAD" {+		modifiers= Shift+NumLock+LevelThree;+		map[Shift]= Level2;+		map[NumLock]= Level2;+		map[LevelThree]= Level3;+		map[Shift+LevelThree]= Level4;+		map[NumLock+LevelThree]= Level4;+		map[Shift+NumLock+LevelThree]= Level3;+		level_name[Level1]= "Base";+		level_name[Level2]= "Number";+		level_name[Level3]= "Alt Base";+		level_name[Level4]= "Alt Number";+	};+};++xkb_compatibility "complete_caps(caps_lock)_4_misc(assign_shift_left_action)_4_level5(level5_lock)_4" {+	virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;++	interpret.useModMapMods= AnyLevel;+	interpret.repeat= False;+	interpret ISO_Level2_Latch+Exactly(Shift) {+		useModMapMods=level1;+		action= LatchMods(modifiers=Shift,clearLocks,latchToLock);+	};+	interpret Shift_Lock+AnyOf(Shift+Lock) {+		action= LockMods(modifiers=Shift);+	};+	interpret Num_Lock+AnyOf(all) {+		virtualModifier= NumLock;+		action= LockMods(modifiers=NumLock);+	};+	interpret ISO_Lock+AnyOf(all) {+		action= NoAction();+	};+	interpret ISO_Level3_Shift+AnyOf(all) {+		virtualModifier= LevelThree;+		useModMapMods=level1;+		action= SetMods(modifiers=LevelThree,clearLocks);+	};+	interpret ISO_Level3_Latch+AnyOf(all) {+		virtualModifier= LevelThree;+		useModMapMods=level1;+		action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+	};+	interpret ISO_Level3_Lock+AnyOf(all) {+		virtualModifier= LevelThree;+		useModMapMods=level1;+		action= LockMods(modifiers=LevelThree);+	};+	interpret Alt_L+AnyOf(all) {+		virtualModifier= Alt;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Alt_R+AnyOf(all) {+		virtualModifier= Alt;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Meta_L+AnyOf(all) {+		virtualModifier= Meta;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Meta_R+AnyOf(all) {+		virtualModifier= Meta;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Super_L+AnyOf(all) {+		virtualModifier= Super;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Super_R+AnyOf(all) {+		virtualModifier= Super;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Hyper_L+AnyOf(all) {+		virtualModifier= Hyper;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Hyper_R+AnyOf(all) {+		virtualModifier= Hyper;+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	interpret Scroll_Lock+AnyOf(all) {+		virtualModifier= ScrollLock;+		action= LockMods(modifiers=modMapMods);+	};+	interpret ISO_Level5_Shift+AnyOf(all) {+		virtualModifier= LevelFive;+		useModMapMods=level1;+		action= SetMods(modifiers=LevelFive,clearLocks);+	};+	interpret ISO_Level5_Latch+AnyOf(all) {+		virtualModifier= LevelFive;+		action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+	};+	interpret ISO_Level5_Lock+AnyOf(all) {+		virtualModifier= LevelFive;+		action= LockMods(modifiers=LevelFive);+	};+	interpret Mode_switch+AnyOfOrNone(all) {+		virtualModifier= AltGr;+		useModMapMods=level1;+		action= SetGroup(group=+1);+	};+	interpret ISO_Level3_Shift+AnyOfOrNone(all) {+		action= SetMods(modifiers=LevelThree,clearLocks);+	};+	interpret ISO_Level3_Latch+AnyOfOrNone(all) {+		action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+	};+	interpret ISO_Level3_Lock+AnyOfOrNone(all) {+		action= LockMods(modifiers=LevelThree);+	};+	interpret ISO_Group_Latch+AnyOfOrNone(all) {+		virtualModifier= AltGr;+		useModMapMods=level1;+		action= LatchGroup(group=2);+	};+	interpret ISO_Next_Group+AnyOfOrNone(all) {+		virtualModifier= AltGr;+		useModMapMods=level1;+		action= LockGroup(group=+1);+	};+	interpret ISO_Prev_Group+AnyOfOrNone(all) {+		virtualModifier= AltGr;+		useModMapMods=level1;+		action= LockGroup(group=-1);+	};+	interpret ISO_First_Group+AnyOfOrNone(all) {+		action= LockGroup(group=1);+	};+	interpret ISO_Last_Group+AnyOfOrNone(all) {+		action= LockGroup(group=2);+	};+	interpret KP_1+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=+1);+	};+	interpret KP_End+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=+1);+	};+	interpret KP_2+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+0,y=+1);+	};+	interpret KP_Down+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+0,y=+1);+	};+	interpret KP_3+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=+1);+	};+	interpret KP_Next+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=+1);+	};+	interpret KP_4+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=+0);+	};+	interpret KP_Left+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=+0);+	};+	interpret KP_6+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=+0);+	};+	interpret KP_Right+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=+0);+	};+	interpret KP_7+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=-1);+	};+	interpret KP_Home+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=-1);+	};+	interpret KP_8+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+0,y=-1);+	};+	interpret KP_Up+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+0,y=-1);+	};+	interpret KP_9+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=-1);+	};+	interpret KP_Prior+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=-1);+	};+	interpret KP_5+AnyOfOrNone(all) {+		repeat= True;+		action= PtrBtn(button=default);+	};+	interpret KP_Begin+AnyOfOrNone(all) {+		repeat= True;+		action= PtrBtn(button=default);+	};+	interpret KP_F2+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=1);+	};+	interpret KP_Divide+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=1);+	};+	interpret KP_F3+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=2);+	};+	interpret KP_Multiply+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=2);+	};+	interpret KP_F4+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=3);+	};+	interpret KP_Subtract+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=3);+	};+	interpret KP_Separator+AnyOfOrNone(all) {+		repeat= True;+		action= PtrBtn(button=default,count=2);+	};+	interpret KP_Add+AnyOfOrNone(all) {+		repeat= True;+		action= PtrBtn(button=default,count=2);+	};+	interpret KP_0+AnyOfOrNone(all) {+		repeat= True;+		action= LockPtrBtn(button=default,affect=lock);+	};+	interpret KP_Insert+AnyOfOrNone(all) {+		repeat= True;+		action= LockPtrBtn(button=default,affect=lock);+	};+	interpret KP_Decimal+AnyOfOrNone(all) {+		repeat= True;+		action= LockPtrBtn(button=default,affect=unlock);+	};+	interpret KP_Delete+AnyOfOrNone(all) {+		repeat= True;+		action= LockPtrBtn(button=default,affect=unlock);+	};+	interpret F25+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=1);+	};+	interpret F26+AnyOfOrNone(all) {+		repeat= True;+		action= SetPtrDflt(affect=button,button=2);+	};+	interpret F27+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=-1);+	};+	interpret F29+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=-1);+	};+	interpret F31+AnyOfOrNone(all) {+		repeat= True;+		action= PtrBtn(button=default);+	};+	interpret F33+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=-1,y=+1);+	};+	interpret F35+AnyOfOrNone(all) {+		repeat= True;+		action= MovePtr(x=+1,y=+1);+	};+	interpret Pointer_Button_Dflt+AnyOfOrNone(all) {+		action= PtrBtn(button=default);+	};+	interpret Pointer_Button1+AnyOfOrNone(all) {+		action= PtrBtn(button=1);+	};+	interpret Pointer_Button2+AnyOfOrNone(all) {+		action= PtrBtn(button=2);+	};+	interpret Pointer_Button3+AnyOfOrNone(all) {+		action= PtrBtn(button=3);+	};+	interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {+		action= PtrBtn(button=default,count=2);+	};+	interpret Pointer_DblClick1+AnyOfOrNone(all) {+		action= PtrBtn(button=1,count=2);+	};+	interpret Pointer_DblClick2+AnyOfOrNone(all) {+		action= PtrBtn(button=2,count=2);+	};+	interpret Pointer_DblClick3+AnyOfOrNone(all) {+		action= PtrBtn(button=3,count=2);+	};+	interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {+		action= LockPtrBtn(button=default);+	};+	interpret Pointer_Drag1+AnyOfOrNone(all) {+		action= LockPtrBtn(button=1);+	};+	interpret Pointer_Drag2+AnyOfOrNone(all) {+		action= LockPtrBtn(button=2);+	};+	interpret Pointer_Drag3+AnyOfOrNone(all) {+		action= LockPtrBtn(button=3);+	};+	interpret Pointer_EnableKeys+AnyOfOrNone(all) {+		action= LockControls(controls=MouseKeys);+	};+	interpret Pointer_Accelerate+AnyOfOrNone(all) {+		action= LockControls(controls=MouseKeysAccel);+	};+	interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {+		action= SetPtrDflt(affect=button,button=+1);+	};+	interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {+		action= SetPtrDflt(affect=button,button=-1);+	};+	interpret AccessX_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=AccessXKeys);+	};+	interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=AccessXFeedback);+	};+	interpret RepeatKeys_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=RepeatKeys);+	};+	interpret SlowKeys_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=SlowKeys);+	};+	interpret BounceKeys_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=BounceKeys);+	};+	interpret StickyKeys_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=StickyKeys);+	};+	interpret MouseKeys_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=MouseKeys);+	};+	interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=MouseKeysAccel);+	};+	interpret Overlay1_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=none);+	};+	interpret Overlay2_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=none);+	};+	interpret AudibleBell_Enable+AnyOfOrNone(all) {+		action= LockControls(controls=AudibleBell);+	};+	interpret Terminate_Server+AnyOfOrNone(all) {+		action= Terminate();+	};+	interpret Alt_L+AnyOfOrNone(all) {+		action= SetMods(modifiers=Alt,clearLocks);+	};+	interpret Alt_R+AnyOfOrNone(all) {+		action= SetMods(modifiers=Alt,clearLocks);+	};+	interpret Meta_L+AnyOfOrNone(all) {+		action= SetMods(modifiers=Meta,clearLocks);+	};+	interpret Meta_R+AnyOfOrNone(all) {+		action= SetMods(modifiers=Meta,clearLocks);+	};+	interpret Super_L+AnyOfOrNone(all) {+		action= SetMods(modifiers=Super,clearLocks);+	};+	interpret Super_R+AnyOfOrNone(all) {+		action= SetMods(modifiers=Super,clearLocks);+	};+	interpret Hyper_L+AnyOfOrNone(all) {+		action= SetMods(modifiers=Hyper,clearLocks);+	};+	interpret Hyper_R+AnyOfOrNone(all) {+		action= SetMods(modifiers=Hyper,clearLocks);+	};+	interpret Shift_L+AnyOfOrNone(all) {+		action= SetMods(modifiers=Shift);+	};+	interpret XF86Switch_VT_1+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=1,!same);+	};+	interpret XF86Switch_VT_2+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=2,!same);+	};+	interpret XF86Switch_VT_3+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=3,!same);+	};+	interpret XF86Switch_VT_4+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=4,!same);+	};+	interpret XF86Switch_VT_5+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=5,!same);+	};+	interpret XF86Switch_VT_6+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=6,!same);+	};+	interpret XF86Switch_VT_7+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=7,!same);+	};+	interpret XF86Switch_VT_8+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=8,!same);+	};+	interpret XF86Switch_VT_9+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=9,!same);+	};+	interpret XF86Switch_VT_10+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=10,!same);+	};+	interpret XF86Switch_VT_11+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=11,!same);+	};+	interpret XF86Switch_VT_12+AnyOfOrNone(all) {+		repeat= True;+		action= SwitchScreen(screen=12,!same);+	};+	interpret XF86LogGrabInfo+AnyOfOrNone(all) {+		repeat= True;+		action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);+	};+	interpret XF86LogWindowTree+AnyOfOrNone(all) {+		repeat= True;+		action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);+	};+	interpret XF86Next_VMode+AnyOfOrNone(all) {+		repeat= True;+		action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+	};+	interpret XF86Prev_VMode+AnyOfOrNone(all) {+		repeat= True;+		action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+	};+	interpret ISO_Level5_Shift+AnyOfOrNone(all) {+		action= SetMods(modifiers=LevelFive,clearLocks);+	};+	interpret ISO_Level5_Latch+AnyOfOrNone(all) {+		action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+	};+	interpret ISO_Level5_Lock+AnyOfOrNone(all) {+		action= LockMods(modifiers=NumLock);+	};+	interpret Caps_Lock+AnyOfOrNone(all) {+		action= LockMods(modifiers=Lock);+	};+	interpret Any+Exactly(Lock) {+		action= LockMods(modifiers=Lock);+	};+	interpret Any+AnyOf(all) {+		action= SetMods(modifiers=modMapMods,clearLocks);+	};+	indicator "Caps Lock" {+		whichModState= locked;+		modifiers= Lock;+	};+	indicator "Num Lock" {+		whichModState= locked;+		modifiers= NumLock;+	};+	indicator "Scroll Lock" {+		whichModState= locked;+		modifiers= ScrollLock;+	};+	indicator "Shift Lock" {+		whichModState= locked;+		modifiers= Shift;+	};+	indicator "Group 2" {+		groups= 0xfe;+	};+	indicator "Mouse Keys" {+		controls= MouseKeys;+	};+};++xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" {+	name[group1]="English (US)";+	name[group2]="Russian";+	name[group3]="Canadian Multilingual";+	name[group4]="German (Neo 2)";++	key <ESC>                {	[          Escape ] };+	key <AE01>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               1,          exclam ],+		symbols[Group2]= [               1,          exclam ],+		symbols[Group3]= [               1,          exclam,       plusminus,        NoSymbol,     onesuperior,      exclamdown,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               1,          degree,     onesuperior,    onesubscript,     ordfeminine,        NoSymbol,         notsign,        NoSymbol ]+	};+	key <AE02>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               2,              at ],+		symbols[Group2]= [               2,        quotedbl ],+		symbols[Group3]= [               2,              at,              at,        NoSymbol,     twosuperior,        NoSymbol,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               2,         section,     twosuperior,    twosubscript,       masculine,        NoSymbol,       logicalor,        NoSymbol ]+	};+	key <AE03>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               3,      numbersign ],+		symbols[Group2]= [               3,      numerosign ],+		symbols[Group3]= [               3,      numbersign,        sterling,        NoSymbol,   threesuperior,        sterling,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               3,           U2113,   threesuperior,  threesubscript,      numerosign,        NoSymbol,      logicaland,        NoSymbol ]+	};+	key <AE04>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               4,          dollar ],+		symbols[Group2]= [               4,       semicolon ],+		symbols[Group3]= [               4,          dollar,            cent,        NoSymbol,      onequarter,        currency,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               4,  guillemotright,           U203A,    femalesymbol,        NoSymbol,        NoSymbol,           U22A5,        NoSymbol ]+	};+	key <AE05>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               5,         percent ],+		symbols[Group2]= [               5,         percent ],+		symbols[Group3]= [               5,         percent,        currency,        NoSymbol,         onehalf,    threeeighths,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               5,   guillemotleft,           U2039,      malesymbol,  periodcentered,        NoSymbol,           U2221,        NoSymbol ]+	};+	key <AE06>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [ { H, E, L, L, O },     asciicircum ],+		symbols[Group2]= [               6,           colon ],+		symbols[Group3]= [               6,        question,         notsign,        NoSymbol,   threequarters,     fiveeighths,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               6,          dollar,            cent,           U26A5,        sterling,        NoSymbol,           U2225,        NoSymbol ]+	};+	key <AE07>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [ { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G },       ampersand ],+		symbols[Group2]= [               7,        question ],+		symbols[Group3]= [               7,       ampersand,       braceleft,        NoSymbol,        NoSymbol,    seveneighths,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               7,        EuroSign,             yen,           U03F0,        currency,        NoSymbol,      rightarrow,        NoSymbol ]+	};+	key <AE08>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               8,        asterisk ],+		symbols[Group2]= [               8,        asterisk ],+		symbols[Group3]= [               8,        asterisk,      braceright,        NoSymbol,        NoSymbol,       trademark,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               8, doublelowquotemark, singlelowquotemark,           U27E8,             Tab,    ISO_Left_Tab,           U221E,        NoSymbol ]+	};+	key <AE09>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               9,       parenleft ],+		symbols[Group2]= [               9,       parenleft ],+		symbols[Group3]= [               9,       parenleft,     bracketleft,        NoSymbol,        NoSymbol,       plusminus,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               9, leftdoublequotemark, leftsinglequotemark,           U27E9,       KP_Divide,       KP_Divide,       variation,        NoSymbol ]+	};+	key <AE10>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [               0,      parenright ],+		symbols[Group2]= [               0,      parenright ],+		symbols[Group3]= [               0,      parenright,    bracketright,        NoSymbol,        NoSymbol,        NoSymbol,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               0, rightdoublequotemark, rightsinglequotemark,   zerosubscript,     KP_Multiply,     KP_Multiply,        emptyset,        NoSymbol ]+	};+	key <AE11>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [           minus,      underscore ],+		symbols[Group2]= [           minus,      underscore ],+		symbols[Group3]= [           minus,      underscore,         onehalf,        NoSymbol,        NoSymbol,    questiondown,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [           minus,          emdash,        NoSymbol,           U2011,     KP_Subtract,     KP_Subtract,          hyphen,        NoSymbol ]+	};+	key <AE12>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [           equal,            plus ],+		symbols[Group2]= [           equal,            plus ],+		symbols[Group3]= [           equal,            plus,         notsign,        NoSymbol,    dead_cedilla,     dead_ogonek,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [      dead_grave,    dead_cedilla,  dead_abovering, dead_abovereversedcomma,  dead_diaeresis,        NoSymbol,     dead_macron,        NoSymbol ]+	};+	key <BKSP>               {	[       BackSpace,       BackSpace ] };+	key <TAB>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [             Tab,    ISO_Left_Tab ],+		symbols[Group2]= [             Tab,    ISO_Left_Tab ],+		symbols[Group3]= [             Tab,    ISO_Left_Tab ],+		symbols[Group4]= [             Tab,    ISO_Left_Tab,       Multi_key, ISO_Level5_Lock,        NoSymbol,        NoSymbol,        NoSymbol, ISO_Level5_Lock ]+	};+	key <AD01>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               q,               Q ],+		symbols[Group2]= [ Cyrillic_shorti, Cyrillic_SHORTI ],+		symbols[Group3]= [               q,               Q,        NoSymbol,        NoSymbol,        NoSymbol,     Greek_OMEGA,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               x,               X,        ellipsis,        Greek_xi,           Prior,           Prior,        Greek_XI,        NoSymbol ]+	};+	key <AD02>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               w,               W ],+		symbols[Group2]= [    Cyrillic_tse,    Cyrillic_TSE ],+		symbols[Group3]= [               w,               W,        NoSymbol,        NoSymbol,         lstroke,         Lstroke,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               v,               V,      underscore,        NoSymbol,       BackSpace,       BackSpace,         radical,        NoSymbol ]+	};+	key <AD03>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               e,               E ],+		symbols[Group2]= [      Cyrillic_u,      Cyrillic_U ],+		symbols[Group3]= [               e,               E,        NoSymbol,        NoSymbol,              oe,              OE,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               l,               L,     bracketleft,     Greek_lamda,              Up,              Up,     Greek_LAMDA,        NoSymbol ]+	};+	key <AD04>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               r,               R ],+		symbols[Group2]= [     Cyrillic_ka,     Cyrillic_KA ],+		symbols[Group3]= [               r,               R,        NoSymbol,        NoSymbol,       paragraph,      registered,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               c,               C,    bracketright,       Greek_chi,          Delete,          Delete,           U2102,        NoSymbol ]+	};+	key <AD05>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               t,               T ],+		symbols[Group2]= [     Cyrillic_ie,     Cyrillic_IE ],+		symbols[Group3]= [               t,               T,        NoSymbol,        NoSymbol,          tslash,          Tslash,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               w,               W,     asciicircum,     Greek_omega,            Next,            Next,     Greek_OMEGA,        NoSymbol ]+	};+	key <AD06>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               y,               Y ],+		symbols[Group2]= [     Cyrillic_en,     Cyrillic_EN ],+		symbols[Group3]= [               y,               Y,        NoSymbol,        NoSymbol,       leftarrow,             yen,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               k,               K,          exclam,     Greek_kappa,      exclamdown,        NoSymbol,        multiply,        NoSymbol ]+	};+	key <AD07>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               u,               U ],+		symbols[Group2]= [    Cyrillic_ghe,    Cyrillic_GHE ],+		symbols[Group3]= [               u,               U,        NoSymbol,        NoSymbol,       downarrow,         uparrow,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               h,               H,            less,       Greek_psi,            KP_7,            KP_7,       Greek_PSI,        NoSymbol ]+	};+	key <AD08>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               i,               I ],+		symbols[Group2]= [    Cyrillic_sha,    Cyrillic_SHA ],+		symbols[Group3]= [               i,               I,        NoSymbol,        NoSymbol,      rightarrow,        idotless,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               g,               G,         greater,     Greek_gamma,            KP_8,            KP_8,     Greek_GAMMA,        NoSymbol ]+	};+	key <AD09>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               o,               O ],+		symbols[Group2]= [  Cyrillic_shcha,  Cyrillic_SHCHA ],+		symbols[Group3]= [               o,               O,         section,        NoSymbol,          oslash,          Oslash,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               f,               F,           equal,       Greek_phi,            KP_9,            KP_9,       Greek_PHI,        NoSymbol ]+	};+	key <AD10>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               p,               P ],+		symbols[Group2]= [     Cyrillic_ze,     Cyrillic_ZE ],+		symbols[Group3]= [               p,               P,       paragraph,        NoSymbol,           thorn,           THORN,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               q,               Q,       ampersand,           U03D5,          KP_Add,          KP_Add,           U211A,        NoSymbol ]+	};+	key <AD11>               {+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [     bracketleft,       braceleft ],+		symbols[Group2]= [     Cyrillic_ha,     Cyrillic_HA ],+		symbols[Group3]= [ dead_circumflex,  dead_diaeresis,      dead_grave,        NoSymbol,        NoSymbol,  dead_abovering,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [          ssharp,           U1E9E,           U017F, Greek_finalsmallsigma,           U2212,        NoSymbol,             jot,        NoSymbol ]+	};+	key <AD12>               {+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [    bracketright,      braceright ],+		symbols[Group2]= [ Cyrillic_hardsign, Cyrillic_HARDSIGN ],+		symbols[Group3]= [        ccedilla,        Ccedilla,      asciitilde,        NoSymbol,      dead_tilde,     dead_macron,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [      dead_acute,      dead_tilde,     dead_stroke, dead_abovecomma, dead_doubleacute,        NoSymbol,      dead_breve,        NoSymbol ]+	};+	key <RTRN>               {	[          Return ] };+	key <LCTL>               {	[       Control_L ] };+	key <AC01>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               a,               A ],+		symbols[Group2]= [     Cyrillic_ef,     Cyrillic_EF ],+		symbols[Group3]= [               a,               A,        NoSymbol,        NoSymbol,              ae,              AE,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               u,               U,       backslash,        NoSymbol,            Home,            Home,      includedin,        NoSymbol ]+	};+	key <AC02>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               s,               S ],+		symbols[Group2]= [   Cyrillic_yeru,   Cyrillic_YERU ],+		symbols[Group3]= [               s,               S,        NoSymbol,        NoSymbol,          ssharp,         section,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               i,               I,           slash,      Greek_iota,            Left,            Left,        integral,        NoSymbol ]+	};+	key <AC03>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               d,               D ],+		symbols[Group2]= [     Cyrillic_ve,     Cyrillic_VE ],+		symbols[Group3]= [               d,               D,        NoSymbol,        NoSymbol,             eth,             ETH,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               a,               A,       braceleft,     Greek_alpha,            Down,            Down,           U2200,        NoSymbol ]+	};+	key <AC04>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               f,               F ],+		symbols[Group2]= [      Cyrillic_a,      Cyrillic_A ],+		symbols[Group3]= [               f,               F,        NoSymbol,        NoSymbol,        NoSymbol,     ordfeminine,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               e,               E,      braceright,   Greek_epsilon,           Right,           Right,           U2203,        NoSymbol ]+	};+	key <AC05>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               g,               G ],+		symbols[Group2]= [     Cyrillic_pe,     Cyrillic_PE ],+		symbols[Group3]= [               g,               G,        NoSymbol,        NoSymbol,             eng,             ENG,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               o,               O,        asterisk,   Greek_omicron,             End,             End,       elementof,        NoSymbol ]+	};+	key <AC06>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               h,               H ],+		symbols[Group2]= [     Cyrillic_er,     Cyrillic_ER ],+		symbols[Group3]= [               h,               H,        NoSymbol,        NoSymbol,         hstroke,         Hstroke,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               s,               S,        question,     Greek_sigma,    questiondown,        NoSymbol,     Greek_SIGMA,        NoSymbol ]+	};+	key <AC07>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               j,               J ],+		symbols[Group2]= [      Cyrillic_o,      Cyrillic_O ],+		symbols[Group3]= [               j,               J,        NoSymbol,        NoSymbol,           U0133,           U0132,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               n,               N,       parenleft,        Greek_nu,            KP_4,            KP_4,           U2115,        NoSymbol ]+	};+	key <AC08>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               k,               K ],+		symbols[Group2]= [     Cyrillic_el,     Cyrillic_EL ],+		symbols[Group3]= [               k,               K,        NoSymbol,        NoSymbol,             kra,        NoSymbol,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               r,               R,      parenright,       Greek_rho,            KP_5,            KP_5,           U211D,        NoSymbol ]+	};+	key <AC09>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               l,               L ],+		symbols[Group2]= [     Cyrillic_de,     Cyrillic_DE ],+		symbols[Group3]= [               l,               L,        NoSymbol,        NoSymbol,           U0140,           U013F,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               t,               T,           minus,       Greek_tau,            KP_6,            KP_6, partialderivative,        NoSymbol ]+	};+	key <AC10>               {+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [       semicolon,           colon ],+		symbols[Group2]= [    Cyrillic_zhe,    Cyrillic_ZHE ],+		symbols[Group3]= [       semicolon,           colon,          degree,        NoSymbol,      dead_acute, dead_doubleacute,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               d,               D,           colon,     Greek_delta,    KP_Separator,           comma,     Greek_DELTA,        NoSymbol ]+	};+	key <AC11>               {+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [      apostrophe,        quotedbl ],+		symbols[Group2]= [      Cyrillic_e,      Cyrillic_E ],+		symbols[Group3]= [          egrave,          Egrave,       braceleft,        NoSymbol,        NoSymbol,      dead_caron,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               y,               Y,              at,   Greek_upsilon,          period,      KP_Decimal,           nabla,        NoSymbol ]+	};+	key <TLDE>               {+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [           grave,      asciitilde ],+		symbols[Group2]= [     Cyrillic_io,     Cyrillic_IO ],+		symbols[Group3]= [           slash,       backslash,             bar,        NoSymbol,        NoSymbol,          hyphen,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [ dead_circumflex,      dead_caron,           U21BB,           U02DE,   dead_abovedot, Pointer_EnableKeys,   dead_belowdot,        NoSymbol ]+	};+	key <LFSH>               {+		type[group4]= "TWO_LEVEL",+		symbols[Group1]= [         Shift_L ],+		symbols[Group2]= [         Shift_L ],+		symbols[Group3]= [         Shift_L ],+		symbols[Group4]= [         Shift_L,       Caps_Lock ]+	};+	key <BKSL>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "ONE_LEVEL",+		symbols[Group1]= [       backslash,             bar ],+		symbols[Group2]= [       backslash,           slash ],+		symbols[Group3]= [          agrave,          Agrave,      braceright,        NoSymbol,        NoSymbol,      dead_breve,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [ ISO_Level3_Shift ]+	};+	key <AB01>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               z,               Z ],+		symbols[Group2]= [     Cyrillic_ya,     Cyrillic_YA ],+		symbols[Group3]= [               z,               Z,   guillemotleft,        NoSymbol ],+		symbols[Group4]= [      udiaeresis,      Udiaeresis,      numbersign,        NoSymbol,          Escape,          Escape,           union,        NoSymbol ]+	};+	key <AB02>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               x,               X ],+		symbols[Group2]= [    Cyrillic_che,    Cyrillic_CHE ],+		symbols[Group3]= [               x,               X,  guillemotright,        NoSymbol ],+		symbols[Group4]= [      odiaeresis,      Odiaeresis,          dollar,           U03F5,             Tab,             Tab,    intersection,        NoSymbol ]+	};+	key <AB03>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               c,               C ],+		symbols[Group2]= [     Cyrillic_es,     Cyrillic_ES ],+		symbols[Group3]= [               c,               C,        NoSymbol,        NoSymbol,            cent,       copyright,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [      adiaeresis,      Adiaeresis,             bar,       Greek_eta,          Insert,          Insert,           U2135,        NoSymbol ]+	};+	key <AB04>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               v,               V ],+		symbols[Group2]= [     Cyrillic_em,     Cyrillic_EM ],+		symbols[Group3]= [               v,               V,        NoSymbol,        NoSymbol, leftdoublequotemark, leftsinglequotemark,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               p,               P,      asciitilde,        Greek_pi,          Return,          Return,        Greek_PI,        NoSymbol ]+	};+	key <AB05>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               b,               B ],+		symbols[Group2]= [      Cyrillic_i,      Cyrillic_I ],+		symbols[Group3]= [               b,               B,        NoSymbol,        NoSymbol, rightdoublequotemark, rightsinglequotemark,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               z,               Z,           grave,      Greek_zeta,            Undo,            Undo,           U2124,        NoSymbol ]+	};+	key <AB06>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               n,               N ],+		symbols[Group2]= [     Cyrillic_te,     Cyrillic_TE ],+		symbols[Group3]= [               n,               N,        NoSymbol,        NoSymbol,           U0149,           U266A,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               b,               B,            plus,      Greek_beta,           colon,        NoSymbol,           U21D0,        NoSymbol ]+	};+	key <AB07>               {+		type[group1]= "ALPHABETIC",+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [               m,               M ],+		symbols[Group2]= [ Cyrillic_softsign, Cyrillic_SOFTSIGN ],+		symbols[Group3]= [               m,               M,              mu,        NoSymbol,              mu,       masculine,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               m,               M,         percent,        Greek_mu,            KP_1,            KP_1,        ifonlyif,        NoSymbol ]+	};+	key <AB08>               {+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [           comma,            less ],+		symbols[Group2]= [     Cyrillic_be,     Cyrillic_BE ],+		symbols[Group3]= [           comma,      apostrophe,            less,        NoSymbol,  Greek_horizbar,        multiply,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [           comma,          endash,        quotedbl,           U03F1,            KP_2,            KP_2,           U21D2,        NoSymbol ]+	};+	key <AB09>               {+		type[group2]= "ALPHABETIC",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [          period,         greater ],+		symbols[Group2]= [     Cyrillic_yu,     Cyrillic_YU ],+		symbols[Group3]= [          period,        quotedbl,         greater,        NoSymbol,  periodcentered,        division,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [          period, enfilledcircbullet,      apostrophe,           U03D1,            KP_3,            KP_3,           U21A6,        NoSymbol ]+	};+	key <AB10>               {+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC",+		symbols[Group1]= [           slash,        question ],+		symbols[Group2]= [          period,           comma ],+		symbols[Group3]= [          eacute,          Eacute,      dead_acute,        NoSymbol,        NoSymbol,   dead_abovedot,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [               j,               J,       semicolon,     Greek_theta,       semicolon,        NoSymbol,     Greek_THETA,        NoSymbol ]+	};+	key <RTSH>               {+		type[group4]= "TWO_LEVEL",+		symbols[Group1]= [         Shift_R ],+		symbols[Group2]= [         Shift_R ],+		symbols[Group3]= [         Shift_R ],+		symbols[Group4]= [         Shift_R,       Caps_Lock ]+	};+	key <KPMU>               {+		type[group1]= "CTRL+ALT",+		type[group2]= "CTRL+ALT",+		type[group3]= "CTRL+ALT",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ],+		symbols[Group2]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ],+		symbols[Group3]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ],+		symbols[Group4]= [     KP_Multiply,     KP_Multiply,           U2219,           U2299,        multiply,        NoSymbol,           U2297,        NoSymbol ]+	};+	key <LALT>               {	[           Alt_L,          Meta_L ] };+	key <SPCE>               {+		type[group3]= "FOUR_LEVEL",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [           space ],+		symbols[Group2]= [           space ],+		symbols[Group3]= [           space,           space,    nobreakspace,        NoSymbol ],+		symbols[Group4]= [           space,           space,           space,    nobreakspace,            KP_0,            KP_0,           U202F,        NoSymbol ]+	};+	key <CAPS>               {+		type= "ONE_LEVEL",+		symbols[Group1]= [       Caps_Lock ],+		symbols[Group2]= [       Caps_Lock ],+		symbols[Group3]= [       Caps_Lock ],+		symbols[Group4]= [ ISO_Level3_Shift ]+	};+	key <FK01>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]+	};+	key <FK02>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]+	};+	key <FK03>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]+	};+	key <FK04>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]+	};+	key <FK05>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]+	};+	key <FK06>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]+	};+	key <FK07>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]+	};+	key <FK08>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]+	};+	key <FK09>               {+		type= "CTRL+ALT",+		symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]+	};+	key <FK10>               {+		type= "CTRL+ALT",+		symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]+	};+	key <NMLK>               {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [        Num_Lock ],+		symbols[Group2]= [        Num_Lock ],+		symbols[Group3]= [        Num_Lock ],+		symbols[Group4]= [             Tab,    ISO_Left_Tab,           equal,        approxeq,        notequal, Pointer_EnableKeys,       identical,        NoSymbol ]+	};+	key <SCLK>               {	[     Scroll_Lock ] };+	key <KP7>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [         KP_Home,            KP_7 ],+		symbols[Group2]= [         KP_Home,            KP_7 ],+		symbols[Group3]= [         KP_Home,            KP_7 ],+		symbols[Group4]= [            KP_7,           U2714,           U2195,           U226A,         KP_Home,         KP_Home,         upstile,        NoSymbol ]+	};+	key <KP8>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [           KP_Up,            KP_8 ],+		symbols[Group2]= [           KP_Up,            KP_8 ],+		symbols[Group3]= [           KP_Up,            KP_8 ],+		symbols[Group4]= [            KP_8,           U2718,         uparrow,    intersection,           KP_Up,           KP_Up,           U22C2,        NoSymbol ]+	};+	key <KP9>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [        KP_Prior,            KP_9 ],+		symbols[Group2]= [        KP_Prior,            KP_9 ],+		symbols[Group3]= [        KP_Prior,            KP_9 ],+		symbols[Group4]= [            KP_9,          dagger,           U20D7,           U226B,        KP_Prior,        KP_Prior,           U2309,        NoSymbol ]+	};+	key <KPSU>               {+		type[group1]= "CTRL+ALT",+		type[group2]= "CTRL+ALT",+		type[group3]= "CTRL+ALT",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ],+		symbols[Group2]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ],+		symbols[Group3]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ],+		symbols[Group4]= [     KP_Subtract,     KP_Subtract,           U2212,           U2296,           U2216,        NoSymbol,           U2238,        NoSymbol ]+	};+	key <KP4>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [         KP_Left,            KP_4 ],+		symbols[Group2]= [         KP_Left,            KP_4 ],+		symbols[Group3]= [         KP_Left,            KP_4 ],+		symbols[Group4]= [            KP_4,            club,       leftarrow,      includedin,         KP_Left,         KP_Left,           U2286,        NoSymbol ]+	};+	key <KP5>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [        KP_Begin,            KP_5 ],+		symbols[Group2]= [        KP_Begin,            KP_5 ],+		symbols[Group3]= [        KP_Begin,            KP_5 ],+		symbols[Group4]= [            KP_5,        EuroSign,           colon,           U22B6,        KP_Begin,        KP_Begin,           U22B7,        NoSymbol ]+	};+	key <KP6>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [        KP_Right,            KP_6 ],+		symbols[Group2]= [        KP_Right,            KP_6 ],+		symbols[Group3]= [        KP_Right,            KP_6 ],+		symbols[Group4]= [            KP_6,           U2023,      rightarrow,        includes,        KP_Right,        KP_Right,           U2287,        NoSymbol ]+	};+	key <KPAD>               {+		type[group1]= "CTRL+ALT",+		type[group2]= "CTRL+ALT",+		type[group3]= "CTRL+ALT",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ],+		symbols[Group2]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ],+		symbols[Group3]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ],+		symbols[Group4]= [          KP_Add,          KP_Add,       plusminus,           U2295,           U2213,        NoSymbol,           U2214,        NoSymbol ]+	};+	key <KP1>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [          KP_End,            KP_1 ],+		symbols[Group2]= [          KP_End,            KP_1 ],+		symbols[Group3]= [          KP_End,            KP_1 ],+		symbols[Group4]= [            KP_1,         diamond,           U2194,   lessthanequal,          KP_End,          KP_End,       downstile,        NoSymbol ]+	};+	key <KP2>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [         KP_Down,            KP_2 ],+		symbols[Group2]= [         KP_Down,            KP_2 ],+		symbols[Group3]= [         KP_Down,            KP_2 ],+		symbols[Group4]= [            KP_2,           heart,       downarrow,           union,         KP_Down,         KP_Down,           U22C3,        NoSymbol ]+	};+	key <KP3>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [         KP_Next,            KP_3 ],+		symbols[Group2]= [         KP_Next,            KP_3 ],+		symbols[Group3]= [         KP_Next,            KP_3 ],+		symbols[Group4]= [            KP_3,           U2660,           U21CC, greaterthanequal,         KP_Next,         KP_Next,           U230B,        NoSymbol ]+	};+	key <KP0>                {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [       KP_Insert,            KP_0 ],+		symbols[Group2]= [       KP_Insert,            KP_0 ],+		symbols[Group3]= [       KP_Insert,            KP_0 ],+		symbols[Group4]= [            KP_0,           U2423,         percent,           U2030,       KP_Insert,       KP_Insert,           U25A1,        NoSymbol ]+	};+	key <KPDL>               {+		type[group2]= "KEYPAD",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [       KP_Delete,      KP_Decimal ],+		symbols[Group2]= [       KP_Delete,    KP_Separator ],+		symbols[Group3]= [       KP_Delete,      KP_Decimal ],+		symbols[Group4]= [    KP_Separator,          period,           comma,         minutes,       KP_Delete,       KP_Delete,         seconds,        NoSymbol ]+	};+	key <LVL3>               {	[ ISO_Level3_Shift ] };+	key <LSGT>               {+		type[group1]= "FOUR_LEVEL",+		type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC",+		type[group4]= "ONE_LEVEL",+		symbols[Group1]= [            less,         greater,             bar,       brokenbar ],+		symbols[Group2]= [           slash,             bar ],+		symbols[Group3]= [          ugrave,          Ugrave,          degree,        NoSymbol,        NoSymbol,       brokenbar,        NoSymbol,        NoSymbol ],+		symbols[Group4]= [ ISO_Level5_Shift ]+	};+	key <FK11>               {+		type= "CTRL+ALT",+		symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]+	};+	key <FK12>               {+		type= "CTRL+ALT",+		symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]+	};+	key <KATA>               {	[        Katakana ] };+	key <HIRA>               {	[        Hiragana ] };+	key <HENK>               {	[     Henkan_Mode ] };+	key <HKTG>               {	[ Hiragana_Katakana ] };+	key <MUHE>               {	[        Muhenkan ] };+	key <KPEN>               {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [        KP_Enter ],+		symbols[Group2]= [        KP_Enter ],+		symbols[Group3]= [        KP_Enter ],+		symbols[Group4]= [        KP_Enter,        KP_Enter,        KP_Enter,        KP_Enter,        KP_Enter,        KP_Enter,        KP_Enter,        NoSymbol ]+	};+	key <RCTL>               {+		type= "ONE_LEVEL",+		symbols[Group1]= [       Control_R ],+		symbols[Group2]= [       Control_R ],+		symbols[Group3]= [ ISO_Level5_Shift ]+	};+	key <KPDV>               {+		type[group1]= "CTRL+ALT",+		type[group2]= "CTRL+ALT",+		type[group3]= "CTRL+ALT",+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ],+		symbols[Group2]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ],+		symbols[Group3]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ],+		symbols[Group4]= [       KP_Divide,       KP_Divide,        division,           U2300,           U2215,        NoSymbol,           U2223,        NoSymbol ]+	};+	key <PRSC>               {+		type= "PC_ALT_LEVEL2",+		symbols[Group1]= [           Print,         Sys_Req ]+	};+	key <RALT>               {+		type[group1]= "TWO_LEVEL",+		type[group2]= "TWO_LEVEL",+		type[group3]= "ONE_LEVEL",+		type[group4]= "ONE_LEVEL",+		symbols[Group1]= [           Alt_R,          Meta_R ],+		symbols[Group2]= [           Alt_R,          Meta_R ],+		symbols[Group3]= [ ISO_Level3_Shift ],+		symbols[Group4]= [ ISO_Level5_Shift ]+	};+	key <LNFD>               {	[        Linefeed ] };+	key <HOME>               {	[            Home ] };+	key <UP>                 {	[              Up ] };+	key <PGUP>               {	[           Prior ] };+	key <LEFT>               {	[            Left ] };+	key <RGHT>               {	[           Right ] };+	key <END>                {	[             End ] };+	key <DOWN>               {	[            Down ] };+	key <PGDN>               {	[            Next ] };+	key <INS>                {	[          Insert ] };+	key <DELE>               {	[          Delete ] };+	key <MUTE>               {	[   XF86AudioMute ] };+	key <VOL->               {	[ XF86AudioLowerVolume ] };+	key <VOL+>               {	[ XF86AudioRaiseVolume ] };+	key <POWR>               {	[    XF86PowerOff ] };+	key <KPEQ>               {+		type[group4]= "EIGHT_LEVEL",+		symbols[Group1]= [        KP_Equal ],+		symbols[Group2]= [        KP_Equal ],+		symbols[Group3]= [        KP_Equal ],+		symbols[Group4]= [        KP_Equal,        NoSymbol,        NoSymbol,        NoSymbol,        NoSymbol,        NoSymbol,        NoSymbol,        NoSymbol ]+	};+	key <I126>               {	[       plusminus ] };+	key <PAUS>               {+		type= "PC_CONTROL_LEVEL2",+		symbols[Group1]= [           Pause,           Break ]+	};+	key <I128>               {	[     XF86LaunchA ] };+	key <I129>               {	[      KP_Decimal,      KP_Decimal ] };+	key <HNGL>               {	[          Hangul ] };+	key <HJCV>               {	[    Hangul_Hanja ] };+	key <LWIN>               {	[         Super_L ] };+	key <RWIN>               {	[         Super_R ] };+	key <COMP>               {	[            Menu ] };+	key <STOP>               {	[          Cancel ] };+	key <AGAI>               {	[            Redo ] };+	key <PROP>               {	[        SunProps ] };+	key <UNDO>               {	[            Undo ] };+	key <FRNT>               {	[        SunFront ] };+	key <COPY>               {	[        XF86Copy ] };+	key <OPEN>               {	[         SunOpen ] };+	key <PAST>               {	[       XF86Paste ] };+	key <FIND>               {	[            Find ] };+	key <CUT>                {	[         XF86Cut ] };+	key <HELP>               {	[            Help ] };+	key <I147>               {	[      XF86MenuKB ] };+	key <I148>               {	[  XF86Calculator ] };+	key <I150>               {	[       XF86Sleep ] };+	key <I151>               {	[      XF86WakeUp ] };+	key <I152>               {	[    XF86Explorer ] };+	key <I153>               {	[        XF86Send ] };+	key <I155>               {	[        XF86Xfer ] };+	key <I156>               {	[     XF86Launch1 ] };+	key <I157>               {	[     XF86Launch2 ] };+	key <I158>               {	[         XF86WWW ] };+	key <I159>               {	[         XF86DOS ] };+	key <I160>               {	[ XF86ScreenSaver ] };+	key <I162>               {	[ XF86RotateWindows ] };+	key <I163>               {	[        XF86Mail ] };+	key <I164>               {	[   XF86Favorites ] };+	key <I165>               {	[  XF86MyComputer ] };+	key <I166>               {	[        XF86Back ] };+	key <I167>               {	[     XF86Forward ] };+	key <I169>               {	[       XF86Eject ] };+	key <I170>               {	[       XF86Eject,       XF86Eject ] };+	key <I171>               {	[   XF86AudioNext ] };+	key <I172>               {	[   XF86AudioPlay,  XF86AudioPause ] };+	key <I173>               {	[   XF86AudioPrev ] };+	key <I174>               {	[   XF86AudioStop,       XF86Eject ] };+	key <I175>               {	[ XF86AudioRecord ] };+	key <I176>               {	[ XF86AudioRewind ] };+	key <I177>               {	[       XF86Phone ] };+	key <I179>               {	[       XF86Tools ] };+	key <I180>               {	[    XF86HomePage ] };+	key <I181>               {	[      XF86Reload ] };+	key <I182>               {	[       XF86Close ] };+	key <I185>               {	[    XF86ScrollUp ] };+	key <I186>               {	[  XF86ScrollDown ] };+	key <I187>               {	[       parenleft ] };+	key <I188>               {	[      parenright ] };+	key <I189>               {	[         XF86New ] };+	key <I190>               {	[            Redo ] };+	key <FK13>               {	[       XF86Tools ] };+	key <FK14>               {	[     XF86Launch5 ] };+	key <FK15>               {	[     XF86Launch6 ] };+	key <FK16>               {	[     XF86Launch7 ] };+	key <FK17>               {	[     XF86Launch8 ] };+	key <FK18>               {	[     XF86Launch9 ] };+	key <FK21>               {	[ XF86TouchpadToggle ] };+	key <FK22>               {	[  XF86TouchpadOn ] };+	key <FK23>               {	[ XF86TouchpadOff ] };+	key <MDSW>               {	[     Mode_switch ] };+	key <ALT>                {	[        NoSymbol,           Alt_L ] };+	key <META>               {	[        NoSymbol,          Meta_L ] };+	key <SUPR>               {	[        NoSymbol,         Super_L ] };+	key <HYPR>               {	[        NoSymbol,         Hyper_L ] };+	key <I208>               {	[   XF86AudioPlay ] };+	key <I209>               {	[  XF86AudioPause ] };+	key <I210>               {	[     XF86Launch3 ] };+	key <I211>               {	[     XF86Launch4 ] };+	key <I212>               {	[     XF86LaunchB ] };+	key <I213>               {	[     XF86Suspend ] };+	key <I214>               {	[       XF86Close ] };+	key <I215>               {	[   XF86AudioPlay ] };+	key <I216>               {	[ XF86AudioForward ] };+	key <I218>               {	[           Print ] };+	key <I220>               {	[      XF86WebCam ] };+	key <I223>               {	[        XF86Mail ] };+	key <I224>               {	[   XF86Messenger ] };+	key <I225>               {	[      XF86Search ] };+	key <I226>               {	[          XF86Go ] };+	key <I227>               {	[     XF86Finance ] };+	key <I228>               {	[        XF86Game ] };+	key <I229>               {	[        XF86Shop ] };+	key <I231>               {	[          Cancel ] };+	key <I232>               {	[ XF86MonBrightnessDown ] };+	key <I233>               {	[ XF86MonBrightnessUp ] };+	key <I234>               {	[  XF86AudioMedia ] };+	key <I235>               {	[     XF86Display ] };+	key <I236>               {	[ XF86KbdLightOnOff ] };+	key <I237>               {	[ XF86KbdBrightnessDown ] };+	key <I238>               {	[ XF86KbdBrightnessUp ] };+	key <I239>               {	[        XF86Send ] };+	key <I240>               {	[       XF86Reply ] };+	key <I241>               {	[ XF86MailForward ] };+	key <I242>               {	[        XF86Save ] };+	key <I243>               {	[   XF86Documents ] };+	key <I244>               {	[     XF86Battery ] };+	key <I245>               {	[   XF86Bluetooth ] };+	key <I246>               {	[        XF86WLAN ] };+	modifier_map Shift { <LFSH>, <RTSH> };+	modifier_map Lock { <CAPS> };+	modifier_map Control { <LCTL> };+	modifier_map Mod1 { <LALT>, <RALT>, <META> };+	modifier_map Mod2 { <NMLK> };+	modifier_map Mod3 { <RCTL> };+	modifier_map Mod4 { <LWIN>, <RWIN>, <SUPR>, <HYPR> };+	modifier_map Mod5 { <LVL3>, <MDSW> };+};++};
+ data/keymaps/unbound-vmod.xkb view
@@ -0,0 +1,1533 @@+xkb_keymap {+xkb_keycodes "evdev+aliases(qwertz)" {+    minimum = 8;+    maximum = 255;+     <ESC> = 9;+    <AE01> = 10;+    <AE02> = 11;+    <AE03> = 12;+    <AE04> = 13;+    <AE05> = 14;+    <AE06> = 15;+    <AE07> = 16;+    <AE08> = 17;+    <AE09> = 18;+    <AE10> = 19;+    <AE11> = 20;+    <AE12> = 21;+    <BKSP> = 22;+     <TAB> = 23;+    <AD01> = 24;+    <AD02> = 25;+    <AD03> = 26;+    <AD04> = 27;+    <AD05> = 28;+    <AD06> = 29;+    <AD07> = 30;+    <AD08> = 31;+    <AD09> = 32;+    <AD10> = 33;+    <AD11> = 34;+    <AD12> = 35;+    <RTRN> = 36;+    <LCTL> = 37;+    <AC01> = 38;+    <AC02> = 39;+    <AC03> = 40;+    <AC04> = 41;+    <AC05> = 42;+    <AC06> = 43;+    <AC07> = 44;+    <AC08> = 45;+    <AC09> = 46;+    <AC10> = 47;+    <AC11> = 48;+    <TLDE> = 49;+    <LFSH> = 50;+    <BKSL> = 51;+    <AB01> = 52;+    <AB02> = 53;+    <AB03> = 54;+    <AB04> = 55;+    <AB05> = 56;+    <AB06> = 57;+    <AB07> = 58;+    <AB08> = 59;+    <AB09> = 60;+    <AB10> = 61;+    <RTSH> = 62;+    <KPMU> = 63;+    <LALT> = 64;+    <SPCE> = 65;+    <CAPS> = 66;+    <FK01> = 67;+    <FK02> = 68;+    <FK03> = 69;+    <FK04> = 70;+    <FK05> = 71;+    <FK06> = 72;+    <FK07> = 73;+    <FK08> = 74;+    <FK09> = 75;+    <FK10> = 76;+    <NMLK> = 77;+    <SCLK> = 78;+     <KP7> = 79;+     <KP8> = 80;+     <KP9> = 81;+    <KPSU> = 82;+     <KP4> = 83;+     <KP5> = 84;+     <KP6> = 85;+    <KPAD> = 86;+     <KP1> = 87;+     <KP2> = 88;+     <KP3> = 89;+     <KP0> = 90;+    <KPDL> = 91;+    <LVL3> = 92;+    <LSGT> = 94;+    <FK11> = 95;+    <FK12> = 96;+    <AB11> = 97;+    <KATA> = 98;+    <HIRA> = 99;+    <HENK> = 100;+    <HKTG> = 101;+    <MUHE> = 102;+    <JPCM> = 103;+    <KPEN> = 104;+    <RCTL> = 105;+    <KPDV> = 106;+    <PRSC> = 107;+    <RALT> = 108;+    <LNFD> = 109;+    <HOME> = 110;+      <UP> = 111;+    <PGUP> = 112;+    <LEFT> = 113;+    <RGHT> = 114;+     <END> = 115;+    <DOWN> = 116;+    <PGDN> = 117;+     <INS> = 118;+    <DELE> = 119;+    <I120> = 120;+    <MUTE> = 121;+    <VOL-> = 122;+    <VOL+> = 123;+    <POWR> = 124;+    <KPEQ> = 125;+    <I126> = 126;+    <PAUS> = 127;+    <I128> = 128;+    <I129> = 129;+    <HNGL> = 130;+    <HJCV> = 131;+    <AE13> = 132;+    <LWIN> = 133;+    <RWIN> = 134;+    <COMP> = 135;+    <STOP> = 136;+    <AGAI> = 137;+    <PROP> = 138;+    <UNDO> = 139;+    <FRNT> = 140;+    <COPY> = 141;+    <OPEN> = 142;+    <PAST> = 143;+    <FIND> = 144;+     <CUT> = 145;+    <HELP> = 146;+    <I147> = 147;+    <I148> = 148;+    <I149> = 149;+    <I150> = 150;+    <I151> = 151;+    <I152> = 152;+    <I153> = 153;+    <I154> = 154;+    <I155> = 155;+    <I156> = 156;+    <I157> = 157;+    <I158> = 158;+    <I159> = 159;+    <I160> = 160;+    <I161> = 161;+    <I162> = 162;+    <I163> = 163;+    <I164> = 164;+    <I165> = 165;+    <I166> = 166;+    <I167> = 167;+    <I168> = 168;+    <I169> = 169;+    <I170> = 170;+    <I171> = 171;+    <I172> = 172;+    <I173> = 173;+    <I174> = 174;+    <I175> = 175;+    <I176> = 176;+    <I177> = 177;+    <I178> = 178;+    <I179> = 179;+    <I180> = 180;+    <I181> = 181;+    <I182> = 182;+    <I183> = 183;+    <I184> = 184;+    <I185> = 185;+    <I186> = 186;+    <I187> = 187;+    <I188> = 188;+    <I189> = 189;+    <I190> = 190;+    <FK13> = 191;+    <FK14> = 192;+    <FK15> = 193;+    <FK16> = 194;+    <FK17> = 195;+    <FK18> = 196;+    <FK19> = 197;+    <FK20> = 198;+    <FK21> = 199;+    <FK22> = 200;+    <FK23> = 201;+    <FK24> = 202;+    <MDSW> = 203;+     <ALT> = 204;+    <META> = 205;+    <SUPR> = 206;+    <HYPR> = 207;+    <I208> = 208;+    <I209> = 209;+    <I210> = 210;+    <I211> = 211;+    <I212> = 212;+    <I213> = 213;+    <I214> = 214;+    <I215> = 215;+    <I216> = 216;+    <I217> = 217;+    <I218> = 218;+    <I219> = 219;+    <I220> = 220;+    <I221> = 221;+    <I222> = 222;+    <I223> = 223;+    <I224> = 224;+    <I225> = 225;+    <I226> = 226;+    <I227> = 227;+    <I228> = 228;+    <I229> = 229;+    <I230> = 230;+    <I231> = 231;+    <I232> = 232;+    <I233> = 233;+    <I234> = 234;+    <I235> = 235;+    <I236> = 236;+    <I237> = 237;+    <I238> = 238;+    <I239> = 239;+    <I240> = 240;+    <I241> = 241;+    <I242> = 242;+    <I243> = 243;+    <I244> = 244;+    <I245> = 245;+    <I246> = 246;+    <I247> = 247;+    <I248> = 248;+    <I249> = 249;+    <I250> = 250;+    <I251> = 251;+    <I252> = 252;+    <I253> = 253;+    indicator 1 = "Caps Lock";+    indicator 2 = "Num Lock";+    indicator 3 = "Scroll Lock";+    indicator 4 = "Compose";+    indicator 5 = "Kana";+    indicator 6 = "Sleep";+    indicator 7 = "Suspend";+    indicator 8 = "Mute";+    indicator 9 = "Misc";+    indicator 10 = "Mail";+    indicator 11 = "Charging";+    virtual indicator 12 = "Shift Lock";+    virtual indicator 13 = "Group 2";+    virtual indicator 14 = "Mouse Keys";+    alias <AC12> = <BKSL>;+    alias <MENU> = <COMP>;+    alias <HZTG> = <TLDE>;+    alias <LMTA> = <LWIN>;+    alias <RMTA> = <RWIN>;+    alias <ALGR> = <RALT>;+    alias <KPPT> = <I129>;+    alias <LatQ> = <AD01>;+    alias <LatW> = <AD02>;+    alias <LatE> = <AD03>;+    alias <LatR> = <AD04>;+    alias <LatT> = <AD05>;+    alias <LatZ> = <AD06>;+    alias <LatU> = <AD07>;+    alias <LatI> = <AD08>;+    alias <LatO> = <AD09>;+    alias <LatP> = <AD10>;+    alias <LatA> = <AC01>;+    alias <LatS> = <AC02>;+    alias <LatD> = <AC03>;+    alias <LatF> = <AC04>;+    alias <LatG> = <AC05>;+    alias <LatH> = <AC06>;+    alias <LatJ> = <AC07>;+    alias <LatK> = <AC08>;+    alias <LatL> = <AC09>;+    alias <LatY> = <AB01>;+    alias <LatX> = <AB02>;+    alias <LatC> = <AB03>;+    alias <LatV> = <AB04>;+    alias <LatB> = <AB05>;+    alias <LatN> = <AB06>;+    alias <LatM> = <AB07>;+};++xkb_types "complete" {++    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;++    type "ONE_LEVEL" {+        modifiers= none;+        level_name[Level1]= "Any";+    };+    type "TWO_LEVEL" {+        modifiers= Shift;+        map[Shift]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+    };+    type "ALPHABETIC" {+        modifiers= Shift+Lock;+        map[Shift]= Level2;+        map[Lock]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Caps";+    };+    type "KEYPAD" {+        modifiers= Shift+NumLock;+        map[Shift]= Level2;+        map[NumLock]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Number";+    };+    type "SHIFT+ALT" {+        modifiers= Shift+Alt;+        map[Shift+Alt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift+Alt";+    };+    type "PC_CONTROL_LEVEL2" {+        modifiers= Control;+        map[Control]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Control";+    };+    type "PC_LCONTROL_LEVEL2" {+        modifiers= LControl;+        map[LControl]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "LControl";+    };+    type "PC_RCONTROL_LEVEL2" {+        modifiers= RControl;+        map[RControl]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "RControl";+    };+    type "PC_ALT_LEVEL2" {+        modifiers= Alt;+        map[Alt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "Alt";+    };+    type "PC_LALT_LEVEL2" {+        modifiers= LAlt;+        map[LAlt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "LAlt";+    };+    type "PC_RALT_LEVEL2" {+        modifiers= RAlt;+        map[RAlt]= Level2;+        level_name[Level1]= "Base";+        level_name[Level2]= "RAlt";+    };+    type "CTRL+ALT" {+        modifiers= Shift+Control+Alt+LevelThree;+        map[Shift]= Level2;+        preserve[Shift]= Shift;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        preserve[Shift+LevelThree]= Shift;+        map[Control+Alt]= Level5;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "Ctrl+Alt";+    };+    type "LOCAL_EIGHT_LEVEL" {+        modifiers= Shift+Lock+Control+LevelThree;+        map[Shift+Lock]= Level1;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+Lock+LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level4;+        map[Control]= Level5;+        map[Shift+Lock+Control]= Level5;+        map[Shift+Control]= Level6;+        map[Lock+Control]= Level6;+        map[Control+LevelThree]= Level7;+        map[Shift+Lock+Control+LevelThree]= Level7;+        map[Shift+Control+LevelThree]= Level8;+        map[Lock+Control+LevelThree]= Level8;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Level3";+        level_name[Level4]= "Shift Level3";+        level_name[Level5]= "Ctrl";+        level_name[Level6]= "Shift Ctrl";+        level_name[Level7]= "Level3 Ctrl";+        level_name[Level8]= "Shift Level3 Ctrl";+    };+    type "THREE_LEVEL" {+        modifiers= Shift+LevelThree;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Level3";+    };+    type "EIGHT_LEVEL" {+        modifiers= Shift+LevelThree+LevelFive;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[LevelFive]= Level5;+        map[Shift+LevelFive]= Level6;+        map[LevelThree+LevelFive]= Level7;+        map[Shift+LevelThree+LevelFive]= Level8;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "X";+        level_name[Level6]= "X Shift";+        level_name[Level7]= "X Alt Base";+        level_name[Level8]= "X Shift Alt";+    };+    type "EIGHT_LEVEL_ALPHABETIC" {+        modifiers= Shift+Lock+LevelThree+LevelFive;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level4;+        map[Shift+Lock+LevelThree]= Level3;+        map[LevelFive]= Level5;+        map[Shift+LevelFive]= Level6;+        map[Lock+LevelFive]= Level6;+        map[LevelThree+LevelFive]= Level7;+        map[Shift+LevelThree+LevelFive]= Level8;+        map[Lock+LevelThree+LevelFive]= Level8;+        map[Shift+Lock+LevelThree+LevelFive]= Level7;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "X";+        level_name[Level6]= "X Shift";+        level_name[Level7]= "X Alt Base";+        level_name[Level8]= "X Shift Alt";+    };+    type "EIGHT_LEVEL_SEMIALPHABETIC" {+        modifiers= Shift+Lock+LevelThree+LevelFive;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level3;+        preserve[Lock+LevelThree]= Lock;+        map[Shift+Lock+LevelThree]= Level4;+        preserve[Shift+Lock+LevelThree]= Lock;+        map[LevelFive]= Level5;+        map[Shift+LevelFive]= Level6;+        map[Lock+LevelFive]= Level6;+        preserve[Lock+LevelFive]= Lock;+        map[Shift+Lock+LevelFive]= Level6;+        preserve[Shift+Lock+LevelFive]= Lock;+        map[LevelThree+LevelFive]= Level7;+        map[Shift+LevelThree+LevelFive]= Level8;+        map[Lock+LevelThree+LevelFive]= Level7;+        preserve[Lock+LevelThree+LevelFive]= Lock;+        map[Shift+Lock+LevelThree+LevelFive]= Level8;+        preserve[Shift+Lock+LevelThree+LevelFive]= Lock;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "X";+        level_name[Level6]= "X Shift";+        level_name[Level7]= "X Alt Base";+        level_name[Level8]= "X Shift Alt";+    };+    type "FOUR_LEVEL" {+        modifiers= Shift+LevelThree;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_ALPHABETIC" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level4;+        map[Shift+Lock+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_SEMIALPHABETIC" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[Lock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level3;+        preserve[Lock+LevelThree]= Lock;+        map[Shift+Lock+LevelThree]= Level4;+        preserve[Shift+Lock+LevelThree]= Lock;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_MIXED_KEYPAD" {+        modifiers= Shift+NumLock+LevelThree;+        map[Shift+NumLock]= Level1;+        map[NumLock]= Level2;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[NumLock+LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Shift+NumLock+LevelThree]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Number";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+    };+    type "FOUR_LEVEL_X" {+        modifiers= Shift+Control+Alt+LevelThree;+        map[LevelThree]= Level2;+        map[Shift+LevelThree]= Level3;+        map[Control+Alt]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Alt Base";+        level_name[Level3]= "Shift Alt";+        level_name[Level4]= "Ctrl+Alt";+    };+    type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[Lock]= Level4;+        preserve[Lock]= Lock;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock+LevelThree]= Level3;+        preserve[Lock+LevelThree]= Lock;+        map[Shift+Lock+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "AltGr Base";+        level_name[Level4]= "Shift AltGr";+    };+    type "FOUR_LEVEL_PLUS_LOCK" {+        modifiers= Shift+Lock+LevelThree;+        map[Shift]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[Lock]= Level5;+        map[Shift+Lock]= Level2;+        map[Lock+LevelThree]= Level3;+        map[Shift+Lock+LevelThree]= Level4;+        level_name[Level1]= "Base";+        level_name[Level2]= "Shift";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Shift Alt";+        level_name[Level5]= "Lock";+    };+    type "FOUR_LEVEL_KEYPAD" {+        modifiers= Shift+NumLock+LevelThree;+        map[Shift]= Level2;+        map[NumLock]= Level2;+        map[LevelThree]= Level3;+        map[Shift+LevelThree]= Level4;+        map[NumLock+LevelThree]= Level4;+        map[Shift+NumLock+LevelThree]= Level3;+        level_name[Level1]= "Base";+        level_name[Level2]= "Number";+        level_name[Level3]= "Alt Base";+        level_name[Level4]= "Alt Number";+    };+};++xkb_compatibility "complete" {++    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;++    interpret.useModMapMods= AnyLevel;+    interpret.repeat= False;+    interpret.locking= False;+    interpret ISO_Level2_Latch+Exactly(Shift) {+        useModMapMods=level1;+        action= LatchMods(modifiers=Shift,clearLocks,latchToLock);+    };+    interpret Shift_Lock+AnyOf(Shift+Lock) {+        action= LockMods(modifiers=Shift);+    };+    interpret Num_Lock+AnyOf(all) {+        virtualModifier= NumLock;+        action= LockMods(modifiers=NumLock);+    };+    interpret ISO_Level3_Shift+AnyOf(all) {+        virtualModifier= LevelThree;+        useModMapMods=level1;+        action= SetMods(modifiers=LevelThree,clearLocks);+    };+    interpret ISO_Level3_Latch+AnyOf(all) {+        virtualModifier= LevelThree;+        useModMapMods=level1;+        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+    };+    interpret ISO_Level3_Lock+AnyOf(all) {+        virtualModifier= LevelThree;+        useModMapMods=level1;+        action= LockMods(modifiers=LevelThree);+    };+    interpret Alt_L+AnyOf(all) {+        virtualModifier= Alt;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Alt_R+AnyOf(all) {+        virtualModifier= Alt;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Meta_L+AnyOf(all) {+        virtualModifier= Meta;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Meta_R+AnyOf(all) {+        virtualModifier= Meta;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Super_L+AnyOf(all) {+        virtualModifier= Super;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Super_R+AnyOf(all) {+        virtualModifier= Super;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Hyper_L+AnyOf(all) {+        virtualModifier= Hyper;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Hyper_R+AnyOf(all) {+        virtualModifier= Hyper;+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    interpret Scroll_Lock+AnyOf(all) {+        virtualModifier= ScrollLock;+        action= LockMods(modifiers=modMapMods);+    };+    interpret ISO_Level5_Shift+AnyOf(all) {+        virtualModifier= LevelFive;+        useModMapMods=level1;+        action= SetMods(modifiers=LevelFive,clearLocks);+    };+    interpret ISO_Level5_Latch+AnyOf(all) {+        virtualModifier= LevelFive;+        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+    };+    interpret ISO_Level5_Lock+AnyOf(all) {+        virtualModifier= LevelFive;+        action= LockMods(modifiers=LevelFive);+    };+    interpret Mode_switch+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= SetGroup(group=+1);+    };+    interpret ISO_Level3_Shift+AnyOfOrNone(all) {+        action= SetMods(modifiers=LevelThree,clearLocks);+    };+    interpret ISO_Level3_Latch+AnyOfOrNone(all) {+        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);+    };+    interpret ISO_Level3_Lock+AnyOfOrNone(all) {+        action= LockMods(modifiers=LevelThree);+    };+    interpret ISO_Group_Latch+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= LatchGroup(group=2);+    };+    interpret ISO_Next_Group+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= LockGroup(group=+1);+    };+    interpret ISO_Prev_Group+AnyOfOrNone(all) {+        virtualModifier= AltGr;+        useModMapMods=level1;+        action= LockGroup(group=-1);+    };+    interpret ISO_First_Group+AnyOfOrNone(all) {+        action= LockGroup(group=1);+    };+    interpret ISO_Last_Group+AnyOfOrNone(all) {+        action= LockGroup(group=2);+    };+    interpret KP_1+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+1);+    };+    interpret KP_End+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+1);+    };+    interpret KP_2+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=+1);+    };+    interpret KP_Down+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=+1);+    };+    interpret KP_3+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+1);+    };+    interpret KP_Next+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+1);+    };+    interpret KP_4+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+0);+    };+    interpret KP_Left+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+0);+    };+    interpret KP_6+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+0);+    };+    interpret KP_Right+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+0);+    };+    interpret KP_7+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=-1);+    };+    interpret KP_Home+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=-1);+    };+    interpret KP_8+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=-1);+    };+    interpret KP_Up+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+0,y=-1);+    };+    interpret KP_9+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=-1);+    };+    interpret KP_Prior+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=-1);+    };+    interpret KP_5+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default);+    };+    interpret KP_Begin+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default);+    };+    interpret KP_F2+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=1);+    };+    interpret KP_Divide+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=1);+    };+    interpret KP_F3+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=2);+    };+    interpret KP_Multiply+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=2);+    };+    interpret KP_F4+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=3);+    };+    interpret KP_Subtract+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=3);+    };+    interpret KP_Separator+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default,count=2);+    };+    interpret KP_Add+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default,count=2);+    };+    interpret KP_0+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=lock);+    };+    interpret KP_Insert+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=lock);+    };+    interpret KP_Decimal+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=unlock);+    };+    interpret KP_Delete+AnyOfOrNone(all) {+        repeat= True;+        action= LockPtrBtn(button=default,affect=unlock);+    };+    interpret F25+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=1);+    };+    interpret F26+AnyOfOrNone(all) {+        repeat= True;+        action= SetPtrDflt(affect=button,button=2);+    };+    interpret F27+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=-1);+    };+    interpret F29+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=-1);+    };+    interpret F31+AnyOfOrNone(all) {+        repeat= True;+        action= PtrBtn(button=default);+    };+    interpret F33+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=-1,y=+1);+    };+    interpret F35+AnyOfOrNone(all) {+        repeat= True;+        action= MovePtr(x=+1,y=+1);+    };+    interpret Pointer_Button_Dflt+AnyOfOrNone(all) {+        action= PtrBtn(button=default);+    };+    interpret Pointer_Button1+AnyOfOrNone(all) {+        action= PtrBtn(button=1);+    };+    interpret Pointer_Button2+AnyOfOrNone(all) {+        action= PtrBtn(button=2);+    };+    interpret Pointer_Button3+AnyOfOrNone(all) {+        action= PtrBtn(button=3);+    };+    interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {+        action= PtrBtn(button=default,count=2);+    };+    interpret Pointer_DblClick1+AnyOfOrNone(all) {+        action= PtrBtn(button=1,count=2);+    };+    interpret Pointer_DblClick2+AnyOfOrNone(all) {+        action= PtrBtn(button=2,count=2);+    };+    interpret Pointer_DblClick3+AnyOfOrNone(all) {+        action= PtrBtn(button=3,count=2);+    };+    interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {+        action= LockPtrBtn(button=default,affect=both);+    };+    interpret Pointer_Drag1+AnyOfOrNone(all) {+        action= LockPtrBtn(button=1,affect=both);+    };+    interpret Pointer_Drag2+AnyOfOrNone(all) {+        action= LockPtrBtn(button=2,affect=both);+    };+    interpret Pointer_Drag3+AnyOfOrNone(all) {+        action= LockPtrBtn(button=3,affect=both);+    };+    interpret Pointer_EnableKeys+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeys);+    };+    interpret Pointer_Accelerate+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeysAccel);+    };+    interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {+        action= SetPtrDflt(affect=button,button=+1);+    };+    interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {+        action= SetPtrDflt(affect=button,button=-1);+    };+    interpret AccessX_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=AccessXKeys);+    };+    interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=AccessXFeedback);+    };+    interpret RepeatKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=RepeatKeys);+    };+    interpret SlowKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=SlowKeys);+    };+    interpret BounceKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=BounceKeys);+    };+    interpret StickyKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=StickyKeys);+    };+    interpret MouseKeys_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeys);+    };+    interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=MouseKeysAccel);+    };+    interpret Overlay1_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=Overlay1);+    };+    interpret Overlay2_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=Overlay2);+    };+    interpret AudibleBell_Enable+AnyOfOrNone(all) {+        action= LockControls(controls=AudibleBell);+    };+    interpret Terminate_Server+AnyOfOrNone(all) {+        action= Terminate();+    };+    interpret Alt_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Alt,clearLocks);+    };+    interpret Alt_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Alt,clearLocks);+    };+    interpret Meta_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Meta,clearLocks);+    };+    interpret Meta_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Meta,clearLocks);+    };+    interpret Super_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Super,clearLocks);+    };+    interpret Super_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Super,clearLocks);+    };+    interpret Hyper_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Hyper,clearLocks);+    };+    interpret Hyper_R+AnyOfOrNone(all) {+        action= SetMods(modifiers=Hyper,clearLocks);+    };+    interpret Shift_L+AnyOfOrNone(all) {+        action= SetMods(modifiers=Shift,clearLocks);+    };+    interpret XF86Switch_VT_1+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=1,!same);+    };+    interpret XF86Switch_VT_2+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=2,!same);+    };+    interpret XF86Switch_VT_3+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=3,!same);+    };+    interpret XF86Switch_VT_4+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=4,!same);+    };+    interpret XF86Switch_VT_5+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=5,!same);+    };+    interpret XF86Switch_VT_6+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=6,!same);+    };+    interpret XF86Switch_VT_7+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=7,!same);+    };+    interpret XF86Switch_VT_8+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=8,!same);+    };+    interpret XF86Switch_VT_9+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=9,!same);+    };+    interpret XF86Switch_VT_10+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=10,!same);+    };+    interpret XF86Switch_VT_11+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=11,!same);+    };+    interpret XF86Switch_VT_12+AnyOfOrNone(all) {+        repeat= True;+        action= SwitchScreen(screen=12,!same);+    };+    interpret XF86LogGrabInfo+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);+    };+    interpret XF86LogWindowTree+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);+    };+    interpret XF86Next_VMode+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+    };+    interpret XF86Prev_VMode+AnyOfOrNone(all) {+        repeat= True;+        action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);+    };+    interpret ISO_Level5_Shift+AnyOfOrNone(all) {+        action= SetMods(modifiers=LevelFive,clearLocks);+    };+    interpret ISO_Level5_Latch+AnyOfOrNone(all) {+        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);+    };+    interpret ISO_Level5_Lock+AnyOfOrNone(all) {+        action= LockMods(modifiers=LevelFive);+    };+    interpret Caps_Lock+AnyOfOrNone(all) {+        action= LockMods(modifiers=Lock);+    };+    interpret Any+Exactly(Lock) {+        action= LockMods(modifiers=Lock);+    };+    interpret Any+AnyOf(all) {+        action= SetMods(modifiers=modMapMods,clearLocks);+    };+    group 2 = AltGr;+    group 3 = AltGr;+    group 4 = AltGr;+    indicator "Caps Lock" {+        !allowExplicit;+        whichModState= locked;+        modifiers= Lock;+    };+    indicator "Num Lock" {+        !allowExplicit;+        whichModState= locked;+        modifiers= NumLock;+    };+    indicator "Scroll Lock" {+        whichModState= locked;+        modifiers= ScrollLock;+    };+    indicator "Shift Lock" {+        !allowExplicit;+        whichModState= locked;+        modifiers= Shift;+    };+    indicator "Group 2" {+        !allowExplicit;+        groups= 0xfe;+    };+    indicator "Mouse Keys" {+        indicatorDrivesKeyboard;+        controls= mouseKeys;+    };+};++xkb_symbols "pc+de+inet(evdev)+group(menu_toggle)+ctrl(nocaps)" {++    name[group1]="German";++    key  <ESC> {         [          Escape ] };+    key <AE01> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               1,          exclam,     onesuperior,      exclamdown ]+    };+    key <AE02> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               2,        quotedbl,     twosuperior,       oneeighth ]+    };+    key <AE03> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               3,         section,   threesuperior,        sterling ]+    };+    key <AE04> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               4,          dollar,      onequarter,        currency ]+    };+    key <AE05> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               5,         percent,         onehalf,    threeeighths ]+    };+    key <AE06> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               6,       ampersand,         notsign,     fiveeighths ]+    };+    key <AE07> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               7,           slash,       braceleft,    seveneighths ]+    };+    key <AE08> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               8,       parenleft,     bracketleft,       trademark ]+    };+    key <AE09> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               9,      parenright,    bracketright,       plusminus ]+    };+    key <AE10> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [               0,           equal,      braceright,          degree ]+    };+    key <AE11> {+        type= "FOUR_LEVEL_PLUS_LOCK",+        symbols[Group1]= [          ssharp,        question,       backslash,    questiondown,           U1E9E ]+    };+    key <AE12> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [      dead_acute,      dead_grave,    dead_cedilla,     dead_ogonek ]+    };+    key <BKSP> {         [       BackSpace,       BackSpace ] };+    key  <TAB> {         [             Tab,    ISO_Left_Tab ] };+    key <AD01> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               q,               Q,              at,     Greek_OMEGA ]+    };+    key <AD02> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               w,               W,         lstroke,         Lstroke ]+    };+    key <AD03> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               e,               E,        EuroSign,        EuroSign ]+    };+    key <AD04> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               r,               R,       paragraph,      registered ]+    };+    key <AD05> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               t,               T,          tslash,          Tslash ]+    };+    key <AD06> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               z,               Z,       leftarrow,             yen ]+    };+    key <AD07> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               u,               U,       downarrow,         uparrow ]+    };+    key <AD08> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               i,               I,      rightarrow,        idotless ]+    };+    key <AD09> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               o,               O,          oslash,          Oslash ]+    };+    key <AD10> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               p,               P,           thorn,           THORN ]+    };+    key <AD11> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [      udiaeresis,      Udiaeresis,  dead_diaeresis,  dead_abovering ]+    };+    key <AD12> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [            plus,        asterisk,      asciitilde,          macron ]+    };+    key <RTRN> {         [          Return ] };+    key <LCTL> {         [       Control_L ] };+    key <AC01> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               a,               A,              ae,              AE ]+    };+    key <AC02> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               s,               S,           U017F,           U1E9E ]+    };+    key <AC03> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               d,               D,             eth,             ETH ]+    };+    key <AC04> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               f,               F,         dstroke,     ordfeminine ]+    };+    key <AC05> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               g,               G,             eng,             ENG ]+    };+    key <AC06> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               h,               H,         hstroke,         Hstroke ]+    };+    key <AC07> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               j,               J,   dead_belowdot,   dead_abovedot ]+    };+    key <AC08> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               k,               K,             kra,       ampersand ]+    };+    key <AC09> {+        type= "FOUR_LEVEL_ALPHABETIC",+        symbols[Group1]= [               l,               L,         lstroke,         Lstroke ]+    };+    key <AC10> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [      odiaeresis,      Odiaeresis, dead_doubleacute,   dead_belowdot ]+    };+    key <AC11> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [      adiaeresis,      Adiaeresis, dead_circumflex,      dead_caron ]+    };+    key <TLDE> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [ dead_circumflex,          degree,           U2032,           U2033 ]+    };+    key <LFSH> {         [         Shift_L ] };+    key <BKSL> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [      numbersign,      apostrophe, rightsinglequotemark,      dead_breve ]+    };+    key <AB01> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               y,               Y,  guillemotright,           U203A ]+    };+    key <AB02> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               x,               X,   guillemotleft,           U2039 ]+    };+    key <AB03> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               c,               C,            cent,       copyright ]+    };+    key <AB04> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               v,               V, doublelowquotemark, singlelowquotemark ]+    };+    key <AB05> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               b,               B, leftdoublequotemark, leftsinglequotemark ]+    };+    key <AB06> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               n,               N, rightdoublequotemark, rightsinglequotemark ]+    };+    key <AB07> {+        type= "FOUR_LEVEL_SEMIALPHABETIC",+        symbols[Group1]= [               m,               M,              mu,       masculine ]+    };+    key <AB08> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [           comma,       semicolon,  periodcentered,        multiply ]+    };+    key <AB09> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [          period,           colon,           U2026,        division ]+    };+    key <AB10> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [           minus,      underscore,          endash,          emdash ]+    };+    key <RTSH> {         [         Shift_R ] };+    key <KPMU> {+        type= "CTRL+ALT",+        symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ]+    };+    key <LALT> {         [           Alt_L,          Meta_L ] };+    key <SPCE> {         [           space ] };+    key <CAPS> {         [       Control_L,       Control_L ] };+    key <FK01> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]+    };+    key <FK02> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]+    };+    key <FK03> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]+    };+    key <FK04> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]+    };+    key <FK05> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]+    };+    key <FK06> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]+    };+    key <FK07> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]+    };+    key <FK08> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]+    };+    key <FK09> {+        type= "CTRL+ALT",+        symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]+    };+    key <FK10> {+        type= "CTRL+ALT",+        symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]+    };+    key <NMLK> {         [        Num_Lock ] };+    key <SCLK> {         [     Scroll_Lock ] };+    key  <KP7> {         [         KP_Home,            KP_7 ] };+    key  <KP8> {         [           KP_Up,            KP_8 ] };+    key  <KP9> {         [        KP_Prior,            KP_9 ] };+    key <KPSU> {+        type= "CTRL+ALT",+        symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ]+    };+    key  <KP4> {         [         KP_Left,            KP_4 ] };+    key  <KP5> {         [        KP_Begin,            KP_5 ] };+    key  <KP6> {         [        KP_Right,            KP_6 ] };+    key <KPAD> {+        type= "CTRL+ALT",+        symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ]+    };+    key  <KP1> {         [          KP_End,            KP_1 ] };+    key  <KP2> {         [         KP_Down,            KP_2 ] };+    key  <KP3> {         [         KP_Next,            KP_3 ] };+    key  <KP0> {         [       KP_Insert,            KP_0 ] };+    key <KPDL> {+        type= "KEYPAD",+        symbols[Group1]= [       KP_Delete,    KP_Separator ]+    };+    key <LVL3> {+        type= "ONE_LEVEL",+        symbols[Group1]= [ ISO_Level3_Shift ],+        actions[Group1]= [ SetMods(modifiers=LevelThree) ]+    };+    key <LSGT> {+        type= "FOUR_LEVEL",+        symbols[Group1]= [            less,         greater,             bar,       brokenbar ]+    };+    key <FK11> {+        type= "CTRL+ALT",+        symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]+    };+    key <FK12> {+        type= "CTRL+ALT",+        symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]+    };+    key <KATA> {         [        Katakana ] };+    key <HIRA> {         [        Hiragana ] };+    key <HENK> {         [     Henkan_Mode ] };+    key <HKTG> {         [ Hiragana_Katakana ] };+    key <MUHE> {         [        Muhenkan ] };+    key <KPEN> {         [        KP_Enter ] };+    key <RCTL> {         [       Control_R ] };+    key <KPDV> {+        type= "CTRL+ALT",+        symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ]+    };+    key <PRSC> {+        type= "PC_ALT_LEVEL2",+        symbols[Group1]= [           Print,         Sys_Req ]+    };+    key <RALT> {+        type= "ONE_LEVEL",+        symbols[Group1]= [ ISO_Level3_Shift ]+    };+    key <LNFD> {         [        Linefeed ] };+    key <HOME> {         [            Home ] };+    key   <UP> {         [              Up ] };+    key <PGUP> {         [           Prior ] };+    key <LEFT> {         [            Left ] };+    key <RGHT> {         [           Right ] };+    key  <END> {         [             End ] };+    key <DOWN> {         [            Down ] };+    key <PGDN> {         [            Next ] };+    key  <INS> {         [          Insert ] };+    key <DELE> {         [          Delete ] };+    key <MUTE> {         [   XF86AudioMute ] };+    key <VOL-> {         [ XF86AudioLowerVolume ] };+    key <VOL+> {         [ XF86AudioRaiseVolume ] };+    key <POWR> {         [    XF86PowerOff ] };+    key <KPEQ> {         [        KP_Equal ] };+    key <I126> {         [       plusminus ] };+    key <PAUS> {+        type= "PC_CONTROL_LEVEL2",+        symbols[Group1]= [           Pause,           Break ]+    };+    key <I128> {         [     XF86LaunchA ] };+    key <I129> {         [      KP_Decimal,      KP_Decimal ] };+    key <HNGL> {         [          Hangul ] };+    key <HJCV> {         [    Hangul_Hanja ] };+    key <LWIN> {         [         Super_L ] };+    key <RWIN> {         [         Super_R ] };+    key <COMP> {         [  ISO_Next_Group,            Menu ] };+    key <STOP> {         [          Cancel ] };+    key <AGAI> {         [            Redo ] };+    key <PROP> {         [        SunProps ] };+    key <UNDO> {         [            Undo ] };+    key <FRNT> {         [        SunFront ] };+    key <COPY> {         [        XF86Copy ] };+    key <OPEN> {         [        XF86Open ] };+    key <PAST> {         [       XF86Paste ] };+    key <FIND> {         [            Find ] };+    key  <CUT> {         [         XF86Cut ] };+    key <HELP> {         [            Help ] };+    key <I147> {         [      XF86MenuKB ] };+    key <I148> {         [  XF86Calculator ] };+    key <I150> {         [       XF86Sleep ] };+    key <I151> {         [      XF86WakeUp ] };+    key <I152> {         [    XF86Explorer ] };+    key <I153> {         [        XF86Send ] };+    key <I155> {         [        XF86Xfer ] };+    key <I156> {         [     XF86Launch1 ] };+    key <I157> {         [     XF86Launch2 ] };+    key <I158> {         [         XF86WWW ] };+    key <I159> {         [         XF86DOS ] };+    key <I160> {         [ XF86ScreenSaver ] };+    key <I162> {         [ XF86RotateWindows ] };+    key <I163> {         [        XF86Mail ] };+    key <I164> {         [   XF86Favorites ] };+    key <I165> {         [  XF86MyComputer ] };+    key <I166> {         [        XF86Back ] };+    key <I167> {         [     XF86Forward ] };+    key <I169> {         [       XF86Eject ] };+    key <I170> {         [       XF86Eject,       XF86Eject ] };+    key <I171> {         [   XF86AudioNext ] };+    key <I172> {         [   XF86AudioPlay,  XF86AudioPause ] };+    key <I173> {         [   XF86AudioPrev ] };+    key <I174> {         [   XF86AudioStop,       XF86Eject ] };+    key <I175> {         [ XF86AudioRecord ] };+    key <I176> {         [ XF86AudioRewind ] };+    key <I177> {         [       XF86Phone ] };+    key <I179> {         [       XF86Tools ] };+    key <I180> {         [    XF86HomePage ] };+    key <I181> {         [      XF86Reload ] };+    key <I182> {         [       XF86Close ] };+    key <I185> {         [    XF86ScrollUp ] };+    key <I186> {         [  XF86ScrollDown ] };+    key <I187> {         [       parenleft ] };+    key <I188> {         [      parenright ] };+    key <I189> {         [         XF86New ] };+    key <I190> {         [            Redo ] };+    key <FK13> {         [       XF86Tools ] };+    key <FK14> {         [     XF86Launch5 ] };+    key <FK15> {         [     XF86Launch6 ] };+    key <FK16> {         [     XF86Launch7 ] };+    key <FK17> {         [     XF86Launch8 ] };+    key <FK18> {         [     XF86Launch9 ] };+    key <FK21> {         [ XF86TouchpadToggle ] };+    key <FK22> {         [  XF86TouchpadOn ] };+    key <FK23> {         [ XF86TouchpadOff ] };+    key <MDSW> {         [     Mode_switch ] };+    key  <ALT> {         [        NoSymbol,           Alt_L ] };+    key <META> {         [        NoSymbol,          Meta_L ] };+    key <SUPR> {         [        NoSymbol,         Super_L ] };+    key <HYPR> {         [        NoSymbol,         Hyper_L ] };+    key <I208> {         [   XF86AudioPlay ] };+    key <I209> {         [  XF86AudioPause ] };+    key <I210> {         [     XF86Launch3 ] };+    key <I211> {         [     XF86Launch4 ] };+    key <I212> {         [     XF86LaunchB ] };+    key <I213> {         [     XF86Suspend ] };+    key <I214> {         [       XF86Close ] };+    key <I215> {         [   XF86AudioPlay ] };+    key <I216> {         [ XF86AudioForward ] };+    key <I218> {         [           Print ] };+    key <I220> {         [      XF86WebCam ] };+    key <I223> {         [        XF86Mail ] };+    key <I224> {         [   XF86Messenger ] };+    key <I225> {         [      XF86Search ] };+    key <I226> {         [          XF86Go ] };+    key <I227> {         [     XF86Finance ] };+    key <I228> {         [        XF86Game ] };+    key <I229> {         [        XF86Shop ] };+    key <I231> {         [          Cancel ] };+    key <I232> {         [ XF86MonBrightnessDown ] };+    key <I233> {         [ XF86MonBrightnessUp ] };+    key <I234> {         [  XF86AudioMedia ] };+    key <I235> {         [     XF86Display ] };+    key <I236> {         [ XF86KbdLightOnOff ] };+    key <I237> {         [ XF86KbdBrightnessDown ] };+    key <I238> {         [ XF86KbdBrightnessUp ] };+    key <I239> {         [        XF86Send ] };+    key <I240> {         [       XF86Reply ] };+    key <I241> {         [ XF86MailForward ] };+    key <I242> {         [        XF86Save ] };+    key <I243> {         [   XF86Documents ] };+    key <I244> {         [     XF86Battery ] };+    key <I245> {         [   XF86Bluetooth ] };+    key <I246> {         [        XF86WLAN ] };+    modifier_map Control { <LCTL> };+    modifier_map Shift { <LFSH> };+    modifier_map Shift { <RTSH> };+    modifier_map Mod1 { <LALT> };+    modifier_map Control { <CAPS> };+    modifier_map Mod2 { <NMLK> };+    modifier_map Mod5 { <LVL3> };+    modifier_map Control { <RCTL> };+    modifier_map Mod4 { <LWIN> };+    modifier_map Mod4 { <RWIN> };+    modifier_map Mod5 { <MDSW> };+    modifier_map Mod1 { <META> };+    modifier_map Mod4 { <SUPR> };+    modifier_map Mod4 { <HYPR> };+};++};
+ data/rules/base view
@@ -0,0 +1,1197 @@+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part+//+//  Rules for resolving XKB components for use with XFree86+//  Copyright 1996 by Joseph Moss+//+//  2002 Modifier: Ivan Pascal      The XFree86 Project+//++// If you want non-latin layouts implicitly include the en_US layout+// uncomment lines below+//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \+//              in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \+//              ru scc sy syr tel th tj tam ua uz++// PC models+! $pcmodels = pc101 pc102 pc104 pc105++// Microsoft models (using MS geometry)+! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose++// Nokia devices and keyboards+! $nokiamodels = nokiasu8w nokiarx44 nokiarx51++// PC geometries - they have special geometry but symbols are mostly pc105+! $pcgeometries = latitude++// TypeMatrix geometries+! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106++// Layouts that provide further specializations for the OLPC+! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us ++! $macbooks = macbook78 macbook79+! $maclaptop = ibook powerbook macbook78 macbook79+! $applealu = applealu_ansi applealu_iso applealu_jis+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79++! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us++! $azerty = be fr+! $qwertz = al cz de hr hu ro si sk ++! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \+              airkey \+              apple armada azonaRF2300 \+              benqx brother \+              btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \+              cherryblue cherrybluea cherryblueb \+              cherrycyboard cherrycmexpert \+              chicony chicony0108 chicony0420 chicony9885 \+              compalfl90 \+              compaqeak8 compaqik7 compaqik13 compaqik18 \+              creativedw7000 \+              cymotionlinux \+              dell dellm65 inspiron dellusbmm \+              emachines ennyah_dkb1008 evdev \+              genius geniuscomfy2 \+              gyration honeywell_euroboard \+              hp250x hp5xx hp500fa hpdv5 \+              hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \+              ibm_spacesaver ipaq inspiron intel \+              logiaccess logicda logicink \+              logiex110 logiclx300 \+              logiinkse logiinkseusb logiitc logiik \+              logitech_base itouch logiultrax \+              logitech_g15 \+              logidinovo logidinovoedge \+              microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \+              microsoftoffice microsoftmult \+              mx1998 mx2500 mx2750 \+              oretec \+              pc105 \+              presario propeller \+              qtronix \+              rapidaccess rapidaccess2 thinkpad60 \+              samsung4500 samsung4510 \+              silvercrest \+              sk1300 sk2500 sk6200 sk7100 \+              sven sven303 symplon \+              toshiba_s3000 trust trustda \+              unitekkb1925 yahoo++// all layouts with 3rd and 4th groups+! $threelevellayouts = al az \+              be br bt \+              ca ch cs cz \+              de dk \+              ee es \+              fi fo fr \+              gb gr \+              hu \+              ie ir is it \+              latam \+              lk lt \+              mn mt \+              nl no \+              pl pt \+              ro \+              se sk \+              tr \+              us \+              vn \+              za++! $evdevkbds = ibm_spacesaver++! $thinkpads = thinkpad thinkpad60 thinkpadz60++! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \+         sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \+         sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb++! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb++// Sun Type_6_7 keyboards with custom layouts+! $sun_custom = ara be br ca ch cz de dk \+                ee es fi fr gb gr it jp \+                kr lt lv nl no pl pt ro \+                ru se sk tr tw ua us++! $sun_var =  sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \+              sun_type7 sun_type7_suncompat suncompat++! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat++! $htcdreamlayouts = us it de++! $dvoraklayouts = br ca de ee es fr gb no pl se us++! model		=	keycodes+  amiga		=	amiga(de)+  ataritt	=	ataritt(de)+  empty         =       empty+ $sun_jp	=	sun(type6_jp_usb)+ $sun		=	sun(type6_usb)+  pc98		=	xfree98(pc98)+ $applealu	=	macintosh(alukbd)+  macintosh_hhk	=	macintosh(hhk)+  macintosh_old	=	macintosh(old)+ $macs   	=	macintosh+  thinkpadz60	=	xfree86(thinkpadz60)+  *		=	xfree86++! layout[1]	=	keycodes+  $azerty       =       +aliases(azerty)+  $qwertz       =       +aliases(qwertz)+  *             =       +aliases(qwerty)++! layout	=	keycodes+  $azerty       =       +aliases(azerty)+  $qwertz       =       +aliases(qwertz)+  *             =       +aliases(qwerty)++! option	=	keycodes++! model		layout	=	geometry+  thinkpad     us              =       thinkpad(us)++! model		=	geometry+  microsoftelite	=	microsoft(elite)+ $msmodels	=	microsoft(natural)+  dell101	=	dell(dell101)+  dellm65	=	dell(dellm65)+  latitude	=	dell(latitude)+  flexpro	=	keytronic(FlexPro)+  hp6000	=	hp(omnibook)+  hpmini110	=	hp(mini110)+  hpdv5		=	hp(dv5)+  omnikey101	=	northgate(omnikey101)+  sanwaskbkg3	=	sanwa(sanwaskbkg3)+ $pcmodels	=	pc(%m)+ $pcgeometries	=	pc(%m)+  everex	=	everex(STEPnote)+  thinkpad	=	thinkpad(intl)+  thinkpad60	=	thinkpad(60)+  thinkpadz60	=	thinkpad(60)+ $tmgeometries	=	typematrix(%m)+  winbook	=	winbook(XP5)+  pc98		=	nec(pc98)+ $applealu	=	macintosh(%m)+ $macbooks      =       macintosh(%m)+ $macs		=	macintosh(macintosh)+  hhk		=	hhk(basic)+  kinesis	=	kinesis(model100)+ $nokiamodels	=	nokia(%m)+  sun_type6_jp          =   sun(type6jp)+  sun_type6_usb         =   sun(type6)+  sun_type6_euro_usb    =   sun(type6tuv)+  sun_type6_jp_usb      =   sun(type6jp)+  sun_type6_unix_usb    =   sun(type6unix)+  sun_type7_jp_usb      =   sun(type6jp)+  sun_type7_usb         =   sun(type7)+  sun_type7_euro_usb    =   sun(type7tuv)+  sun_type7_unix_usb    =   sun(type7unix)+  *		=       pc(pc104)++! model		layout		variant		=	symbols+  *		ben		basic		=	pc+in(ben)+  *		ben		probhat		=	pc+in(ben_probhat)+  *		dev		basic		=	pc+in(deva)+  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak)+  *		dvorak		basic		=	pc+us(dvorak)+  *		dvorak		pl_basic		=	pc+pl(dvorak)+  *		dvorak		pl		=	pc+pl(dvorak_quotes)+  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)+  *		dzdwi		basic		=	pc+bt(basic)+  *		fi		basic		=	pc+fi(classic)+  *		ge		azerty_tskapo		=	pc+fr(geo)+  *		guj		basic		=	pc+in(guj)+  *		gur		basic		=	pc+in(guru)+  *		ie		laptop		=	pc+ie(basic)+  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)+  *		in		urd		=	pc+in(urd-phonetic)+  *		iu		basic		=	pc+ca(ike)+  *		lo		basic		=	pc+la(basic)+  *		kan		basic		=	pc+in(kan)+  *		mal		basic		=	pc+in(mal)+  *		mal		mlplusnum		=	pc+in(mal)+  *		ogham		basic		=	pc+ie(ogam)+  *		ogham		laptop		=	pc+ie(ogam)+  *		ogham		is434		=	pc+ie(ogam_is434)+  *		ogham		is434laptop		=	pc+ie(ogam_is434)+  *		ori		basic		=	pc+in(ori)+  *		ro		de		=	pc+ro(winkeys)+  *		ro		us		=	pc+ro(std)+  *		ro		academic		=	pc+ro(std)+  *		ro		std_comma		=	pc+ro(std)+  *		ro		comma		=	pc+ro(basic)+  *		ru		os		=	pc+ru(os_legacy)+  *		pk		urd		=	pc+pk(urd-phonetic)+  *		sapmi		basic		=	pc+no(smi)+  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)+  *		sapmi		sefi		=	pc+fi(smi)+  *		sin		phonetic-static		=	pc+in(sin_phonetic)+  *		syr		basic		=	pc+sy(syc)+  *		syr		phonetic		=	pc+sy(syc_phonetic)+  *		tam		INSCRIPT		=	pc+in(tam)+  *		tam		UNI		=	pc+in(tam_unicode)+  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)+  *		tam		TAB		=	pc+in(tam_TAB)+  *		tam		TSCII		=	pc+in(tam_TSCII)+  *		tel		basic		=	pc+in(tel)+  *		yu		basic		=	pc+srp(latin)+  *		yu		unicode		=	pc+srp(latinunicode)+  *		yu		yz		=	pc+srp(latinyz)+  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)+  classmate	us		intl		=	pc+us(classmate-intl)+  classmate	us		alt-intl	=	pc+us(classmate-alt-intl)+  classmate	us		altgr-intl	=	pc+us(classmate-altgr-intl)+  nokiarx51	cz		qwerty		=	nokia_vndr/rx-51(cz_qwerty)+  *			$sun_custom	$sun_var	=	pc+sun_vndr/%l%(v)++! model		layout				=	symbols+  *		ar			=	pc+ara+  *		ben			=	pc+in(ben)+  *		bs			=	pc+ba+  *		cs			=	pc+rs+  *		cz_qwerty			=	pc+cz(qwerty)+  *		dev			=	pc+in(deva)+  *		dvorak			=	pc+us(dvorak)+  *		dzdwi			=	pc+bt+  *		el			=	pc+gr+  *		en_US			=	pc+latin+  *		guj			=	pc+in(guj)+  *		gur			=	pc+in(guru)+  *		iu			=	pc+ca(ike)+  *		lo			=	pc+la+  *		kan			=	pc+in(kan)+  *		mi			=	pc+mao+  *		ogham			=	pc+ie(ogam)+  *		ori			=	pc+ie(ori)+  *		sapmi			=	pc+no(smi)+  *		sr			=	pc+srp+  *		syr			=	pc+sy(syc)+  *		tel			=	pc+in(tel)+  *		tml			=	pc+in(tam)+  *		yu			=	pc+srp+  *		fr-latin9			=	pc+fr(latin9)+  *		us_intl			=	pc+us(alt-intl)+  *		ben(basic)			=	pc+in(ben)+  *		ben(probhat)			=	pc+in(ben_probhat)+  *		dev(basic)			=	pc+in(deva)+  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak)+  *		dvorak(basic)			=	pc+us(dvorak)+  *		dvorak(pl_basic)			=	pc+pl(dvorak)+  *		dvorak(pl)			=	pc+pl(dvorak_quotes)+  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)+  *		dzdwi(basic)			=	pc+bt(basic)+  *		fi(basic)			=	pc+fi(classic)+  *		ge(azerty_tskapo)			=	pc+fr(geo)+  *		guj(basic)			=	pc+in(guj)+  *		gur(basic)			=	pc+in(guru)+  *		ie(laptop)			=	pc+ie(basic)+  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)+  *		in(urd)			=	pc+in(urd-phonetic)+  *		iu(basic)			=	pc+ca(ike)+  *		lo(basic)			=	pc+la(basic)+  *		kan(basic)			=	pc+in(kan)+  *		mal(basic)			=	pc+in(mal)+  *		mal(mlplusnum)			=	pc+in(mal)+  *		ogham(basic)			=	pc+ie(ogam)+  *		ogham(laptop)			=	pc+ie(ogam)+  *		ogham(is434)			=	pc+ie(ogam_is434)+  *		ogham(is434laptop)			=	pc+ie(ogam_is434)+  *		ori(basic)			=	pc+in(ori)+  *		ro(de)			=	pc+ro(winkeys)+  *		ro(us)			=	pc+ro(std)+  *		ro(academic)			=	pc+ro(std)+  *		ro(std_comma)			=	pc+ro(std)+  *		ro(comma)			=	pc+ro(basic)+  *		ru(os)			=	pc+ru(os_legacy)+  *		pk(urd)			=	pc+pk(urd-phonetic)+  *		sapmi(basic)			=	pc+no(smi)+  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)+  *		sapmi(sefi)			=	pc+fi(smi)+  *		sin(phonetic-static)			=	pc+in(sin_phonetic)+  *		syr(basic)			=	pc+sy(syc)+  *		syr(phonetic)			=	pc+sy(syc_phonetic)+  *		tam(INSCRIPT)			=	pc+in(tam)+  *		tam(UNI)			=	pc+in(tam_unicode)+  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)+  *		tam(TAB)			=	pc+in(tam_TAB)+  *		tam(TSCII)			=	pc+in(tam_TSCII)+  *		tel(basic)			=	pc+in(tel)+  *		yu(basic)			=	pc+srp(latin)+  *		yu(unicode)			=	pc+srp(latinunicode)+  *		yu(yz)			=	pc+srp(latinyz)+  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)+  ataritt	$nonlatin		=	xfree68_vndr/ataritt(us)+%l%(v):2+  ataritt	*			=	xfree68_vndr/ataritt(us)+%l%(v)+  amiga		$nonlatin		=	xfree68_vndr/amiga(usa1)+%l%(v):2+  amiga		*			=	xfree68_vndr/amiga(usa1)+%l%(v)+  classmate	us			=	pc+%l(classmate)+  empty         *                       =       empty(basic)+  *             empty                   =       empty(basic)+ $sun		$sun_custom		=	pc+sun_vndr/%l%(v)+  pc98		nec_vndr/jp		=	nec_vndr/jp(pc98)+  macintosh_old	us			=	macintosh_vndr/us(oldmac)+  macintosh_old	en_US			=	macintosh_vndr/us(oldmac)+  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)+  macintosh_old	$nonlatin		=	macintosh_vndr/us(oldmac)+%l%(v):2+  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v)+  applealu_jis	jp			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2+  applealu_jis	*			=	macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2+ $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v)+ $applealu	*			=	macintosh_vndr/apple(alukbd)+%l%(v)+ $macs		en_US			=	pc+macintosh_vndr/us(extended)+ $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v)+  nokiarx44	*			=	nokia_vndr/rx-44(%l)+  nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)+  nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v)+  nokiasu8w	*			=	nokia_vndr/su-8w(%l)+  olpc		$olpclayouts		=	olpc+%l%(m)+  olpc		*			=	olpc+%l%(v)+  olpcm		$olpclayouts		=	olpc+%l%(m)+  olpcm		*			=	olpc+%l%(v)+ $thinkpads   	br			=	pc+br(thinkpad)+  sl-c3x00	*			=	pc+sharp_vndr/sl-c3x00(basic)+  ws003sh	*			=	pc+sharp_vndr/ws003sh(basic)+  ws007sh	*			=	pc+sharp_vndr/ws007sh(basic)+  ws011sh	*			=	pc+sharp_vndr/ws011sh(basic)+  ws020sh	*			=	pc+sharp_vndr/ws020sh(basic)+  htcdream	$htcdreamlayouts	=	%l(htcdream)+  *	   	$nonlatin		=	pc+us+%l%(v):2+  *		*			=	pc+%l%(v)++! model		layout[1]			=	symbols+  *		ar			=	pc+ara%(v[1])+  *		ben			=	pc+in(ben)+  *		bs			=	pc+ba%(v[1])+  *		cs			=	pc+rs%(v[1])+  *		cz_qwerty			=	pc+cz(qwerty)+  *		dev			=	pc+in(deva)+  *		dvorak			=	pc+us(dvorak)+  *		dzdwi			=	pc+bt%(v[1])+  *		el			=	pc+gr%(v[1])+  *		en_US			=	pc+latin%(v[1])+  *		guj			=	pc+in(guj)+  *		gur			=	pc+in(guru)+  *		iu			=	pc+ca(ike)+  *		lo			=	pc+la%(v[1])+  *		kan			=	pc+in(kan)+  *		mi			=	pc+mao%(v[1])+  *		ogham			=	pc+ie(ogam)+  *		ori			=	pc+ie(ori)+  *		sapmi			=	pc+no(smi)+  *		sr			=	pc+srp%(v[1])+  *		syr			=	pc+sy(syc)+  *		tel			=	pc+in(tel)+  *		tml			=	pc+in(tam)+  *		yu			=	pc+srp%(v[1])+  *		fr-latin9			=	pc+fr(latin9)+  *		us_intl			=	pc+us(alt-intl)+  *		ben(basic)			=	pc+in(ben)+  *		ben(probhat)			=	pc+in(ben_probhat)+  *		dev(basic)			=	pc+in(deva)+  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak)+  *		dvorak(basic)			=	pc+us(dvorak)+  *		dvorak(pl_basic)			=	pc+pl(dvorak)+  *		dvorak(pl)			=	pc+pl(dvorak_quotes)+  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)+  *		dzdwi(basic)			=	pc+bt(basic)+  *		fi(basic)			=	pc+fi(classic)+  *		ge(azerty_tskapo)			=	pc+fr(geo)+  *		guj(basic)			=	pc+in(guj)+  *		gur(basic)			=	pc+in(guru)+  *		ie(laptop)			=	pc+ie(basic)+  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)+  *		in(urd)			=	pc+in(urd-phonetic)+  *		iu(basic)			=	pc+ca(ike)+  *		lo(basic)			=	pc+la(basic)+  *		kan(basic)			=	pc+in(kan)+  *		mal(basic)			=	pc+in(mal)+  *		mal(mlplusnum)			=	pc+in(mal)+  *		ogham(basic)			=	pc+ie(ogam)+  *		ogham(laptop)			=	pc+ie(ogam)+  *		ogham(is434)			=	pc+ie(ogam_is434)+  *		ogham(is434laptop)			=	pc+ie(ogam_is434)+  *		ori(basic)			=	pc+in(ori)+  *		ro(de)			=	pc+ro(winkeys)+  *		ro(us)			=	pc+ro(std)+  *		ro(academic)			=	pc+ro(std)+  *		ro(std_comma)			=	pc+ro(std)+  *		ro(comma)			=	pc+ro(basic)+  *		ru(os)			=	pc+ru(os_legacy)+  *		pk(urd)			=	pc+pk(urd-phonetic)+  *		sapmi(basic)			=	pc+no(smi)+  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)+  *		sapmi(sefi)			=	pc+fi(smi)+  *		sin(phonetic-static)			=	pc+in(sin_phonetic)+  *		syr(basic)			=	pc+sy(syc)+  *		syr(phonetic)			=	pc+sy(syc_phonetic)+  *		tam(INSCRIPT)			=	pc+in(tam)+  *		tam(UNI)			=	pc+in(tam_unicode)+  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)+  *		tam(TAB)			=	pc+in(tam_TAB)+  *		tam(TSCII)			=	pc+in(tam_TSCII)+  *		tel(basic)			=	pc+in(tel)+  *		yu(basic)			=	pc+srp(latin)+  *		yu(unicode)			=	pc+srp(latinunicode)+  *		yu(yz)			=	pc+srp(latinyz)+  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)+  ataritt	*			=	xfree68_vndr/ataritt(us)+%l[1]%(v[1])+  amiga		*			=	xfree68_vndr/amiga(usa1)+%l[1]%(v[1])+ $sun		$sun_custom	=	pc+sun_vndr/%l[1]%(v[1])+  macintosh_old	us			=	macintosh_vndr/us(oldmac)+  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])+  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l[1]%(v[1])+  applealu_jis	us			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+ $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1])+ $applealu	*			=	macintosh_vndr/apple(alukbd)+%l[1]%(v[1])+ $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l[1]%(v[1])+  nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)+  nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1])+ $thinkpads	br			=	pc+%l[1](thinkpad)+  *		*			=	pc+%l[1]%(v[1])++! model		layout[1]	variant[1]	=	symbols+  *		ben		basic		=	pc+in(ben)+  *		ben		probhat		=	pc+in(ben_probhat)+  *		dev		basic		=	pc+in(deva)+  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak)+  *		dvorak		basic		=	pc+us(dvorak)+  *		dvorak		pl_basic		=	pc+pl(dvorak)+  *		dvorak		pl		=	pc+pl(dvorak_quotes)+  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)+  *		dzdwi		basic		=	pc+bt(basic)+  *		fi		basic		=	pc+fi(classic)+  *		ge		azerty_tskapo		=	pc+fr(geo)+  *		guj		basic		=	pc+in(guj)+  *		gur		basic		=	pc+in(guru)+  *		ie		laptop		=	pc+ie(basic)+  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)+  *		in		urd		=	pc+in(urd-phonetic)+  *		iu		basic		=	pc+ca(ike)+  *		lo		basic		=	pc+la(basic)+  *		kan		basic		=	pc+in(kan)+  *		mal		basic		=	pc+in(mal)+  *		mal		mlplusnum		=	pc+in(mal)+  *		ogham		basic		=	pc+ie(ogam)+  *		ogham		laptop		=	pc+ie(ogam)+  *		ogham		is434		=	pc+ie(ogam_is434)+  *		ogham		is434laptop		=	pc+ie(ogam_is434)+  *		ori		basic		=	pc+in(ori)+  *		ro		de		=	pc+ro(winkeys)+  *		ro		us		=	pc+ro(std)+  *		ro		academic		=	pc+ro(std)+  *		ro		std_comma		=	pc+ro(std)+  *		ro		comma		=	pc+ro(basic)+  *		ru		os		=	pc+ru(os_legacy)+  *		pk		urd		=	pc+pk(urd-phonetic)+  *		sapmi		basic		=	pc+no(smi)+  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)+  *		sapmi		sefi		=	pc+fi(smi)+  *		sin		phonetic-static		=	pc+in(sin_phonetic)+  *		syr		basic		=	pc+sy(syc)+  *		syr		phonetic		=	pc+sy(syc_phonetic)+  *		tam		INSCRIPT		=	pc+in(tam)+  *		tam		UNI		=	pc+in(tam_unicode)+  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)+  *		tam		TAB		=	pc+in(tam_TAB)+  *		tam		TSCII		=	pc+in(tam_TSCII)+  *		tel		basic		=	pc+in(tel)+  *		yu		basic		=	pc+srp(latin)+  *		yu		unicode		=	pc+srp(latinunicode)+  *		yu		yz		=	pc+srp(latinyz)+  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)++! model		layout[2]	=	symbols+  *		ar		=	+ara%(v[2]):2+  *		ben		=	+in(ben):2+  *		bs		=	+ba%(v[2]):2+  *		cs		=	+rs%(v[2]):2+  *		cz_qwerty		=	+cz(qwerty):2+  *		dev		=	+in(deva):2+  *		dvorak		=	+us(dvorak):2+  *		dzdwi		=	+bt%(v[2]):2+  *		el		=	+gr%(v[2]):2+  *		en_US		=	+latin%(v[2]):2+  *		guj		=	+in(guj):2+  *		gur		=	+in(guru):2+  *		iu		=	+ca(ike):2+  *		lo		=	+la%(v[2]):2+  *		kan		=	+in(kan):2+  *		mi		=	+mao%(v[2]):2+  *		ogham		=	+ie(ogam):2+  *		ori		=	+ie(ori):2+  *		sapmi		=	+no(smi):2+  *		sr		=	+srp%(v[2]):2+  *		syr		=	+sy(syc):2+  *		tel		=	+in(tel):2+  *		tml		=	+in(tam):2+  *		yu		=	+srp%(v[2]):2+  *		fr-latin9		=	+fr(latin9):2+  *		us_intl		=	+us(alt-intl):2+  *		ben(basic)	=	+in(ben):2+  *		ben(probhat)	=	+in(ben_probhat):2+  *		dev(basic)	=	+in(deva):2+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):2+  *		dvorak(basic)	=	+us(dvorak):2+  *		dvorak(pl_basic)	=	+pl(dvorak):2+  *		dvorak(pl)	=	+pl(dvorak_quotes):2+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):2+  *		dzdwi(basic)	=	+bt(basic):2+  *		fi(basic)	=	+fi(classic):2+  *		ge(azerty_tskapo)	=	+fr(geo):2+  *		guj(basic)	=	+in(guj):2+  *		gur(basic)	=	+in(guru):2+  *		ie(laptop)	=	+ie(basic):2+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):2+  *		in(urd)	=	+in(urd-phonetic):2+  *		iu(basic)	=	+ca(ike):2+  *		lo(basic)	=	+la(basic):2+  *		kan(basic)	=	+in(kan):2+  *		mal(basic)	=	+in(mal):2+  *		mal(mlplusnum)	=	+in(mal):2+  *		ogham(basic)	=	+ie(ogam):2+  *		ogham(laptop)	=	+ie(ogam):2+  *		ogham(is434)	=	+ie(ogam_is434):2+  *		ogham(is434laptop)	=	+ie(ogam_is434):2+  *		ori(basic)	=	+in(ori):2+  *		ro(de)	=	+ro(winkeys):2+  *		ro(us)	=	+ro(std):2+  *		ro(academic)	=	+ro(std):2+  *		ro(std_comma)	=	+ro(std):2+  *		ro(comma)	=	+ro(basic):2+  *		ru(os)	=	+ru(os_legacy):2+  *		pk(urd)	=	+pk(urd-phonetic):2+  *		sapmi(basic)	=	+no(smi):2+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):2+  *		sapmi(sefi)	=	+fi(smi):2+  *		sin(phonetic-static)	=	+in(sin_phonetic):2+  *		syr(basic)	=	+sy(syc):2+  *		syr(phonetic)	=	+sy(syc_phonetic):2+  *		tam(INSCRIPT)	=	+in(tam):2+  *		tam(UNI)	=	+in(tam_unicode):2+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):2+  *		tam(TAB)	=	+in(tam_TAB):2+  *		tam(TSCII)	=	+in(tam_TSCII):2+  *		tel(basic)	=	+in(tel):2+  *		yu(basic)	=	+srp(latin):2+  *		yu(unicode)	=	+srp(latinunicode):2+  *		yu(yz)	=	+srp(latinyz):2+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):2+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):2+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[2]%_v[2]):2+ $sun	$sun_custom	=	+sun_vndr/%l[2]%(v[2]):2+  *		*		=	+%l[2]%(v[2]):2++! model		layout[3]	=	symbols+  *		ar		=	+ara%(v[3]):3+  *		ben		=	+in(ben):3+  *		bs		=	+ba%(v[3]):3+  *		cs		=	+rs%(v[3]):3+  *		cz_qwerty		=	+cz(qwerty):3+  *		dev		=	+in(deva):3+  *		dvorak		=	+us(dvorak):3+  *		dzdwi		=	+bt%(v[3]):3+  *		el		=	+gr%(v[3]):3+  *		en_US		=	+latin%(v[3]):3+  *		guj		=	+in(guj):3+  *		gur		=	+in(guru):3+  *		iu		=	+ca(ike):3+  *		lo		=	+la%(v[3]):3+  *		kan		=	+in(kan):3+  *		mi		=	+mao%(v[3]):3+  *		ogham		=	+ie(ogam):3+  *		ori		=	+ie(ori):3+  *		sapmi		=	+no(smi):3+  *		sr		=	+srp%(v[3]):3+  *		syr		=	+sy(syc):3+  *		tel		=	+in(tel):3+  *		tml		=	+in(tam):3+  *		yu		=	+srp%(v[3]):3+  *		fr-latin9		=	+fr(latin9):3+  *		us_intl		=	+us(alt-intl):3+  *		ben(basic)	=	+in(ben):3+  *		ben(probhat)	=	+in(ben_probhat):3+  *		dev(basic)	=	+in(deva):3+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):3+  *		dvorak(basic)	=	+us(dvorak):3+  *		dvorak(pl_basic)	=	+pl(dvorak):3+  *		dvorak(pl)	=	+pl(dvorak_quotes):3+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):3+  *		dzdwi(basic)	=	+bt(basic):3+  *		fi(basic)	=	+fi(classic):3+  *		ge(azerty_tskapo)	=	+fr(geo):3+  *		guj(basic)	=	+in(guj):3+  *		gur(basic)	=	+in(guru):3+  *		ie(laptop)	=	+ie(basic):3+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):3+  *		in(urd)	=	+in(urd-phonetic):3+  *		iu(basic)	=	+ca(ike):3+  *		lo(basic)	=	+la(basic):3+  *		kan(basic)	=	+in(kan):3+  *		mal(basic)	=	+in(mal):3+  *		mal(mlplusnum)	=	+in(mal):3+  *		ogham(basic)	=	+ie(ogam):3+  *		ogham(laptop)	=	+ie(ogam):3+  *		ogham(is434)	=	+ie(ogam_is434):3+  *		ogham(is434laptop)	=	+ie(ogam_is434):3+  *		ori(basic)	=	+in(ori):3+  *		ro(de)	=	+ro(winkeys):3+  *		ro(us)	=	+ro(std):3+  *		ro(academic)	=	+ro(std):3+  *		ro(std_comma)	=	+ro(std):3+  *		ro(comma)	=	+ro(basic):3+  *		ru(os)	=	+ru(os_legacy):3+  *		pk(urd)	=	+pk(urd-phonetic):3+  *		sapmi(basic)	=	+no(smi):3+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):3+  *		sapmi(sefi)	=	+fi(smi):3+  *		sin(phonetic-static)	=	+in(sin_phonetic):3+  *		syr(basic)	=	+sy(syc):3+  *		syr(phonetic)	=	+sy(syc_phonetic):3+  *		tam(INSCRIPT)	=	+in(tam):3+  *		tam(UNI)	=	+in(tam_unicode):3+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):3+  *		tam(TAB)	=	+in(tam_TAB):3+  *		tam(TSCII)	=	+in(tam_TSCII):3+  *		tel(basic)	=	+in(tel):3+  *		yu(basic)	=	+srp(latin):3+  *		yu(unicode)	=	+srp(latinunicode):3+  *		yu(yz)	=	+srp(latinyz):3+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):3+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):3+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[3]%_v[3]):3+ $sun	$sun_custom	=	+sun_vndr/%l[3]%(v[3]):3+  *		*		=	+%l[3]%(v[3]):3++! model		layout[4]	=	symbols+  *		ar		=	+ara%(v[4]):4+  *		ben		=	+in(ben):4+  *		bs		=	+ba%(v[4]):4+  *		cs		=	+rs%(v[4]):4+  *		cz_qwerty		=	+cz(qwerty):4+  *		dev		=	+in(deva):4+  *		dvorak		=	+us(dvorak):4+  *		dzdwi		=	+bt%(v[4]):4+  *		el		=	+gr%(v[4]):4+  *		en_US		=	+latin%(v[4]):4+  *		guj		=	+in(guj):4+  *		gur		=	+in(guru):4+  *		iu		=	+ca(ike):4+  *		lo		=	+la%(v[4]):4+  *		kan		=	+in(kan):4+  *		mi		=	+mao%(v[4]):4+  *		ogham		=	+ie(ogam):4+  *		ori		=	+ie(ori):4+  *		sapmi		=	+no(smi):4+  *		sr		=	+srp%(v[4]):4+  *		syr		=	+sy(syc):4+  *		tel		=	+in(tel):4+  *		tml		=	+in(tam):4+  *		yu		=	+srp%(v[4]):4+  *		fr-latin9		=	+fr(latin9):4+  *		us_intl		=	+us(alt-intl):4+  *		ben(basic)	=	+in(ben):4+  *		ben(probhat)	=	+in(ben_probhat):4+  *		dev(basic)	=	+in(deva):4+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):4+  *		dvorak(basic)	=	+us(dvorak):4+  *		dvorak(pl_basic)	=	+pl(dvorak):4+  *		dvorak(pl)	=	+pl(dvorak_quotes):4+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):4+  *		dzdwi(basic)	=	+bt(basic):4+  *		fi(basic)	=	+fi(classic):4+  *		ge(azerty_tskapo)	=	+fr(geo):4+  *		guj(basic)	=	+in(guj):4+  *		gur(basic)	=	+in(guru):4+  *		ie(laptop)	=	+ie(basic):4+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):4+  *		in(urd)	=	+in(urd-phonetic):4+  *		iu(basic)	=	+ca(ike):4+  *		lo(basic)	=	+la(basic):4+  *		kan(basic)	=	+in(kan):4+  *		mal(basic)	=	+in(mal):4+  *		mal(mlplusnum)	=	+in(mal):4+  *		ogham(basic)	=	+ie(ogam):4+  *		ogham(laptop)	=	+ie(ogam):4+  *		ogham(is434)	=	+ie(ogam_is434):4+  *		ogham(is434laptop)	=	+ie(ogam_is434):4+  *		ori(basic)	=	+in(ori):4+  *		ro(de)	=	+ro(winkeys):4+  *		ro(us)	=	+ro(std):4+  *		ro(academic)	=	+ro(std):4+  *		ro(std_comma)	=	+ro(std):4+  *		ro(comma)	=	+ro(basic):4+  *		ru(os)	=	+ru(os_legacy):4+  *		pk(urd)	=	+pk(urd-phonetic):4+  *		sapmi(basic)	=	+no(smi):4+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):4+  *		sapmi(sefi)	=	+fi(smi):4+  *		sin(phonetic-static)	=	+in(sin_phonetic):4+  *		syr(basic)	=	+sy(syc):4+  *		syr(phonetic)	=	+sy(syc_phonetic):4+  *		tam(INSCRIPT)	=	+in(tam):4+  *		tam(UNI)	=	+in(tam_unicode):4+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):4+  *		tam(TAB)	=	+in(tam_TAB):4+  *		tam(TSCII)	=	+in(tam_TSCII):4+  *		tel(basic)	=	+in(tel):4+  *		yu(basic)	=	+srp(latin):4+  *		yu(unicode)	=	+srp(latinunicode):4+  *		yu(yz)	=	+srp(latinyz):4+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):4+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):4+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[4]%_v[4]):4+ $sun	$sun_custom	=	+sun_vndr/%l[4]%(v[4]):4+  *		*		=	+%l[4]%(v[4]):4++! model		layout[2]	variant[2]	=	symbols+  *		ben		basic	=	+in(ben):2+  *		ben		probhat	=	+in(ben_probhat):2+  *		dev		basic	=	+in(deva):2+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):2+  *		dvorak		basic	=	+us(dvorak):2+  *		dvorak		pl_basic	=	+pl(dvorak):2+  *		dvorak		pl	=	+pl(dvorak_quotes):2+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):2+  *		dzdwi		basic	=	+bt(basic):2+  *		fi		basic	=	+fi(classic):2+  *		ge		azerty_tskapo	=	+fr(geo):2+  *		guj		basic	=	+in(guj):2+  *		gur		basic	=	+in(guru):2+  *		ie		laptop	=	+ie(basic):2+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):2+  *		in		urd	=	+in(urd-phonetic):2+  *		iu		basic	=	+ca(ike):2+  *		lo		basic	=	+la(basic):2+  *		kan		basic	=	+in(kan):2+  *		mal		basic	=	+in(mal):2+  *		mal		mlplusnum	=	+in(mal):2+  *		ogham		basic	=	+ie(ogam):2+  *		ogham		laptop	=	+ie(ogam):2+  *		ogham		is434	=	+ie(ogam_is434):2+  *		ogham		is434laptop	=	+ie(ogam_is434):2+  *		ori		basic	=	+in(ori):2+  *		ro		de	=	+ro(winkeys):2+  *		ro		us	=	+ro(std):2+  *		ro		academic	=	+ro(std):2+  *		ro		std_comma	=	+ro(std):2+  *		ro		comma	=	+ro(basic):2+  *		ru		os	=	+ru(os_legacy):2+  *		pk		urd	=	+pk(urd-phonetic):2+  *		sapmi		basic	=	+no(smi):2+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):2+  *		sapmi		sefi	=	+fi(smi):2+  *		sin		phonetic-static	=	+in(sin_phonetic):2+  *		syr		basic	=	+sy(syc):2+  *		syr		phonetic	=	+sy(syc_phonetic):2+  *		tam		INSCRIPT	=	+in(tam):2+  *		tam		UNI	=	+in(tam_unicode):2+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):2+  *		tam		TAB	=	+in(tam_TAB):2+  *		tam		TSCII	=	+in(tam_TSCII):2+  *		tel		basic	=	+in(tel):2+  *		yu		basic	=	+srp(latin):2+  *		yu		unicode	=	+srp(latinunicode):2+  *		yu		yz	=	+srp(latinyz):2+  *		yu		unicodeyz	=	+srp(latinunicodeyz):2++! model		layout[3]	variant[3]	=	symbols+  *		ben		basic	=	+in(ben):3+  *		ben		probhat	=	+in(ben_probhat):3+  *		dev		basic	=	+in(deva):3+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):3+  *		dvorak		basic	=	+us(dvorak):3+  *		dvorak		pl_basic	=	+pl(dvorak):3+  *		dvorak		pl	=	+pl(dvorak_quotes):3+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):3+  *		dzdwi		basic	=	+bt(basic):3+  *		fi		basic	=	+fi(classic):3+  *		ge		azerty_tskapo	=	+fr(geo):3+  *		guj		basic	=	+in(guj):3+  *		gur		basic	=	+in(guru):3+  *		ie		laptop	=	+ie(basic):3+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):3+  *		in		urd	=	+in(urd-phonetic):3+  *		iu		basic	=	+ca(ike):3+  *		lo		basic	=	+la(basic):3+  *		kan		basic	=	+in(kan):3+  *		mal		basic	=	+in(mal):3+  *		mal		mlplusnum	=	+in(mal):3+  *		ogham		basic	=	+ie(ogam):3+  *		ogham		laptop	=	+ie(ogam):3+  *		ogham		is434	=	+ie(ogam_is434):3+  *		ogham		is434laptop	=	+ie(ogam_is434):3+  *		ori		basic	=	+in(ori):3+  *		ro		de	=	+ro(winkeys):3+  *		ro		us	=	+ro(std):3+  *		ro		academic	=	+ro(std):3+  *		ro		std_comma	=	+ro(std):3+  *		ro		comma	=	+ro(basic):3+  *		ru		os	=	+ru(os_legacy):3+  *		pk		urd	=	+pk(urd-phonetic):3+  *		sapmi		basic	=	+no(smi):3+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):3+  *		sapmi		sefi	=	+fi(smi):3+  *		sin		phonetic-static	=	+in(sin_phonetic):3+  *		syr		basic	=	+sy(syc):3+  *		syr		phonetic	=	+sy(syc_phonetic):3+  *		tam		INSCRIPT	=	+in(tam):3+  *		tam		UNI	=	+in(tam_unicode):3+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):3+  *		tam		TAB	=	+in(tam_TAB):3+  *		tam		TSCII	=	+in(tam_TSCII):3+  *		tel		basic	=	+in(tel):3+  *		yu		basic	=	+srp(latin):3+  *		yu		unicode	=	+srp(latinunicode):3+  *		yu		yz	=	+srp(latinyz):3+  *		yu		unicodeyz	=	+srp(latinunicodeyz):3++! model		layout[4]	variant[4]	=	symbols+  *		ben		basic	=	+in(ben):4+  *		ben		probhat	=	+in(ben_probhat):4+  *		dev		basic	=	+in(deva):4+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):4+  *		dvorak		basic	=	+us(dvorak):4+  *		dvorak		pl_basic	=	+pl(dvorak):4+  *		dvorak		pl	=	+pl(dvorak_quotes):4+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):4+  *		dzdwi		basic	=	+bt(basic):4+  *		fi		basic	=	+fi(classic):4+  *		ge		azerty_tskapo	=	+fr(geo):4+  *		guj		basic	=	+in(guj):4+  *		gur		basic	=	+in(guru):4+  *		ie		laptop	=	+ie(basic):4+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):4+  *		in		urd	=	+in(urd-phonetic):4+  *		iu		basic	=	+ca(ike):4+  *		lo		basic	=	+la(basic):4+  *		kan		basic	=	+in(kan):4+  *		mal		basic	=	+in(mal):4+  *		mal		mlplusnum	=	+in(mal):4+  *		ogham		basic	=	+ie(ogam):4+  *		ogham		laptop	=	+ie(ogam):4+  *		ogham		is434	=	+ie(ogam_is434):4+  *		ogham		is434laptop	=	+ie(ogam_is434):4+  *		ori		basic	=	+in(ori):4+  *		ro		de	=	+ro(winkeys):4+  *		ro		us	=	+ro(std):4+  *		ro		academic	=	+ro(std):4+  *		ro		std_comma	=	+ro(std):4+  *		ro		comma	=	+ro(basic):4+  *		ru		os	=	+ru(os_legacy):4+  *		pk		urd	=	+pk(urd-phonetic):4+  *		sapmi		basic	=	+no(smi):4+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):4+  *		sapmi		sefi	=	+fi(smi):4+  *		sin		phonetic-static	=	+in(sin_phonetic):4+  *		syr		basic	=	+sy(syc):4+  *		syr		phonetic	=	+sy(syc_phonetic):4+  *		tam		INSCRIPT	=	+in(tam):4+  *		tam		UNI	=	+in(tam_unicode):4+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):4+  *		tam		TAB	=	+in(tam_TAB):4+  *		tam		TSCII	=	+in(tam_TSCII):4+  *		tel		basic	=	+in(tel):4+  *		yu		basic	=	+srp(latin):4+  *		yu		unicode	=	+srp(latinunicode):4+  *		yu		yz	=	+srp(latinyz):4+  *		yu		unicodeyz	=	+srp(latinunicodeyz):4++! model		=	symbols+  a4techKB21    =       +inet(media_nav_common)+  a4techKBS8    =       +inet(media_nav_acpi_common)+  a4_rfkb23     =       +inet(media_nav_acpi_common)+  asus_laptop   =       +inet(media_common)+  acer_tm_800   =       +inet(acer_laptop)+  benqx730      =       +inet(benqx)+  benqx800      =       +inet(benqx)+  btc5126t      =       +inet(nav_acpi_common)+  btc9116u      =       +inet(btc9019u)+  btc6301urf    =       +inet(media_nav_acpi_common)+  dellsk8125    =       +inet(dell)+  dellsk8135    =       +inet(dell)+  cherrybunlim  =       +inet(nav_common)+  dexxa         =       +inet(media_nav_common)+  dtk2000       =       +inet(media_nav_acpi_common)+  fscaa1667g    =       +inet(media_nav_common)+  geniuskb19e   =       +inet(media_nav_acpi_common)+  geniuscomfy   =       +inet(media_nav_acpi_common)+  geniuskkb2050hs =     +inet(dellusbmm)+  hpnx9020      =       +inet(hpi6)+  latitude      =       +inet(media_common)+  logicd        =       +inet(logitech_base)+  logicd_it     =       +inet(logitech_base)+  logicd_nav    =       +inet(logitech_base)+  logicd_opt    =       +inet(logitech_base)+  logiultrax    =       +inet(logitech_base)+  logiclx300    =       +inet(logiex110)+  logii350      =       +inet(logiex110)+  logimel       =       +inet(logiex110)+  logicdit      =       +inet(logicd)+  logicdo       =       +inet(logicd)+  logicdp       =       +inet(logicd)+  logicdpa      =       +inet(logicda)+  logiciink     =       +inet(logicink)+  ltcd          =       +inet(logicda)+  microsoftccurve2k =   +inet(microsoftprooem)+  microsoftpro  =       +inet(media_nav_acpi_common)+  precision_m   =       +inet(media_nav_common)+  scorpius      =       +inet(media_nav_acpi_common)+  sp_inet       =       +inet(media_nav_acpi_common)+  targa_v811    =       +inet(media_nav_acpi_common)+  thinkpad      =       +inet(media_nav_common)+  thinkpadz60   =       +inet(thinkpad60)+  tm2030USB-102 =       +inet(media_nav_acpi_common)+  tm2030USB-106 =       +inet(media_nav_acpi_common)+  trust_slimline =      +inet(media_nav_acpi_common)+  vsonku306     =       +inet(microsoftprooem)+  $inetkbds     =       +inet(%m)+  $maclaptop    =       +inet(apple)+level3(enter_switch)+  $applealu     =       +inet(apple)+  $macs	        =       +inet(apple)+  sun_type7_jp_usb	=	+sun_vndr/solaris(defaults_type7jp)+  $sun			=		+sun_vndr/solaris(defaults)++! layout	variant		=	compat+  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)+  jp        $sun_compat =   complete+japan(kana_lock)++! layout[1]	variant[1]	=	compat+  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)+  jp       $sun_compat =   complete+japan(kana_lock)++! layout[2]	variant[2]	=	compat+  de		neo			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2+  jp       $sun_compat  =   +complete+japan(kana_lock):2++! layout[3]	variant[3]	=	compat+  de		neo			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3+  jp       $sun_compat  =   +complete+japan(kana_lock):3++! layout[4]	variant[4]	=	compat+  de		neo			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4+  jp       $sun_compat  =   +complete+japan(kana_lock):4++! model		layout		=	compat+  pc98		nec_vndr/jp	=	pc98(basic)+  *		jp		=	complete+japan+  olpc          *               =       olpc+  olpcm         *               =       olpc+  *		*		=	complete++! model		layout[1]	=	compat+  *		*		=	complete++! model		=	types+  $macs		=	complete+numpad(mac)+  $applealu	=	complete+numpad(mac)+  $nokiamodels	=	complete+nokia+  *		=	complete++! layout	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)+  *			misc:typo 	= +typo(base)++! layout[1]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1+  *			misc:typo 	= +typo(base):1++! layout[2]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2+  *			misc:typo 	= +typo(base):2++! layout[3]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3+  *			misc:typo 	= +typo(base):3++! layout[4]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4+  *			misc:typo 	= +typo(base):4++! option	=	symbols+  grp:shift_toggle	=	+group(shifts_toggle)+  altwin:menu		=	+altwin(menu)+  altwin:meta_alt	=	+altwin(meta_alt)+  altwin:alt_win	=	+altwin(alt_win)+  altwin:ctrl_win	=	+altwin(ctrl_win)+  altwin:ctrl_alt_win	=	+altwin(ctrl_alt_win)+  altwin:meta_win	=	+altwin(meta_win)+  altwin:left_meta_win	=	+altwin(left_meta_win)+  altwin:hyper_win	=	+altwin(hyper_win)+  altwin:alt_super_win	=	+altwin(alt_super_win)+  altwin:swap_alt_win	=	+altwin(swap_alt_win)+  grp:switch		=	+group(switch)+  grp:lswitch		=	+group(lswitch)+  grp:win_switch	=	+group(win_switch)+  grp:lwin_switch	=	+group(lwin_switch)+  grp:rwin_switch	=	+group(rwin_switch)+  grp:toggle		=	+group(toggle)+  grp:shifts_toggle	=	+group(shifts_toggle)+  grp:ctrls_toggle	=	+group(ctrls_toggle)+  grp:alts_toggle	=	+group(alts_toggle)+  grp:caps_toggle	=	+capslock(grouplock)+  grp:caps_switch       =       +capslock(groupshift)+  grp:shift_caps_toggle	=	+group(shift_caps_toggle)+  grp:shift_caps_switch	=	+group(shift_caps_switch)+  grp:win_menu_switch	=	+group(win_menu_switch)+  grp:alt_caps_toggle   =       +group(alt_caps_toggle)+  grp:alt_space_toggle	=	+group(alt_space_toggle)+  grp:menu_toggle	=	+group(menu_toggle)+  grp:lwin_toggle	=	+group(lwin_toggle)+  grp:rwin_toggle	=	+group(rwin_toggle)+  grp:lshift_toggle	=	+group(lshift_toggle)+  grp:rshift_toggle	=	+group(rshift_toggle)+  grp:rctrl_switch	=	+group(rctrl_switch)+  grp:lctrl_toggle	=	+group(lctrl_toggle)+  grp:rctrl_toggle	=	+group(rctrl_toggle)+  grp:lalt_toggle	=	+group(lalt_toggle)+  grp:sclk_toggle	=	+group(sclk_toggle)+  grp:lctrl_rctrl_switch	=	+group(lctrl_rctrl_switch)+  grp:lctrl_lwin_rctrl_menu	=	+group(lctrl_lwin_rctrl_menu)+  grp:lctrl_lalt_toggle	=	+group(lctrl_lalt_toggle)+  grp:rctrl_ralt_toggle	=	+group(rctrl_ralt_toggle)+  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle)+  grp:ctrl_alt_toggle_bidir	=	+group(ctrl_alt_toggle_bidir)+  grp:lctrl_lshift_toggle	=	+group(lctrl_lshift_toggle)+  grp:rctrl_rshift_toggle	=	+group(rctrl_rshift_toggle)+  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle)+  grp:ctrl_shift_toggle_bidir	=	+group(ctrl_shift_toggle_bidir)+  grp:lalt_lshift_toggle	=	+group(lalt_lshift_toggle)+  grp:ralt_rshift_toggle	=	+group(ralt_rshift_toggle)+  grp:alt_shift_toggle	=	+group(alt_shift_toggle)+  grp:alt_shift_toggle_bidir	=	+group(alt_shift_toggle_bidir)+  lv3:switch		=	+level3(switch)+  lv3:ralt_switch	=	+level3(ralt_switch)+  lv3:ralt_switch_multikey	=	+level3(ralt_switch_multikey)+  lv3:ralt_alt		=	+level3(ralt_alt)+  lv3:lalt_switch	=	+level3(lalt_switch)+  lv3:alt_switch	=	+level3(alt_switch)+  lv3:menu_switch	=	+level3(menu_switch)+  lv3:win_switch	=	+level3(win_switch)+  lv3:lwin_switch	=	+level3(lwin_switch)+  lv3:rwin_switch	=	+level3(rwin_switch)+  lv3:enter_switch	=	+level3(enter_switch)+  caps:capslock		=	+capslock(capslock)+  caps:numlock		=	+capslock(numlock)+  caps:shiftlock	=	+capslock(shiftlock)+  caps:swapescape	=	+capslock(swapescape)+  caps:escape		=	+capslock(escape)+  caps:backspace	=	+capslock(backspace)+  caps:super		=	+capslock(super)+  caps:hyper		=	+capslock(hyper)+  caps:none		=	+capslock(none)+  caps:ctrl_modifier	=	+capslock(ctrl_modifier)+  ctrl:nocaps		=	+ctrl(nocaps)+  ctrl:lctrl_meta	=	+ctrl(lctrl_meta)+  ctrl:swapcaps		=	+ctrl(swapcaps)+  ctrl:ac_ctrl		=	+ctrl(ac_ctrl)+  ctrl:aa_ctrl		=	+ctrl(aa_ctrl)+  ctrl:rctrl_ralt	=	+ctrl(rctrl_ralt)+  ctrl:menu_rctrl	=	+ctrl(menu_rctrl)+  ctrl:ralt_rctrl	=	+ctrl(ralt_rctrl)+  compose:ralt		=	+compose(ralt)+  compose:lwin		=	+compose(lwin)+  compose:lwin-altgr	=	+compose(lwin-altgr)+  compose:rwin		=	+compose(rwin)+  compose:rwin-altgr	=	+compose(rwin-altgr)+  compose:menu		=	+compose(menu)+  compose:menu-altgr	=	+compose(menu-altgr)+  compose:lctrl		=	+compose(lctrl)+  compose:lctrl-altgr	=	+compose(lctrl-altgr)+  compose:rctrl		=	+compose(rctrl)+  compose:rctrl-altgr	=	+compose(rctrl-altgr)+  compose:caps		=	+compose(caps)+  compose:caps-altgr	=	+compose(caps-altgr)+  compose:102		=	+compose(102)+  compose:102-altgr	=	+compose(102-altgr)+  compose:paus		=	+compose(paus)+  compose:prsc		=	+compose(prsc)+  compose:sclk		=	+compose(sclk)+  srvrkeys:none		=	+srvr_ctrl(no_srvr_keys)+  eurosign:e		=	+eurosign(e)+  eurosign:2		=	+eurosign(2)+  eurosign:4		=	+eurosign(4)+  eurosign:5		=	+eurosign(5)+  rupeesign:4           =       +rupeesign(4)+  keypad:oss            =       +keypad(oss)+  keypad:legacy         =	+keypad(legacy)+  keypad:legacy_wang    =	+keypad(legacy_wang)+  keypad:oss_wang       =	+keypad(oss_wang)+  keypad:future         =	+keypad(future)+  keypad:future_wang    =	+keypad(future_wang)+  keypad:hex            =	+keypad(ops)+keypad(hex)+  keypad:atm            =	+keypad(ops)+keypad(hex)+keypad(atm)  +  nbsp:none             =	+nbsp(none)+  nbsp:level2           =	+nbsp(level2)+  nbsp:level3           =	+nbsp(level3)+  nbsp:level3s          =	+nbsp(level3s)+  nbsp:level3n          =	+nbsp(level3n)+  nbsp:level4           =	+nbsp(level4)+  nbsp:level4n          =	+nbsp(level4n)+  nbsp:level4nl         =	+nbsp(level4nl)+  japan:nicola_f_bs     =	+jp(nicola_f_bs)+  japan:hztg_escape     =	+jp(hztg_escape)+  kpdl:dot              =	+kpdl(dot)+  kpdl:comma            =	+kpdl(comma)+  kpdl:dotoss           =	+kpdl(dotoss)+  kpdl:dotoss_latin9    =	+kpdl(dotoss_latin9)+  kpdl:commaoss         =	+kpdl(commaoss)+  kpdl:momayyezoss      =	+kpdl(momayyezoss)+  kpdl:kposs            =	+kpdl(kposs)+  kpdl:semi             =	+kpdl(semi)+  shift:breaks_caps     =	+shift(breaks_caps)+  esperanto:qwerty      =	+epo(qwerty)+  esperanto:dvorak      =	+epo(dvorak)+  terminate:ctrl_alt_bksp =	+terminate(ctrl_alt_bksp)+  keypad:pointerkeys	=	+keypad(pointerkeys)+  apple:alupckeys	=	+macintosh_vndr/apple(alupckeys)+  shift:both_capslock                =       +shift(both_capslock)+  shift:lshift_both_capslock         =       +shift(lshift_both_capslock)+  shift:rshift_both_capslock         =       +shift(rshift_both_capslock)+  shift:both_capslock_cancel         =       +shift(both_capslock_cancel)+  shift:lshift_both_capslock_cancel  =       +shift(lshift_both_capslock_cancel)+  shift:rshift_both_capslock_cancel  =       +shift(rshift_both_capslock_cancel)+  shift:both_shiftlock               =       +shift(both_shiftlock)+  shift:lshift_both_shiftlock        =       +shift(lshift_both_shiftlock)+  shift:rshift_both_shiftlock        =       +shift(rshift_both_shiftlock)+  solaris:sun_compat				 =		 +sun_vndr/solaris(sun_compat)+  lv3:caps_switch                    =       +level3(caps_switch)+  lv3:bksl_switch                    =       +level3(bksl_switch)+  lv3:lsgt_switch                    =       +level3(lsgt_switch)+  lv3:caps_switch_latch              =       +level3(caps_switch_latch)+  lv3:bksl_switch_latch              =       +level3(bksl_switch_latch)+  lv3:lsgt_switch_latch              =       +level3(lsgt_switch_latch)+  lv5:lsgt_switch_lock            =       +level5(lsgt_switch_lock)+  lv5:ralt_switch_lock            =       +level5(ralt_switch_lock)+  lv5:lwin_switch_lock            =       +level5(lwin_switch_lock)+  lv5:rwin_switch_lock            =       +level5(rwin_switch_lock)+  lv5:lsgt_switch_lock_cancel     =       +level5(lsgt_switch_lock_cancel)+  lv5:ralt_switch_lock_cancel     =       +level5(ralt_switch_lock_cancel)+  lv5:lwin_switch_lock_cancel     =       +level5(lwin_switch_lock_cancel)+  lv5:rwin_switch_lock_cancel     =       +level5(rwin_switch_lock_cancel)++++! option	=	compat+  grp_led:num		=	+lednum(group_lock)+  grp_led:caps		=	+ledcaps(group_lock)+  grp_led:scroll	=	+ledscroll(group_lock)+  japan:kana_lock	=	+japan(kana_lock)+  caps:shiftlock	=	+ledcaps(shift_lock)+  grab:break_actions    =       +xfree86(grab_break)+++! option	=	types+  caps:internal			=	+caps(internal)+  caps:internal_nocancel	=	+caps(internal_nocancel)+  caps:shift			=	+caps(shift)+  caps:shift_nocancel		=	+caps(shift_nocancel)+  numpad:pc			=	+numpad(pc)+  numpad:mac			=	+numpad(mac)+  numpad:microsoft		=	+numpad(microsoft)+  numpad:shift3       		=	+numpad(shift3)
+ data/rules/evdev view
@@ -0,0 +1,1140 @@+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part+//+//  Rules for resolving XKB components for use with XFree86+//  Copyright 1996 by Joseph Moss+//+//  2002 Modifier: Ivan Pascal      The XFree86 Project+//++// If you want non-latin layouts implicitly include the en_US layout+// uncomment lines below+//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \+//              in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \+//              ru scc sy syr tel th tj tam ua uz++// PC models+! $pcmodels = pc101 pc102 pc104 pc105++// Microsoft models (using MS geometry)+! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose++// Nokia devices and keyboards+! $nokiamodels = nokiasu8w nokiarx44 nokiarx51++// PC geometries - they have special geometry but symbols are mostly pc105+! $pcgeometries = latitude++// TypeMatrix geometries+! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106++// Layouts that provide further specializations for the OLPC+! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us ++! $macbooks = macbook78 macbook79+! $maclaptop = ibook powerbook macbook78 macbook79+! $applealu = applealu_ansi applealu_iso applealu_jis+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79++! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us++! $azerty = be fr+! $qwertz = al cz de hr hu ro si sk ++! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \+              airkey \+              apple armada azonaRF2300 \+              benqx brother \+              btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \+              cherryblue cherrybluea cherryblueb \+              cherrycyboard cherrycmexpert \+              chicony chicony0108 chicony0420 chicony9885 \+              compalfl90 \+              compaqeak8 compaqik7 compaqik13 compaqik18 \+              creativedw7000 \+              cymotionlinux \+              dell dellm65 inspiron dellusbmm \+              emachines ennyah_dkb1008 evdev \+              genius geniuscomfy2 \+              gyration honeywell_euroboard \+              hp250x hp5xx hp500fa hpdv5 \+              hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \+              ibm_spacesaver ipaq inspiron intel \+              logiaccess logicda logicink \+              logiex110 logiclx300 \+              logiinkse logiinkseusb logiitc logiik \+              logitech_base itouch logiultrax \+              logitech_g15 \+              logidinovo logidinovoedge \+              microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \+              microsoftoffice microsoftmult \+              mx1998 mx2500 mx2750 \+              oretec \+              pc105 \+              presario propeller \+              qtronix \+              rapidaccess rapidaccess2 thinkpad60 \+              samsung4500 samsung4510 \+              silvercrest \+              sk1300 sk2500 sk6200 sk7100 \+              sven sven303 symplon \+              toshiba_s3000 trust trustda \+              unitekkb1925 yahoo++// all layouts with 3rd and 4th groups+! $threelevellayouts = al az \+              be br bt \+              ca ch cs cz \+              de dk \+              ee es \+              fi fo fr \+              gb gr \+              hu \+              ie ir is it \+              latam \+              lk lt \+              mn mt \+              nl no \+              pl pt \+              ro \+              se sk \+              tr \+              us \+              vn \+              za++! $evdevkbds = ibm_spacesaver++! $thinkpads = thinkpad thinkpad60 thinkpadz60++! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \+         sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \+         sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb++! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb++// Sun Type_6_7 keyboards with custom layouts+! $sun_custom = ara be br ca ch cz de dk \+                ee es fi fr gb gr it jp \+                kr lt lv nl no pl pt ro \+                ru se sk tr tw ua us++! $sun_var =  sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \+              sun_type7 sun_type7_suncompat suncompat++! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat++! $htcdreamlayouts = us it de++! $dvoraklayouts = br ca de ee es fr gb no pl se us++! model		=	keycodes+  pc98		=	evdev(pc98)+  applealu_jis	=	evdev+macintosh(jisevdev)+  olpc          =       evdev+olpc(olpc)+  olpcm         =       evdev+olpc(olpcm)+  *		=	evdev++! layout[1]	=	keycodes+  $azerty       =       +aliases(azerty)+  $qwertz       =       +aliases(qwertz)+  *             =       +aliases(qwerty)++! layout	=	keycodes+  $azerty       =       +aliases(azerty)+  $qwertz       =       +aliases(qwertz)+  *             =       +aliases(qwerty)++! option	=	keycodes++! model		layout	=	geometry+  thinkpad     us              =       thinkpad(us)++! model		=	geometry+  microsoftelite	=	microsoft(elite)+ $msmodels	=	microsoft(natural)+  dell101	=	dell(dell101)+  dellm65	=	dell(dellm65)+  latitude	=	dell(latitude)+  flexpro	=	keytronic(FlexPro)+  hp6000	=	hp(omnibook)+  hpmini110	=	hp(mini110)+  hpdv5		=	hp(dv5)+  omnikey101	=	northgate(omnikey101)+  sanwaskbkg3	=	sanwa(sanwaskbkg3)+ $pcmodels	=	pc(%m)+ $pcgeometries	=	pc(%m)+  everex	=	everex(STEPnote)+  thinkpad	=	thinkpad(intl)+  thinkpad60	=	thinkpad(60)+  thinkpadz60	=	thinkpad(60)+ $tmgeometries	=	typematrix(%m)+  winbook	=	winbook(XP5)+  pc98		=	nec(pc98)+ $applealu	=	macintosh(%m)+ $macbooks      =       macintosh(%m)+ $macs		=	macintosh(macintosh)+  hhk		=	hhk(basic)+  kinesis	=	kinesis(model100)+ $nokiamodels	=	nokia(%m)+  sun_type6_jp          =   sun(type6jp)+  sun_type6_usb         =   sun(type6)+  sun_type6_euro_usb    =   sun(type6tuv)+  sun_type6_jp_usb      =   sun(type6jp)+  sun_type6_unix_usb    =   sun(type6unix)+  sun_type7_jp_usb      =   sun(type6jp)+  sun_type7_usb         =   sun(type7)+  sun_type7_euro_usb    =   sun(type7tuv)+  sun_type7_unix_usb    =   sun(type7unix)+  *		=       pc(pc104)++! model		layout		variant		=	symbols+  *		ben		basic		=	pc+in(ben)+  *		ben		probhat		=	pc+in(ben_probhat)+  *		dev		basic		=	pc+in(deva)+  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak)+  *		dvorak		basic		=	pc+us(dvorak)+  *		dvorak		pl_basic		=	pc+pl(dvorak)+  *		dvorak		pl		=	pc+pl(dvorak_quotes)+  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)+  *		dzdwi		basic		=	pc+bt(basic)+  *		fi		basic		=	pc+fi(classic)+  *		ge		azerty_tskapo		=	pc+fr(geo)+  *		guj		basic		=	pc+in(guj)+  *		gur		basic		=	pc+in(guru)+  *		ie		laptop		=	pc+ie(basic)+  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)+  *		in		urd		=	pc+in(urd-phonetic)+  *		iu		basic		=	pc+ca(ike)+  *		lo		basic		=	pc+la(basic)+  *		kan		basic		=	pc+in(kan)+  *		mal		basic		=	pc+in(mal)+  *		mal		mlplusnum		=	pc+in(mal)+  *		ogham		basic		=	pc+ie(ogam)+  *		ogham		laptop		=	pc+ie(ogam)+  *		ogham		is434		=	pc+ie(ogam_is434)+  *		ogham		is434laptop		=	pc+ie(ogam_is434)+  *		ori		basic		=	pc+in(ori)+  *		ro		de		=	pc+ro(winkeys)+  *		ro		us		=	pc+ro(std)+  *		ro		academic		=	pc+ro(std)+  *		ro		std_comma		=	pc+ro(std)+  *		ro		comma		=	pc+ro(basic)+  *		ru		os		=	pc+ru(os_legacy)+  *		pk		urd		=	pc+pk(urd-phonetic)+  *		sapmi		basic		=	pc+no(smi)+  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)+  *		sapmi		sefi		=	pc+fi(smi)+  *		sin		phonetic-static		=	pc+in(sin_phonetic)+  *		syr		basic		=	pc+sy(syc)+  *		syr		phonetic		=	pc+sy(syc_phonetic)+  *		tam		INSCRIPT		=	pc+in(tam)+  *		tam		UNI		=	pc+in(tam_unicode)+  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)+  *		tam		TAB		=	pc+in(tam_TAB)+  *		tam		TSCII		=	pc+in(tam_TSCII)+  *		tel		basic		=	pc+in(tel)+  *		yu		basic		=	pc+srp(latin)+  *		yu		unicode		=	pc+srp(latinunicode)+  *		yu		yz		=	pc+srp(latinyz)+  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)+  classmate	us		intl		=	pc+us(classmate-intl)+  classmate	us		alt-intl	=	pc+us(classmate-alt-intl)+  classmate	us		altgr-intl	=	pc+us(classmate-altgr-intl)+  nokiarx51	cz		qwerty		=	nokia_vndr/rx-51(cz_qwerty)+  *			$sun_custom	$sun_var	=	pc+sun_vndr/%l%(v)++! model		layout				=	symbols+  *		ar			=	pc+ara+  *		ben			=	pc+in(ben)+  *		bs			=	pc+ba+  *		cs			=	pc+rs+  *		cz_qwerty			=	pc+cz(qwerty)+  *		dev			=	pc+in(deva)+  *		dvorak			=	pc+us(dvorak)+  *		dzdwi			=	pc+bt+  *		el			=	pc+gr+  *		en_US			=	pc+latin+  *		guj			=	pc+in(guj)+  *		gur			=	pc+in(guru)+  *		iu			=	pc+ca(ike)+  *		lo			=	pc+la+  *		kan			=	pc+in(kan)+  *		mi			=	pc+mao+  *		ogham			=	pc+ie(ogam)+  *		ori			=	pc+ie(ori)+  *		sapmi			=	pc+no(smi)+  *		sr			=	pc+srp+  *		syr			=	pc+sy(syc)+  *		tel			=	pc+in(tel)+  *		tml			=	pc+in(tam)+  *		yu			=	pc+srp+  *		fr-latin9			=	pc+fr(latin9)+  *		us_intl			=	pc+us(alt-intl)+  *		ben(basic)			=	pc+in(ben)+  *		ben(probhat)			=	pc+in(ben_probhat)+  *		dev(basic)			=	pc+in(deva)+  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak)+  *		dvorak(basic)			=	pc+us(dvorak)+  *		dvorak(pl_basic)			=	pc+pl(dvorak)+  *		dvorak(pl)			=	pc+pl(dvorak_quotes)+  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)+  *		dzdwi(basic)			=	pc+bt(basic)+  *		fi(basic)			=	pc+fi(classic)+  *		ge(azerty_tskapo)			=	pc+fr(geo)+  *		guj(basic)			=	pc+in(guj)+  *		gur(basic)			=	pc+in(guru)+  *		ie(laptop)			=	pc+ie(basic)+  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)+  *		in(urd)			=	pc+in(urd-phonetic)+  *		iu(basic)			=	pc+ca(ike)+  *		lo(basic)			=	pc+la(basic)+  *		kan(basic)			=	pc+in(kan)+  *		mal(basic)			=	pc+in(mal)+  *		mal(mlplusnum)			=	pc+in(mal)+  *		ogham(basic)			=	pc+ie(ogam)+  *		ogham(laptop)			=	pc+ie(ogam)+  *		ogham(is434)			=	pc+ie(ogam_is434)+  *		ogham(is434laptop)			=	pc+ie(ogam_is434)+  *		ori(basic)			=	pc+in(ori)+  *		ro(de)			=	pc+ro(winkeys)+  *		ro(us)			=	pc+ro(std)+  *		ro(academic)			=	pc+ro(std)+  *		ro(std_comma)			=	pc+ro(std)+  *		ro(comma)			=	pc+ro(basic)+  *		ru(os)			=	pc+ru(os_legacy)+  *		pk(urd)			=	pc+pk(urd-phonetic)+  *		sapmi(basic)			=	pc+no(smi)+  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)+  *		sapmi(sefi)			=	pc+fi(smi)+  *		sin(phonetic-static)			=	pc+in(sin_phonetic)+  *		syr(basic)			=	pc+sy(syc)+  *		syr(phonetic)			=	pc+sy(syc_phonetic)+  *		tam(INSCRIPT)			=	pc+in(tam)+  *		tam(UNI)			=	pc+in(tam_unicode)+  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)+  *		tam(TAB)			=	pc+in(tam_TAB)+  *		tam(TSCII)			=	pc+in(tam_TSCII)+  *		tel(basic)			=	pc+in(tel)+  *		yu(basic)			=	pc+srp(latin)+  *		yu(unicode)			=	pc+srp(latinunicode)+  *		yu(yz)			=	pc+srp(latinyz)+  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)+  ataritt	$nonlatin		=	xfree68_vndr/ataritt(us)+%l%(v):2+  ataritt	*			=	xfree68_vndr/ataritt(us)+%l%(v)+  amiga		$nonlatin		=	xfree68_vndr/amiga(usa1)+%l%(v):2+  amiga		*			=	xfree68_vndr/amiga(usa1)+%l%(v)+  classmate	us			=	pc+%l(classmate)+  empty         *                       =       empty(basic)+  *             empty                   =       empty(basic)+ $sun		$sun_custom		=	pc+sun_vndr/%l%(v)+  pc98		nec_vndr/jp		=	nec_vndr/jp(pc98)+  macintosh_old	us			=	macintosh_vndr/us(oldmac)+  macintosh_old	en_US			=	macintosh_vndr/us(oldmac)+  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)+  macintosh_old	$nonlatin		=	macintosh_vndr/us(oldmac)+%l%(v):2+  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v)+  applealu_jis	jp			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2+  applealu_jis	*			=	macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2+ $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v)+ $applealu	*			=	macintosh_vndr/apple(alukbd)+%l%(v)+ $macs		en_US			=	pc+macintosh_vndr/us(extended)+ $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v)+  nokiarx44	*			=	nokia_vndr/rx-44(%l)+  nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)+  nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v)+  nokiasu8w	*			=	nokia_vndr/su-8w(%l)+  olpc		$olpclayouts		=	olpc+%l%(m)+  olpc		*			=	olpc+%l%(v)+  olpcm		$olpclayouts		=	olpc+%l%(m)+  olpcm		*			=	olpc+%l%(v)+ $thinkpads   	br			=	pc+br(thinkpad)+  sl-c3x00	*			=	pc+sharp_vndr/sl-c3x00(basic)+  ws003sh	*			=	pc+sharp_vndr/ws003sh(basic)+  ws007sh	*			=	pc+sharp_vndr/ws007sh(basic)+  ws011sh	*			=	pc+sharp_vndr/ws011sh(basic)+  ws020sh	*			=	pc+sharp_vndr/ws020sh(basic)+  htcdream	$htcdreamlayouts	=	%l(htcdream)+  *	   	$nonlatin		=	pc+us+%l%(v):2+  *		*			=	pc+%l%(v)++! model		layout[1]			=	symbols+  *		ar			=	pc+ara%(v[1])+  *		ben			=	pc+in(ben)+  *		bs			=	pc+ba%(v[1])+  *		cs			=	pc+rs%(v[1])+  *		cz_qwerty			=	pc+cz(qwerty)+  *		dev			=	pc+in(deva)+  *		dvorak			=	pc+us(dvorak)+  *		dzdwi			=	pc+bt%(v[1])+  *		el			=	pc+gr%(v[1])+  *		en_US			=	pc+latin%(v[1])+  *		guj			=	pc+in(guj)+  *		gur			=	pc+in(guru)+  *		iu			=	pc+ca(ike)+  *		lo			=	pc+la%(v[1])+  *		kan			=	pc+in(kan)+  *		mi			=	pc+mao%(v[1])+  *		ogham			=	pc+ie(ogam)+  *		ori			=	pc+ie(ori)+  *		sapmi			=	pc+no(smi)+  *		sr			=	pc+srp%(v[1])+  *		syr			=	pc+sy(syc)+  *		tel			=	pc+in(tel)+  *		tml			=	pc+in(tam)+  *		yu			=	pc+srp%(v[1])+  *		fr-latin9			=	pc+fr(latin9)+  *		us_intl			=	pc+us(alt-intl)+  *		ben(basic)			=	pc+in(ben)+  *		ben(probhat)			=	pc+in(ben_probhat)+  *		dev(basic)			=	pc+in(deva)+  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak)+  *		dvorak(basic)			=	pc+us(dvorak)+  *		dvorak(pl_basic)			=	pc+pl(dvorak)+  *		dvorak(pl)			=	pc+pl(dvorak_quotes)+  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)+  *		dzdwi(basic)			=	pc+bt(basic)+  *		fi(basic)			=	pc+fi(classic)+  *		ge(azerty_tskapo)			=	pc+fr(geo)+  *		guj(basic)			=	pc+in(guj)+  *		gur(basic)			=	pc+in(guru)+  *		ie(laptop)			=	pc+ie(basic)+  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)+  *		in(urd)			=	pc+in(urd-phonetic)+  *		iu(basic)			=	pc+ca(ike)+  *		lo(basic)			=	pc+la(basic)+  *		kan(basic)			=	pc+in(kan)+  *		mal(basic)			=	pc+in(mal)+  *		mal(mlplusnum)			=	pc+in(mal)+  *		ogham(basic)			=	pc+ie(ogam)+  *		ogham(laptop)			=	pc+ie(ogam)+  *		ogham(is434)			=	pc+ie(ogam_is434)+  *		ogham(is434laptop)			=	pc+ie(ogam_is434)+  *		ori(basic)			=	pc+in(ori)+  *		ro(de)			=	pc+ro(winkeys)+  *		ro(us)			=	pc+ro(std)+  *		ro(academic)			=	pc+ro(std)+  *		ro(std_comma)			=	pc+ro(std)+  *		ro(comma)			=	pc+ro(basic)+  *		ru(os)			=	pc+ru(os_legacy)+  *		pk(urd)			=	pc+pk(urd-phonetic)+  *		sapmi(basic)			=	pc+no(smi)+  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)+  *		sapmi(sefi)			=	pc+fi(smi)+  *		sin(phonetic-static)			=	pc+in(sin_phonetic)+  *		syr(basic)			=	pc+sy(syc)+  *		syr(phonetic)			=	pc+sy(syc_phonetic)+  *		tam(INSCRIPT)			=	pc+in(tam)+  *		tam(UNI)			=	pc+in(tam_unicode)+  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)+  *		tam(TAB)			=	pc+in(tam_TAB)+  *		tam(TSCII)			=	pc+in(tam_TSCII)+  *		tel(basic)			=	pc+in(tel)+  *		yu(basic)			=	pc+srp(latin)+  *		yu(unicode)			=	pc+srp(latinunicode)+  *		yu(yz)			=	pc+srp(latinyz)+  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)+  ataritt	*			=	xfree68_vndr/ataritt(us)+%l[1]%(v[1])+  amiga		*			=	xfree68_vndr/amiga(usa1)+%l[1]%(v[1])+ $sun		$sun_custom	=	pc+sun_vndr/%l[1]%(v[1])+  macintosh_old	us			=	macintosh_vndr/us(oldmac)+  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])+  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l[1]%(v[1])+  applealu_jis	us			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+ $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1])+ $applealu	*			=	macintosh_vndr/apple(alukbd)+%l[1]%(v[1])+ $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l[1]%(v[1])+  nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)+  nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1])+ $thinkpads	br			=	pc+%l[1](thinkpad)+  *		*			=	pc+%l[1]%(v[1])++! model		layout[1]	variant[1]	=	symbols+  *		ben		basic		=	pc+in(ben)+  *		ben		probhat		=	pc+in(ben_probhat)+  *		dev		basic		=	pc+in(deva)+  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak)+  *		dvorak		basic		=	pc+us(dvorak)+  *		dvorak		pl_basic		=	pc+pl(dvorak)+  *		dvorak		pl		=	pc+pl(dvorak_quotes)+  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)+  *		dzdwi		basic		=	pc+bt(basic)+  *		fi		basic		=	pc+fi(classic)+  *		ge		azerty_tskapo		=	pc+fr(geo)+  *		guj		basic		=	pc+in(guj)+  *		gur		basic		=	pc+in(guru)+  *		ie		laptop		=	pc+ie(basic)+  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)+  *		in		urd		=	pc+in(urd-phonetic)+  *		iu		basic		=	pc+ca(ike)+  *		lo		basic		=	pc+la(basic)+  *		kan		basic		=	pc+in(kan)+  *		mal		basic		=	pc+in(mal)+  *		mal		mlplusnum		=	pc+in(mal)+  *		ogham		basic		=	pc+ie(ogam)+  *		ogham		laptop		=	pc+ie(ogam)+  *		ogham		is434		=	pc+ie(ogam_is434)+  *		ogham		is434laptop		=	pc+ie(ogam_is434)+  *		ori		basic		=	pc+in(ori)+  *		ro		de		=	pc+ro(winkeys)+  *		ro		us		=	pc+ro(std)+  *		ro		academic		=	pc+ro(std)+  *		ro		std_comma		=	pc+ro(std)+  *		ro		comma		=	pc+ro(basic)+  *		ru		os		=	pc+ru(os_legacy)+  *		pk		urd		=	pc+pk(urd-phonetic)+  *		sapmi		basic		=	pc+no(smi)+  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)+  *		sapmi		sefi		=	pc+fi(smi)+  *		sin		phonetic-static		=	pc+in(sin_phonetic)+  *		syr		basic		=	pc+sy(syc)+  *		syr		phonetic		=	pc+sy(syc_phonetic)+  *		tam		INSCRIPT		=	pc+in(tam)+  *		tam		UNI		=	pc+in(tam_unicode)+  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)+  *		tam		TAB		=	pc+in(tam_TAB)+  *		tam		TSCII		=	pc+in(tam_TSCII)+  *		tel		basic		=	pc+in(tel)+  *		yu		basic		=	pc+srp(latin)+  *		yu		unicode		=	pc+srp(latinunicode)+  *		yu		yz		=	pc+srp(latinyz)+  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)++! model		layout[2]	=	symbols+  *		ar		=	+ara%(v[2]):2+  *		ben		=	+in(ben):2+  *		bs		=	+ba%(v[2]):2+  *		cs		=	+rs%(v[2]):2+  *		cz_qwerty		=	+cz(qwerty):2+  *		dev		=	+in(deva):2+  *		dvorak		=	+us(dvorak):2+  *		dzdwi		=	+bt%(v[2]):2+  *		el		=	+gr%(v[2]):2+  *		en_US		=	+latin%(v[2]):2+  *		guj		=	+in(guj):2+  *		gur		=	+in(guru):2+  *		iu		=	+ca(ike):2+  *		lo		=	+la%(v[2]):2+  *		kan		=	+in(kan):2+  *		mi		=	+mao%(v[2]):2+  *		ogham		=	+ie(ogam):2+  *		ori		=	+ie(ori):2+  *		sapmi		=	+no(smi):2+  *		sr		=	+srp%(v[2]):2+  *		syr		=	+sy(syc):2+  *		tel		=	+in(tel):2+  *		tml		=	+in(tam):2+  *		yu		=	+srp%(v[2]):2+  *		fr-latin9		=	+fr(latin9):2+  *		us_intl		=	+us(alt-intl):2+  *		ben(basic)	=	+in(ben):2+  *		ben(probhat)	=	+in(ben_probhat):2+  *		dev(basic)	=	+in(deva):2+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):2+  *		dvorak(basic)	=	+us(dvorak):2+  *		dvorak(pl_basic)	=	+pl(dvorak):2+  *		dvorak(pl)	=	+pl(dvorak_quotes):2+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):2+  *		dzdwi(basic)	=	+bt(basic):2+  *		fi(basic)	=	+fi(classic):2+  *		ge(azerty_tskapo)	=	+fr(geo):2+  *		guj(basic)	=	+in(guj):2+  *		gur(basic)	=	+in(guru):2+  *		ie(laptop)	=	+ie(basic):2+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):2+  *		in(urd)	=	+in(urd-phonetic):2+  *		iu(basic)	=	+ca(ike):2+  *		lo(basic)	=	+la(basic):2+  *		kan(basic)	=	+in(kan):2+  *		mal(basic)	=	+in(mal):2+  *		mal(mlplusnum)	=	+in(mal):2+  *		ogham(basic)	=	+ie(ogam):2+  *		ogham(laptop)	=	+ie(ogam):2+  *		ogham(is434)	=	+ie(ogam_is434):2+  *		ogham(is434laptop)	=	+ie(ogam_is434):2+  *		ori(basic)	=	+in(ori):2+  *		ro(de)	=	+ro(winkeys):2+  *		ro(us)	=	+ro(std):2+  *		ro(academic)	=	+ro(std):2+  *		ro(std_comma)	=	+ro(std):2+  *		ro(comma)	=	+ro(basic):2+  *		ru(os)	=	+ru(os_legacy):2+  *		pk(urd)	=	+pk(urd-phonetic):2+  *		sapmi(basic)	=	+no(smi):2+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):2+  *		sapmi(sefi)	=	+fi(smi):2+  *		sin(phonetic-static)	=	+in(sin_phonetic):2+  *		syr(basic)	=	+sy(syc):2+  *		syr(phonetic)	=	+sy(syc_phonetic):2+  *		tam(INSCRIPT)	=	+in(tam):2+  *		tam(UNI)	=	+in(tam_unicode):2+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):2+  *		tam(TAB)	=	+in(tam_TAB):2+  *		tam(TSCII)	=	+in(tam_TSCII):2+  *		tel(basic)	=	+in(tel):2+  *		yu(basic)	=	+srp(latin):2+  *		yu(unicode)	=	+srp(latinunicode):2+  *		yu(yz)	=	+srp(latinyz):2+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):2+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):2+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[2]%_v[2]):2+ $sun	$sun_custom	=	+sun_vndr/%l[2]%(v[2]):2+  *		*		=	+%l[2]%(v[2]):2++! model		layout[3]	=	symbols+  *		ar		=	+ara%(v[3]):3+  *		ben		=	+in(ben):3+  *		bs		=	+ba%(v[3]):3+  *		cs		=	+rs%(v[3]):3+  *		cz_qwerty		=	+cz(qwerty):3+  *		dev		=	+in(deva):3+  *		dvorak		=	+us(dvorak):3+  *		dzdwi		=	+bt%(v[3]):3+  *		el		=	+gr%(v[3]):3+  *		en_US		=	+latin%(v[3]):3+  *		guj		=	+in(guj):3+  *		gur		=	+in(guru):3+  *		iu		=	+ca(ike):3+  *		lo		=	+la%(v[3]):3+  *		kan		=	+in(kan):3+  *		mi		=	+mao%(v[3]):3+  *		ogham		=	+ie(ogam):3+  *		ori		=	+ie(ori):3+  *		sapmi		=	+no(smi):3+  *		sr		=	+srp%(v[3]):3+  *		syr		=	+sy(syc):3+  *		tel		=	+in(tel):3+  *		tml		=	+in(tam):3+  *		yu		=	+srp%(v[3]):3+  *		fr-latin9		=	+fr(latin9):3+  *		us_intl		=	+us(alt-intl):3+  *		ben(basic)	=	+in(ben):3+  *		ben(probhat)	=	+in(ben_probhat):3+  *		dev(basic)	=	+in(deva):3+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):3+  *		dvorak(basic)	=	+us(dvorak):3+  *		dvorak(pl_basic)	=	+pl(dvorak):3+  *		dvorak(pl)	=	+pl(dvorak_quotes):3+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):3+  *		dzdwi(basic)	=	+bt(basic):3+  *		fi(basic)	=	+fi(classic):3+  *		ge(azerty_tskapo)	=	+fr(geo):3+  *		guj(basic)	=	+in(guj):3+  *		gur(basic)	=	+in(guru):3+  *		ie(laptop)	=	+ie(basic):3+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):3+  *		in(urd)	=	+in(urd-phonetic):3+  *		iu(basic)	=	+ca(ike):3+  *		lo(basic)	=	+la(basic):3+  *		kan(basic)	=	+in(kan):3+  *		mal(basic)	=	+in(mal):3+  *		mal(mlplusnum)	=	+in(mal):3+  *		ogham(basic)	=	+ie(ogam):3+  *		ogham(laptop)	=	+ie(ogam):3+  *		ogham(is434)	=	+ie(ogam_is434):3+  *		ogham(is434laptop)	=	+ie(ogam_is434):3+  *		ori(basic)	=	+in(ori):3+  *		ro(de)	=	+ro(winkeys):3+  *		ro(us)	=	+ro(std):3+  *		ro(academic)	=	+ro(std):3+  *		ro(std_comma)	=	+ro(std):3+  *		ro(comma)	=	+ro(basic):3+  *		ru(os)	=	+ru(os_legacy):3+  *		pk(urd)	=	+pk(urd-phonetic):3+  *		sapmi(basic)	=	+no(smi):3+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):3+  *		sapmi(sefi)	=	+fi(smi):3+  *		sin(phonetic-static)	=	+in(sin_phonetic):3+  *		syr(basic)	=	+sy(syc):3+  *		syr(phonetic)	=	+sy(syc_phonetic):3+  *		tam(INSCRIPT)	=	+in(tam):3+  *		tam(UNI)	=	+in(tam_unicode):3+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):3+  *		tam(TAB)	=	+in(tam_TAB):3+  *		tam(TSCII)	=	+in(tam_TSCII):3+  *		tel(basic)	=	+in(tel):3+  *		yu(basic)	=	+srp(latin):3+  *		yu(unicode)	=	+srp(latinunicode):3+  *		yu(yz)	=	+srp(latinyz):3+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):3+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):3+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[3]%_v[3]):3+ $sun	$sun_custom	=	+sun_vndr/%l[3]%(v[3]):3+  *		*		=	+%l[3]%(v[3]):3++! model		layout[4]	=	symbols+  *		ar		=	+ara%(v[4]):4+  *		ben		=	+in(ben):4+  *		bs		=	+ba%(v[4]):4+  *		cs		=	+rs%(v[4]):4+  *		cz_qwerty		=	+cz(qwerty):4+  *		dev		=	+in(deva):4+  *		dvorak		=	+us(dvorak):4+  *		dzdwi		=	+bt%(v[4]):4+  *		el		=	+gr%(v[4]):4+  *		en_US		=	+latin%(v[4]):4+  *		guj		=	+in(guj):4+  *		gur		=	+in(guru):4+  *		iu		=	+ca(ike):4+  *		lo		=	+la%(v[4]):4+  *		kan		=	+in(kan):4+  *		mi		=	+mao%(v[4]):4+  *		ogham		=	+ie(ogam):4+  *		ori		=	+ie(ori):4+  *		sapmi		=	+no(smi):4+  *		sr		=	+srp%(v[4]):4+  *		syr		=	+sy(syc):4+  *		tel		=	+in(tel):4+  *		tml		=	+in(tam):4+  *		yu		=	+srp%(v[4]):4+  *		fr-latin9		=	+fr(latin9):4+  *		us_intl		=	+us(alt-intl):4+  *		ben(basic)	=	+in(ben):4+  *		ben(probhat)	=	+in(ben_probhat):4+  *		dev(basic)	=	+in(deva):4+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):4+  *		dvorak(basic)	=	+us(dvorak):4+  *		dvorak(pl_basic)	=	+pl(dvorak):4+  *		dvorak(pl)	=	+pl(dvorak_quotes):4+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):4+  *		dzdwi(basic)	=	+bt(basic):4+  *		fi(basic)	=	+fi(classic):4+  *		ge(azerty_tskapo)	=	+fr(geo):4+  *		guj(basic)	=	+in(guj):4+  *		gur(basic)	=	+in(guru):4+  *		ie(laptop)	=	+ie(basic):4+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):4+  *		in(urd)	=	+in(urd-phonetic):4+  *		iu(basic)	=	+ca(ike):4+  *		lo(basic)	=	+la(basic):4+  *		kan(basic)	=	+in(kan):4+  *		mal(basic)	=	+in(mal):4+  *		mal(mlplusnum)	=	+in(mal):4+  *		ogham(basic)	=	+ie(ogam):4+  *		ogham(laptop)	=	+ie(ogam):4+  *		ogham(is434)	=	+ie(ogam_is434):4+  *		ogham(is434laptop)	=	+ie(ogam_is434):4+  *		ori(basic)	=	+in(ori):4+  *		ro(de)	=	+ro(winkeys):4+  *		ro(us)	=	+ro(std):4+  *		ro(academic)	=	+ro(std):4+  *		ro(std_comma)	=	+ro(std):4+  *		ro(comma)	=	+ro(basic):4+  *		ru(os)	=	+ru(os_legacy):4+  *		pk(urd)	=	+pk(urd-phonetic):4+  *		sapmi(basic)	=	+no(smi):4+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):4+  *		sapmi(sefi)	=	+fi(smi):4+  *		sin(phonetic-static)	=	+in(sin_phonetic):4+  *		syr(basic)	=	+sy(syc):4+  *		syr(phonetic)	=	+sy(syc_phonetic):4+  *		tam(INSCRIPT)	=	+in(tam):4+  *		tam(UNI)	=	+in(tam_unicode):4+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):4+  *		tam(TAB)	=	+in(tam_TAB):4+  *		tam(TSCII)	=	+in(tam_TSCII):4+  *		tel(basic)	=	+in(tel):4+  *		yu(basic)	=	+srp(latin):4+  *		yu(unicode)	=	+srp(latinunicode):4+  *		yu(yz)	=	+srp(latinyz):4+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):4+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):4+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[4]%_v[4]):4+ $sun	$sun_custom	=	+sun_vndr/%l[4]%(v[4]):4+  *		*		=	+%l[4]%(v[4]):4++! model		layout[2]	variant[2]	=	symbols+  *		ben		basic	=	+in(ben):2+  *		ben		probhat	=	+in(ben_probhat):2+  *		dev		basic	=	+in(deva):2+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):2+  *		dvorak		basic	=	+us(dvorak):2+  *		dvorak		pl_basic	=	+pl(dvorak):2+  *		dvorak		pl	=	+pl(dvorak_quotes):2+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):2+  *		dzdwi		basic	=	+bt(basic):2+  *		fi		basic	=	+fi(classic):2+  *		ge		azerty_tskapo	=	+fr(geo):2+  *		guj		basic	=	+in(guj):2+  *		gur		basic	=	+in(guru):2+  *		ie		laptop	=	+ie(basic):2+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):2+  *		in		urd	=	+in(urd-phonetic):2+  *		iu		basic	=	+ca(ike):2+  *		lo		basic	=	+la(basic):2+  *		kan		basic	=	+in(kan):2+  *		mal		basic	=	+in(mal):2+  *		mal		mlplusnum	=	+in(mal):2+  *		ogham		basic	=	+ie(ogam):2+  *		ogham		laptop	=	+ie(ogam):2+  *		ogham		is434	=	+ie(ogam_is434):2+  *		ogham		is434laptop	=	+ie(ogam_is434):2+  *		ori		basic	=	+in(ori):2+  *		ro		de	=	+ro(winkeys):2+  *		ro		us	=	+ro(std):2+  *		ro		academic	=	+ro(std):2+  *		ro		std_comma	=	+ro(std):2+  *		ro		comma	=	+ro(basic):2+  *		ru		os	=	+ru(os_legacy):2+  *		pk		urd	=	+pk(urd-phonetic):2+  *		sapmi		basic	=	+no(smi):2+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):2+  *		sapmi		sefi	=	+fi(smi):2+  *		sin		phonetic-static	=	+in(sin_phonetic):2+  *		syr		basic	=	+sy(syc):2+  *		syr		phonetic	=	+sy(syc_phonetic):2+  *		tam		INSCRIPT	=	+in(tam):2+  *		tam		UNI	=	+in(tam_unicode):2+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):2+  *		tam		TAB	=	+in(tam_TAB):2+  *		tam		TSCII	=	+in(tam_TSCII):2+  *		tel		basic	=	+in(tel):2+  *		yu		basic	=	+srp(latin):2+  *		yu		unicode	=	+srp(latinunicode):2+  *		yu		yz	=	+srp(latinyz):2+  *		yu		unicodeyz	=	+srp(latinunicodeyz):2++! model		layout[3]	variant[3]	=	symbols+  *		ben		basic	=	+in(ben):3+  *		ben		probhat	=	+in(ben_probhat):3+  *		dev		basic	=	+in(deva):3+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):3+  *		dvorak		basic	=	+us(dvorak):3+  *		dvorak		pl_basic	=	+pl(dvorak):3+  *		dvorak		pl	=	+pl(dvorak_quotes):3+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):3+  *		dzdwi		basic	=	+bt(basic):3+  *		fi		basic	=	+fi(classic):3+  *		ge		azerty_tskapo	=	+fr(geo):3+  *		guj		basic	=	+in(guj):3+  *		gur		basic	=	+in(guru):3+  *		ie		laptop	=	+ie(basic):3+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):3+  *		in		urd	=	+in(urd-phonetic):3+  *		iu		basic	=	+ca(ike):3+  *		lo		basic	=	+la(basic):3+  *		kan		basic	=	+in(kan):3+  *		mal		basic	=	+in(mal):3+  *		mal		mlplusnum	=	+in(mal):3+  *		ogham		basic	=	+ie(ogam):3+  *		ogham		laptop	=	+ie(ogam):3+  *		ogham		is434	=	+ie(ogam_is434):3+  *		ogham		is434laptop	=	+ie(ogam_is434):3+  *		ori		basic	=	+in(ori):3+  *		ro		de	=	+ro(winkeys):3+  *		ro		us	=	+ro(std):3+  *		ro		academic	=	+ro(std):3+  *		ro		std_comma	=	+ro(std):3+  *		ro		comma	=	+ro(basic):3+  *		ru		os	=	+ru(os_legacy):3+  *		pk		urd	=	+pk(urd-phonetic):3+  *		sapmi		basic	=	+no(smi):3+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):3+  *		sapmi		sefi	=	+fi(smi):3+  *		sin		phonetic-static	=	+in(sin_phonetic):3+  *		syr		basic	=	+sy(syc):3+  *		syr		phonetic	=	+sy(syc_phonetic):3+  *		tam		INSCRIPT	=	+in(tam):3+  *		tam		UNI	=	+in(tam_unicode):3+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):3+  *		tam		TAB	=	+in(tam_TAB):3+  *		tam		TSCII	=	+in(tam_TSCII):3+  *		tel		basic	=	+in(tel):3+  *		yu		basic	=	+srp(latin):3+  *		yu		unicode	=	+srp(latinunicode):3+  *		yu		yz	=	+srp(latinyz):3+  *		yu		unicodeyz	=	+srp(latinunicodeyz):3++! model		layout[4]	variant[4]	=	symbols+  *		ben		basic	=	+in(ben):4+  *		ben		probhat	=	+in(ben_probhat):4+  *		dev		basic	=	+in(deva):4+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):4+  *		dvorak		basic	=	+us(dvorak):4+  *		dvorak		pl_basic	=	+pl(dvorak):4+  *		dvorak		pl	=	+pl(dvorak_quotes):4+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):4+  *		dzdwi		basic	=	+bt(basic):4+  *		fi		basic	=	+fi(classic):4+  *		ge		azerty_tskapo	=	+fr(geo):4+  *		guj		basic	=	+in(guj):4+  *		gur		basic	=	+in(guru):4+  *		ie		laptop	=	+ie(basic):4+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):4+  *		in		urd	=	+in(urd-phonetic):4+  *		iu		basic	=	+ca(ike):4+  *		lo		basic	=	+la(basic):4+  *		kan		basic	=	+in(kan):4+  *		mal		basic	=	+in(mal):4+  *		mal		mlplusnum	=	+in(mal):4+  *		ogham		basic	=	+ie(ogam):4+  *		ogham		laptop	=	+ie(ogam):4+  *		ogham		is434	=	+ie(ogam_is434):4+  *		ogham		is434laptop	=	+ie(ogam_is434):4+  *		ori		basic	=	+in(ori):4+  *		ro		de	=	+ro(winkeys):4+  *		ro		us	=	+ro(std):4+  *		ro		academic	=	+ro(std):4+  *		ro		std_comma	=	+ro(std):4+  *		ro		comma	=	+ro(basic):4+  *		ru		os	=	+ru(os_legacy):4+  *		pk		urd	=	+pk(urd-phonetic):4+  *		sapmi		basic	=	+no(smi):4+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):4+  *		sapmi		sefi	=	+fi(smi):4+  *		sin		phonetic-static	=	+in(sin_phonetic):4+  *		syr		basic	=	+sy(syc):4+  *		syr		phonetic	=	+sy(syc_phonetic):4+  *		tam		INSCRIPT	=	+in(tam):4+  *		tam		UNI	=	+in(tam_unicode):4+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):4+  *		tam		TAB	=	+in(tam_TAB):4+  *		tam		TSCII	=	+in(tam_TSCII):4+  *		tel		basic	=	+in(tel):4+  *		yu		basic	=	+srp(latin):4+  *		yu		unicode	=	+srp(latinunicode):4+  *		yu		yz	=	+srp(latinyz):4+  *		yu		unicodeyz	=	+srp(latinunicodeyz):4++! model		=	symbols+  $evdevkbds    =   +inet(evdev)+inet(%m)+  applealu_jis  =   +inet(evdev)+macintosh_vndr/jp(alujiskeys)+  *             =   +inet(evdev)++! layout	variant		=	compat+  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)+  jp        $sun_compat =   complete+japan(kana_lock)++! layout[1]	variant[1]	=	compat+  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)+  jp       $sun_compat =   complete+japan(kana_lock)++! layout[2]	variant[2]	=	compat+  de		neo			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2+  jp       $sun_compat  =   +complete+japan(kana_lock):2++! layout[3]	variant[3]	=	compat+  de		neo			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3+  jp       $sun_compat  =   +complete+japan(kana_lock):3++! layout[4]	variant[4]	=	compat+  de		neo			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4+  jp       $sun_compat  =   +complete+japan(kana_lock):4++! model		layout		=	compat+  pc98		nec_vndr/jp	=	pc98(basic)+  *		jp		=	complete+japan+  olpc          *               =       olpc+  olpcm         *               =       olpc+  *		*		=	complete++! model		layout[1]	=	compat+  *		*		=	complete++! model		=	types+  $macs		=	complete+numpad(mac)+  $applealu	=	complete+numpad(mac)+  $nokiamodels	=	complete+nokia+  *		=	complete++! layout	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)+  *			misc:typo 	= +typo(base)++! layout[1]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1+  *			misc:typo 	= +typo(base):1++! layout[2]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2+  *			misc:typo 	= +typo(base):2++! layout[3]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3+  *			misc:typo 	= +typo(base):3++! layout[4]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4+  *			misc:typo 	= +typo(base):4++! option	=	symbols+  grp:shift_toggle	=	+group(shifts_toggle)+  altwin:menu		=	+altwin(menu)+  altwin:meta_alt	=	+altwin(meta_alt)+  altwin:alt_win	=	+altwin(alt_win)+  altwin:ctrl_win	=	+altwin(ctrl_win)+  altwin:ctrl_alt_win	=	+altwin(ctrl_alt_win)+  altwin:meta_win	=	+altwin(meta_win)+  altwin:left_meta_win	=	+altwin(left_meta_win)+  altwin:hyper_win	=	+altwin(hyper_win)+  altwin:alt_super_win	=	+altwin(alt_super_win)+  altwin:swap_alt_win	=	+altwin(swap_alt_win)+  grp:switch		=	+group(switch)+  grp:lswitch		=	+group(lswitch)+  grp:win_switch	=	+group(win_switch)+  grp:lwin_switch	=	+group(lwin_switch)+  grp:rwin_switch	=	+group(rwin_switch)+  grp:toggle		=	+group(toggle)+  grp:shifts_toggle	=	+group(shifts_toggle)+  grp:ctrls_toggle	=	+group(ctrls_toggle)+  grp:alts_toggle	=	+group(alts_toggle)+  grp:caps_toggle	=	+capslock(grouplock)+  grp:caps_switch       =       +capslock(groupshift)+  grp:shift_caps_toggle	=	+group(shift_caps_toggle)+  grp:shift_caps_switch	=	+group(shift_caps_switch)+  grp:win_menu_switch	=	+group(win_menu_switch)+  grp:alt_caps_toggle   =       +group(alt_caps_toggle)+  grp:alt_space_toggle	=	+group(alt_space_toggle)+  grp:menu_toggle	=	+group(menu_toggle)+  grp:lwin_toggle	=	+group(lwin_toggle)+  grp:rwin_toggle	=	+group(rwin_toggle)+  grp:lshift_toggle	=	+group(lshift_toggle)+  grp:rshift_toggle	=	+group(rshift_toggle)+  grp:rctrl_switch	=	+group(rctrl_switch)+  grp:lctrl_toggle	=	+group(lctrl_toggle)+  grp:rctrl_toggle	=	+group(rctrl_toggle)+  grp:lalt_toggle	=	+group(lalt_toggle)+  grp:sclk_toggle	=	+group(sclk_toggle)+  grp:lctrl_rctrl_switch	=	+group(lctrl_rctrl_switch)+  grp:lctrl_lwin_rctrl_menu	=	+group(lctrl_lwin_rctrl_menu)+  grp:lctrl_lalt_toggle	=	+group(lctrl_lalt_toggle)+  grp:rctrl_ralt_toggle	=	+group(rctrl_ralt_toggle)+  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle)+  grp:ctrl_alt_toggle_bidir	=	+group(ctrl_alt_toggle_bidir)+  grp:lctrl_lshift_toggle	=	+group(lctrl_lshift_toggle)+  grp:rctrl_rshift_toggle	=	+group(rctrl_rshift_toggle)+  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle)+  grp:ctrl_shift_toggle_bidir	=	+group(ctrl_shift_toggle_bidir)+  grp:lalt_lshift_toggle	=	+group(lalt_lshift_toggle)+  grp:ralt_rshift_toggle	=	+group(ralt_rshift_toggle)+  grp:alt_shift_toggle	=	+group(alt_shift_toggle)+  grp:alt_shift_toggle_bidir	=	+group(alt_shift_toggle_bidir)+  lv3:switch		=	+level3(switch)+  lv3:ralt_switch	=	+level3(ralt_switch)+  lv3:ralt_switch_multikey	=	+level3(ralt_switch_multikey)+  lv3:ralt_alt		=	+level3(ralt_alt)+  lv3:lalt_switch	=	+level3(lalt_switch)+  lv3:alt_switch	=	+level3(alt_switch)+  lv3:menu_switch	=	+level3(menu_switch)+  lv3:win_switch	=	+level3(win_switch)+  lv3:lwin_switch	=	+level3(lwin_switch)+  lv3:rwin_switch	=	+level3(rwin_switch)+  lv3:enter_switch	=	+level3(enter_switch)+  caps:capslock		=	+capslock(capslock)+  caps:numlock		=	+capslock(numlock)+  caps:shiftlock	=	+capslock(shiftlock)+  caps:swapescape	=	+capslock(swapescape)+  caps:escape		=	+capslock(escape)+  caps:backspace	=	+capslock(backspace)+  caps:super		=	+capslock(super)+  caps:hyper		=	+capslock(hyper)+  caps:none		=	+capslock(none)+  caps:ctrl_modifier	=	+capslock(ctrl_modifier)+  ctrl:nocaps		=	+ctrl(nocaps)+  ctrl:lctrl_meta	=	+ctrl(lctrl_meta)+  ctrl:swapcaps		=	+ctrl(swapcaps)+  ctrl:ac_ctrl		=	+ctrl(ac_ctrl)+  ctrl:aa_ctrl		=	+ctrl(aa_ctrl)+  ctrl:rctrl_ralt	=	+ctrl(rctrl_ralt)+  ctrl:menu_rctrl	=	+ctrl(menu_rctrl)+  ctrl:ralt_rctrl	=	+ctrl(ralt_rctrl)+  compose:ralt		=	+compose(ralt)+  compose:lwin		=	+compose(lwin)+  compose:lwin-altgr	=	+compose(lwin-altgr)+  compose:rwin		=	+compose(rwin)+  compose:rwin-altgr	=	+compose(rwin-altgr)+  compose:menu		=	+compose(menu)+  compose:menu-altgr	=	+compose(menu-altgr)+  compose:lctrl		=	+compose(lctrl)+  compose:lctrl-altgr	=	+compose(lctrl-altgr)+  compose:rctrl		=	+compose(rctrl)+  compose:rctrl-altgr	=	+compose(rctrl-altgr)+  compose:caps		=	+compose(caps)+  compose:caps-altgr	=	+compose(caps-altgr)+  compose:102		=	+compose(102)+  compose:102-altgr	=	+compose(102-altgr)+  compose:paus		=	+compose(paus)+  compose:prsc		=	+compose(prsc)+  compose:sclk		=	+compose(sclk)+  srvrkeys:none		=	+srvr_ctrl(no_srvr_keys)+  eurosign:e		=	+eurosign(e)+  eurosign:2		=	+eurosign(2)+  eurosign:4		=	+eurosign(4)+  eurosign:5		=	+eurosign(5)+  rupeesign:4           =       +rupeesign(4)+  keypad:oss            =       +keypad(oss)+  keypad:legacy         =	+keypad(legacy)+  keypad:legacy_wang    =	+keypad(legacy_wang)+  keypad:oss_wang       =	+keypad(oss_wang)+  keypad:future         =	+keypad(future)+  keypad:future_wang    =	+keypad(future_wang)+  keypad:hex            =	+keypad(ops)+keypad(hex)+  keypad:atm            =	+keypad(ops)+keypad(hex)+keypad(atm)  +  nbsp:none             =	+nbsp(none)+  nbsp:level2           =	+nbsp(level2)+  nbsp:level3           =	+nbsp(level3)+  nbsp:level3s          =	+nbsp(level3s)+  nbsp:level3n          =	+nbsp(level3n)+  nbsp:level4           =	+nbsp(level4)+  nbsp:level4n          =	+nbsp(level4n)+  nbsp:level4nl         =	+nbsp(level4nl)+  japan:nicola_f_bs     =	+jp(nicola_f_bs)+  japan:hztg_escape     =	+jp(hztg_escape)+  kpdl:dot              =	+kpdl(dot)+  kpdl:comma            =	+kpdl(comma)+  kpdl:dotoss           =	+kpdl(dotoss)+  kpdl:dotoss_latin9    =	+kpdl(dotoss_latin9)+  kpdl:commaoss         =	+kpdl(commaoss)+  kpdl:momayyezoss      =	+kpdl(momayyezoss)+  kpdl:kposs            =	+kpdl(kposs)+  kpdl:semi             =	+kpdl(semi)+  shift:breaks_caps     =	+shift(breaks_caps)+  esperanto:qwerty      =	+epo(qwerty)+  esperanto:dvorak      =	+epo(dvorak)+  terminate:ctrl_alt_bksp =	+terminate(ctrl_alt_bksp)+  keypad:pointerkeys	=	+keypad(pointerkeys)+  apple:alupckeys	=	+macintosh_vndr/apple(alupckeys)+  shift:both_capslock                =       +shift(both_capslock)+  shift:lshift_both_capslock         =       +shift(lshift_both_capslock)+  shift:rshift_both_capslock         =       +shift(rshift_both_capslock)+  shift:both_capslock_cancel         =       +shift(both_capslock_cancel)+  shift:lshift_both_capslock_cancel  =       +shift(lshift_both_capslock_cancel)+  shift:rshift_both_capslock_cancel  =       +shift(rshift_both_capslock_cancel)+  shift:both_shiftlock               =       +shift(both_shiftlock)+  shift:lshift_both_shiftlock        =       +shift(lshift_both_shiftlock)+  shift:rshift_both_shiftlock        =       +shift(rshift_both_shiftlock)+  solaris:sun_compat				 =		 +sun_vndr/solaris(sun_compat)+  lv3:caps_switch                    =       +level3(caps_switch)+  lv3:bksl_switch                    =       +level3(bksl_switch)+  lv3:lsgt_switch                    =       +level3(lsgt_switch)+  lv3:caps_switch_latch              =       +level3(caps_switch_latch)+  lv3:bksl_switch_latch              =       +level3(bksl_switch_latch)+  lv3:lsgt_switch_latch              =       +level3(lsgt_switch_latch)+  lv5:lsgt_switch_lock            =       +level5(lsgt_switch_lock)+  lv5:ralt_switch_lock            =       +level5(ralt_switch_lock)+  lv5:lwin_switch_lock            =       +level5(lwin_switch_lock)+  lv5:rwin_switch_lock            =       +level5(rwin_switch_lock)+  lv5:lsgt_switch_lock_cancel     =       +level5(lsgt_switch_lock_cancel)+  lv5:ralt_switch_lock_cancel     =       +level5(ralt_switch_lock_cancel)+  lv5:lwin_switch_lock_cancel     =       +level5(lwin_switch_lock_cancel)+  lv5:rwin_switch_lock_cancel     =       +level5(rwin_switch_lock_cancel)++++! option	=	compat+  grp_led:num		=	+lednum(group_lock)+  grp_led:caps		=	+ledcaps(group_lock)+  grp_led:scroll	=	+ledscroll(group_lock)+  japan:kana_lock	=	+japan(kana_lock)+  caps:shiftlock	=	+ledcaps(shift_lock)+  grab:break_actions    =       +xfree86(grab_break)+++! option	=	types+  caps:internal			=	+caps(internal)+  caps:internal_nocancel	=	+caps(internal_nocancel)+  caps:shift			=	+caps(shift)+  caps:shift_nocancel		=	+caps(shift_nocancel)+  numpad:pc			=	+numpad(pc)+  numpad:mac			=	+numpad(mac)+  numpad:microsoft		=	+numpad(microsoft)+  numpad:shift3       		=	+numpad(shift3)
+ data/rules/evdev-xkbcommon view
@@ -0,0 +1,1092 @@+// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part+//+//  Rules for resolving XKB components for use with XFree86+//  Copyright 1996 by Joseph Moss+//+//  2002 Modifier: Ivan Pascal      The XFree86 Project+//++// If you want non-latin layouts implicitly include the en_US layout+// uncomment lines below+//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \+//              in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \+//              ru scc sy syr tel th tj tam ua uz++// PC models+! $pcmodels = pc101 pc102 pc104 pc105++// Microsoft models (using MS geometry)+! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose++// Nokia devices and keyboards+! $nokiamodels = nokiasu8w nokiarx44 nokiarx51++// PC geometries - they have special geometry but symbols are mostly pc105+! $pcgeometries = latitude++// TypeMatrix geometries+! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106++// Layouts that provide further specializations for the OLPC+! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us ++! $macbooks = macbook78 macbook79+! $maclaptop = ibook powerbook macbook78 macbook79+! $applealu = applealu_ansi applealu_iso applealu_jis+! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79++! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us++! $azerty = be fr+! $qwertz = al cz de hr hu ro si sk ++! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \+              airkey \+              apple armada azonaRF2300 \+              benqx brother \+              btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \+              cherryblue cherrybluea cherryblueb \+              cherrycyboard cherrycmexpert \+              chicony chicony0108 chicony0420 chicony9885 \+              compalfl90 \+              compaqeak8 compaqik7 compaqik13 compaqik18 \+              creativedw7000 \+              cymotionlinux \+              dell dellm65 inspiron dellusbmm \+              emachines ennyah_dkb1008 evdev \+              genius geniuscomfy2 \+              gyration honeywell_euroboard \+              hp250x hp5xx hp500fa hpdv5 \+              hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \+              ibm_spacesaver ipaq inspiron intel \+              logiaccess logicda logicink \+              logiex110 logiclx300 \+              logiinkse logiinkseusb logiitc logiik \+              logitech_base itouch logiultrax \+              logitech_g15 \+              logidinovo logidinovoedge \+              microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \+              microsoftoffice microsoftmult \+              mx1998 mx2500 mx2750 \+              oretec \+              pc105 \+              presario propeller \+              qtronix \+              rapidaccess rapidaccess2 thinkpad60 \+              samsung4500 samsung4510 \+              silvercrest \+              sk1300 sk2500 sk6200 sk7100 \+              sven sven303 symplon \+              toshiba_s3000 trust trustda \+              unitekkb1925 yahoo++// all layouts with 3rd and 4th groups+! $threelevellayouts = al az \+              be br bt \+              ca ch cs cz \+              de dk \+              ee es \+              fi fo fr \+              gb gr \+              hu \+              ie ir is it \+              latam \+              lk lt \+              mn mt \+              nl no \+              pl pt \+              ro \+              se sk \+              tr \+              us \+              vn \+              za++! $evdevkbds = ibm_spacesaver++! $thinkpads = thinkpad thinkpad60 thinkpadz60++! $sun_t6_custom = ara be br ca ch cz de dk \+                   ee es fi fr gb gr it kr \+                   lt lv nl no pl pt ro ru \+                   se sk tr tw ua++! $htcdreamlayouts = us it de++! $dvoraklayouts = br ca de ee es fr gb no pl se us++! model		=	keycodes+  *		=	evdev-xkbcommon++! layout[1]	=	keycodes+  $azerty       =       +aliases-xkbcommon(azerty)+  $qwertz       =       +aliases-xkbcommon(qwertz)+  *             =       +aliases-xkbcommon(qwerty)++! layout	=	keycodes+  $azerty       =       +aliases-xkbcommon(azerty)+  $qwertz       =       +aliases-xkbcommon(qwertz)+  *             =       +aliases-xkbcommon(qwerty)++! model		layout	=	geometry+  thinkpad     us              =       thinkpad(us)++! model		=	geometry+  microsoftelite	=	microsoft(elite)+ $msmodels	=	microsoft(natural)+  dell101	=	dell(dell101)+  dellm65	=	dell(dellm65)+  latitude	=	dell(latitude)+  flexpro	=	keytronic(FlexPro)+  hp6000	=	hp(omnibook)+  hpmini110	=	hp(mini110)+  hpdv5		=	hp(dv5)+  omnikey101	=	northgate(omnikey101)+  sanwaskbkg3	=	sanwa(sanwaskbkg3)+ $pcmodels	=	pc(%m)+ $pcgeometries	=	pc(%m)+  everex	=	everex(STEPnote)+  thinkpad	=	thinkpad(intl)+  thinkpad60	=	thinkpad(60)+  thinkpadz60	=	thinkpad(60)+ $tmgeometries	=	typematrix(%m)+  winbook	=	winbook(XP5)+  pc98		=	nec(pc98)+ $applealu	=	macintosh(%m)+ $macbooks      =       macintosh(%m)+ $macs		=	macintosh(macintosh)+  hhk		=	hhk(basic)+  kinesis	=	kinesis(model100)+ $nokiamodels	=	nokia(%m)+  *		=       pc(pc104)++! model		layout		variant		=	symbols+  *		ben		basic		=	pc+in(ben)+  *		ben		probhat		=	pc+in(ben_probhat)+  *		dev		basic		=	pc+in(deva)+  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak)+  *		dvorak		basic		=	pc+us(dvorak)+  *		dvorak		pl_basic		=	pc+pl(dvorak)+  *		dvorak		pl		=	pc+pl(dvorak_quotes)+  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)+  *		dzdwi		basic		=	pc+bt(basic)+  *		fi		basic		=	pc+fi(classic)+  *		ge		azerty_tskapo		=	pc+fr(geo)+  *		guj		basic		=	pc+in(guj)+  *		gur		basic		=	pc+in(guru)+  *		ie		laptop		=	pc+ie(basic)+  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)+  *		in		urd		=	pc+in(urd-phonetic)+  *		iu		basic		=	pc+ca(ike)+  *		lo		basic		=	pc+la(basic)+  *		kan		basic		=	pc+in(kan)+  *		mal		basic		=	pc+in(mal)+  *		mal		mlplusnum		=	pc+in(mal)+  *		ogham		basic		=	pc+ie(ogam)+  *		ogham		laptop		=	pc+ie(ogam)+  *		ogham		is434		=	pc+ie(ogam_is434)+  *		ogham		is434laptop		=	pc+ie(ogam_is434)+  *		ori		basic		=	pc+in(ori)+  *		ro		de		=	pc+ro(winkeys)+  *		ro		us		=	pc+ro(std)+  *		ro		academic		=	pc+ro(std)+  *		ro		std_comma		=	pc+ro(std)+  *		ro		comma		=	pc+ro(basic)+  *		ru		os		=	pc+ru(os_legacy)+  *		pk		urd		=	pc+pk(urd-phonetic)+  *		sapmi		basic		=	pc+no(smi)+  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)+  *		sapmi		sefi		=	pc+fi(smi)+  *		sin		phonetic-static		=	pc+in(sin_phonetic)+  *		syr		basic		=	pc+sy(syc)+  *		syr		phonetic		=	pc+sy(syc_phonetic)+  *		tam		INSCRIPT		=	pc+in(tam)+  *		tam		UNI		=	pc+in(tam_unicode)+  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)+  *		tam		TAB		=	pc+in(tam_TAB)+  *		tam		TSCII		=	pc+in(tam_TSCII)+  *		tel		basic		=	pc+in(tel)+  *		yu		basic		=	pc+srp(latin)+  *		yu		unicode		=	pc+srp(latinunicode)+  *		yu		yz		=	pc+srp(latinyz)+  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)+  classmate	us		intl		=	pc+us(classmate-intl)+  classmate	us		alt-intl	=	pc+us(classmate-alt-intl)+  classmate	us		altgr-intl	=	pc+us(classmate-altgr-intl)+  nokiarx51	cz		qwerty		=	nokia_vndr/rx-51(cz_qwerty)++! model		layout				=	symbols+  *		ar			=	pc+ara+  *		ben			=	pc+in(ben)+  *		bs			=	pc+ba+  *		cs			=	pc+rs+  *		cz_qwerty			=	pc+cz(qwerty)+  *		dev			=	pc+in(deva)+  *		dvorak			=	pc+us(dvorak)+  *		dzdwi			=	pc+bt+  *		el			=	pc+gr+  *		en_US			=	pc+latin+  *		guj			=	pc+in(guj)+  *		gur			=	pc+in(guru)+  *		iu			=	pc+ca(ike)+  *		lo			=	pc+la+  *		kan			=	pc+in(kan)+  *		mi			=	pc+mao+  *		ml			=	pc+in(mal)+  *		ogham			=	pc+ie(ogam)+  *		ori			=	pc+ie(ori)+  *		sapmi			=	pc+no(smi)+  *		sr			=	pc+srp+  *		syr			=	pc+sy(syc)+  *		tel			=	pc+in(tel)+  *		tml			=	pc+in(tam)+  *		yu			=	pc+srp+  *		fr-latin9			=	pc+fr(latin9)+  *		us_intl			=	pc+us(alt-intl)+  *		ben(basic)			=	pc+in(ben)+  *		ben(probhat)			=	pc+in(ben_probhat)+  *		dev(basic)			=	pc+in(deva)+  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak)+  *		dvorak(basic)			=	pc+us(dvorak)+  *		dvorak(pl_basic)			=	pc+pl(dvorak)+  *		dvorak(pl)			=	pc+pl(dvorak_quotes)+  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)+  *		dzdwi(basic)			=	pc+bt(basic)+  *		fi(basic)			=	pc+fi(classic)+  *		ge(azerty_tskapo)			=	pc+fr(geo)+  *		guj(basic)			=	pc+in(guj)+  *		gur(basic)			=	pc+in(guru)+  *		ie(laptop)			=	pc+ie(basic)+  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)+  *		in(urd)			=	pc+in(urd-phonetic)+  *		iu(basic)			=	pc+ca(ike)+  *		lo(basic)			=	pc+la(basic)+  *		kan(basic)			=	pc+in(kan)+  *		mal(basic)			=	pc+in(mal)+  *		mal(mlplusnum)			=	pc+in(mal)+  *		ogham(basic)			=	pc+ie(ogam)+  *		ogham(laptop)			=	pc+ie(ogam)+  *		ogham(is434)			=	pc+ie(ogam_is434)+  *		ogham(is434laptop)			=	pc+ie(ogam_is434)+  *		ori(basic)			=	pc+in(ori)+  *		ro(de)			=	pc+ro(winkeys)+  *		ro(us)			=	pc+ro(std)+  *		ro(academic)			=	pc+ro(std)+  *		ro(std_comma)			=	pc+ro(std)+  *		ro(comma)			=	pc+ro(basic)+  *		ru(os)			=	pc+ru(os_legacy)+  *		pk(urd)			=	pc+pk(urd-phonetic)+  *		sapmi(basic)			=	pc+no(smi)+  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)+  *		sapmi(sefi)			=	pc+fi(smi)+  *		sin(phonetic-static)			=	pc+in(sin_phonetic)+  *		syr(basic)			=	pc+sy(syc)+  *		syr(phonetic)			=	pc+sy(syc_phonetic)+  *		tam(INSCRIPT)			=	pc+in(tam)+  *		tam(UNI)			=	pc+in(tam_unicode)+  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)+  *		tam(TAB)			=	pc+in(tam_TAB)+  *		tam(TSCII)			=	pc+in(tam_TSCII)+  *		tel(basic)			=	pc+in(tel)+  *		yu(basic)			=	pc+srp(latin)+  *		yu(unicode)			=	pc+srp(latinunicode)+  *		yu(yz)			=	pc+srp(latinyz)+  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)+  ataritt	$nonlatin		=	xfree68_vndr/ataritt(us)+%l%(v):2+  ataritt	*			=	xfree68_vndr/ataritt(us)+%l%(v)+  amiga		$nonlatin		=	xfree68_vndr/amiga(usa1)+%l%(v):2+  amiga		*			=	xfree68_vndr/amiga(usa1)+%l%(v)+  classmate	us			=	pc+%l(classmate)+  empty         *                       =       empty(basic)+  *             empty                   =       empty(basic)+  sun4		$nonlatin		=	latin+sun_vndr/us(type4)+%l%(v):2+  sun4		*			=	latin+sun_vndr/us(type4)+%l%(v)+  sun5		$nonlatin		=	latin+sun_vndr/us(type5)+%l%(v):2+  sun5		*			=	latin+sun_vndr/us(type5)+%l%(v)+  sun6		us			=	pc+sun_vndr/us(type6)+  sun6		en_US			=	pc+sun_vndr/us(type6)+iso9995-3(basic)+  sun6		$sun_t6_custom		=	pc+sun_vndr/us(type6)+sun_vndr/%l%(v)+  sun6		*			=	pc+sun_vndr/us(type6)+%l%(v)+  sun6euro	us			=	pc+sun_vndr/us(type6)+  sun6euro	en_US			=	pc+sun_vndr/us(type6)+iso9995-3(basic)+  sun6euro	$sun_t6_custom		=	pc+sun_vndr/us(type6)+sun_vndr/%l%(v)+  sun6euro	*			=	pc+sun_vndr/us(type6)+%l%(v)+  pc98		nec_vndr/jp		=	nec_vndr/jp(pc98)+  macintosh_old	us			=	macintosh_vndr/us(oldmac)+  macintosh_old	en_US			=	macintosh_vndr/us(oldmac)+  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)+  macintosh_old	$nonlatin		=	macintosh_vndr/us(oldmac)+%l%(v):2+  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v)+  applealu_jis	jp			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2+  applealu_jis	*			=	macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2+ $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v)+ $applealu	*			=	macintosh_vndr/apple(alukbd)+%l%(v)+ $macs		en_US			=	pc+macintosh_vndr/us(extended)+ $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v)+  nokiarx44	*			=	nokia_vndr/rx-44(%l)+  nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)+  nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v)+  nokiasu8w	*			=	nokia_vndr/su-8w(%l)+  olpc		$olpclayouts		=	olpc+%l%(m)+  olpc		*			=	olpc+%l%(v)+ $thinkpads   	br			=	pc+br(thinkpad)+  htcdream	$htcdreamlayouts	=	%l(htcdream)+  *	   	$nonlatin		=	pc+us+%l%(v):2+  *		*			=	pc+%l%(v)++! model		layout[1]			=	symbols+  *		ar			=	pc+ara%(v[1])+  *		ben			=	pc+in(ben)+  *		bs			=	pc+ba%(v[1])+  *		cs			=	pc+rs%(v[1])+  *		cz_qwerty			=	pc+cz(qwerty)+  *		dev			=	pc+in(deva)+  *		dvorak			=	pc+us(dvorak)+  *		dzdwi			=	pc+bt%(v[1])+  *		el			=	pc+gr%(v[1])+  *		en_US			=	pc+latin%(v[1])+  *		guj			=	pc+in(guj)+  *		gur			=	pc+in(guru)+  *		iu			=	pc+ca(ike)+  *		lo			=	pc+la%(v[1])+  *		kan			=	pc+in(kan)+  *		mi			=	pc+mao%(v[1])+  *		ml			=	pc+in(mal)+  *		ogham			=	pc+ie(ogam)+  *		ori			=	pc+ie(ori)+  *		sapmi			=	pc+no(smi)+  *		sr			=	pc+srp%(v[1])+  *		syr			=	pc+sy(syc)+  *		tel			=	pc+in(tel)+  *		tml			=	pc+in(tam)+  *		yu			=	pc+srp%(v[1])+  *		fr-latin9			=	pc+fr(latin9)+  *		us_intl			=	pc+us(alt-intl)+  *		ben(basic)			=	pc+in(ben)+  *		ben(probhat)			=	pc+in(ben_probhat)+  *		dev(basic)			=	pc+in(deva)+  *		dvorak($dvoraklayouts)			=	pc+%v(dvorak)+  *		dvorak(basic)			=	pc+us(dvorak)+  *		dvorak(pl_basic)			=	pc+pl(dvorak)+  *		dvorak(pl)			=	pc+pl(dvorak_quotes)+  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)+  *		dzdwi(basic)			=	pc+bt(basic)+  *		fi(basic)			=	pc+fi(classic)+  *		ge(azerty_tskapo)			=	pc+fr(geo)+  *		guj(basic)			=	pc+in(guj)+  *		gur(basic)			=	pc+in(guru)+  *		ie(laptop)			=	pc+ie(basic)+  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)+  *		in(urd)			=	pc+in(urd-phonetic)+  *		iu(basic)			=	pc+ca(ike)+  *		lo(basic)			=	pc+la(basic)+  *		kan(basic)			=	pc+in(kan)+  *		mal(basic)			=	pc+in(mal)+  *		mal(mlplusnum)			=	pc+in(mal)+  *		ogham(basic)			=	pc+ie(ogam)+  *		ogham(laptop)			=	pc+ie(ogam)+  *		ogham(is434)			=	pc+ie(ogam_is434)+  *		ogham(is434laptop)			=	pc+ie(ogam_is434)+  *		ori(basic)			=	pc+in(ori)+  *		ro(de)			=	pc+ro(winkeys)+  *		ro(us)			=	pc+ro(std)+  *		ro(academic)			=	pc+ro(std)+  *		ro(std_comma)			=	pc+ro(std)+  *		ro(comma)			=	pc+ro(basic)+  *		ru(os)			=	pc+ru(os_legacy)+  *		pk(urd)			=	pc+pk(urd-phonetic)+  *		sapmi(basic)			=	pc+no(smi)+  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)+  *		sapmi(sefi)			=	pc+fi(smi)+  *		sin(phonetic-static)			=	pc+in(sin_phonetic)+  *		syr(basic)			=	pc+sy(syc)+  *		syr(phonetic)			=	pc+sy(syc_phonetic)+  *		tam(INSCRIPT)			=	pc+in(tam)+  *		tam(UNI)			=	pc+in(tam_unicode)+  *		tam(NUMERAL-KEYBOARD)			=	pc+in(tam_keyboard_with_numerals)+  *		tam(TAB)			=	pc+in(tam_TAB)+  *		tam(TSCII)			=	pc+in(tam_TSCII)+  *		tel(basic)			=	pc+in(tel)+  *		yu(basic)			=	pc+srp(latin)+  *		yu(unicode)			=	pc+srp(latinunicode)+  *		yu(yz)			=	pc+srp(latinyz)+  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)+  ataritt	*			=	xfree68_vndr/ataritt(us)+%l[1]%(v[1])+  amiga		*			=	xfree68_vndr/amiga(usa1)+%l[1]%(v[1])+  sun4		*			=	latin+sun_vndr/us(type4)+%l[1]%(v[1])+  sun5		*			=	latin+sun_vndr/us(type5)+%l[1]%(v[1])+  macintosh_old	us			=	macintosh_vndr/us(oldmac)+  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])+  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l[1]%(v[1])+  applealu_jis	us			=	macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+ $applealu	$macvendorlayouts	=	macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1])+ $applealu	*			=	macintosh_vndr/apple(alukbd)+%l[1]%(v[1])+ $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l[1]%(v[1])+  nokiarx51	cz(qwerty)		=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)+  nokiarx51	*			=	nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1])+ $thinkpads	br			=	pc+%l[1](thinkpad)+  *		*			=	pc+%l[1]%(v[1])++! model		layout[1]	variant[1]	=	symbols+  *		ben		basic		=	pc+in(ben)+  *		ben		probhat		=	pc+in(ben_probhat)+  *		dev		basic		=	pc+in(deva)+  *		dvorak		$dvoraklayouts		=	pc+%v(dvorak)+  *		dvorak		basic		=	pc+us(dvorak)+  *		dvorak		pl_basic		=	pc+pl(dvorak)+  *		dvorak		pl		=	pc+pl(dvorak_quotes)+  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)+  *		dzdwi		basic		=	pc+bt(basic)+  *		fi		basic		=	pc+fi(classic)+  *		ge		azerty_tskapo		=	pc+fr(geo)+  *		guj		basic		=	pc+in(guj)+  *		gur		basic		=	pc+in(guru)+  *		ie		laptop		=	pc+ie(basic)+  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)+  *		in		urd		=	pc+in(urd-phonetic)+  *		iu		basic		=	pc+ca(ike)+  *		lo		basic		=	pc+la(basic)+  *		kan		basic		=	pc+in(kan)+  *		mal		basic		=	pc+in(mal)+  *		mal		mlplusnum		=	pc+in(mal)+  *		ogham		basic		=	pc+ie(ogam)+  *		ogham		laptop		=	pc+ie(ogam)+  *		ogham		is434		=	pc+ie(ogam_is434)+  *		ogham		is434laptop		=	pc+ie(ogam_is434)+  *		ori		basic		=	pc+in(ori)+  *		ro		de		=	pc+ro(winkeys)+  *		ro		us		=	pc+ro(std)+  *		ro		academic		=	pc+ro(std)+  *		ro		std_comma		=	pc+ro(std)+  *		ro		comma		=	pc+ro(basic)+  *		ru		os		=	pc+ru(os_legacy)+  *		pk		urd		=	pc+pk(urd-phonetic)+  *		sapmi		basic		=	pc+no(smi)+  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)+  *		sapmi		sefi		=	pc+fi(smi)+  *		sin		phonetic-static		=	pc+in(sin_phonetic)+  *		syr		basic		=	pc+sy(syc)+  *		syr		phonetic		=	pc+sy(syc_phonetic)+  *		tam		INSCRIPT		=	pc+in(tam)+  *		tam		UNI		=	pc+in(tam_unicode)+  *		tam		NUMERAL-KEYBOARD		=	pc+in(tam_keyboard_with_numerals)+  *		tam		TAB		=	pc+in(tam_TAB)+  *		tam		TSCII		=	pc+in(tam_TSCII)+  *		tel		basic		=	pc+in(tel)+  *		yu		basic		=	pc+srp(latin)+  *		yu		unicode		=	pc+srp(latinunicode)+  *		yu		yz		=	pc+srp(latinyz)+  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)++! model		layout[2]	=	symbols+  *		ar		=	+ara%(v[2]):2+  *		ben		=	+in(ben):2+  *		bs		=	+ba%(v[2]):2+  *		cs		=	+rs%(v[2]):2+  *		cz_qwerty		=	+cz(qwerty):2+  *		dev		=	+in(deva):2+  *		dvorak		=	+us(dvorak):2+  *		dzdwi		=	+bt%(v[2]):2+  *		el		=	+gr%(v[2]):2+  *		en_US		=	+latin%(v[2]):2+  *		guj		=	+in(guj):2+  *		gur		=	+in(guru):2+  *		iu		=	+ca(ike):2+  *		lo		=	+la%(v[2]):2+  *		kan		=	+in(kan):2+  *		mi		=	+mao%(v[2]):2+  *		ml		=	+in(mal):2+  *		ogham		=	+ie(ogam):2+  *		ori		=	+ie(ori):2+  *		sapmi		=	+no(smi):2+  *		sr		=	+srp%(v[2]):2+  *		syr		=	+sy(syc):2+  *		tel		=	+in(tel):2+  *		tml		=	+in(tam):2+  *		yu		=	+srp%(v[2]):2+  *		fr-latin9		=	+fr(latin9):2+  *		us_intl		=	+us(alt-intl):2+  *		ben(basic)	=	+in(ben):2+  *		ben(probhat)	=	+in(ben_probhat):2+  *		dev(basic)	=	+in(deva):2+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):2+  *		dvorak(basic)	=	+us(dvorak):2+  *		dvorak(pl_basic)	=	+pl(dvorak):2+  *		dvorak(pl)	=	+pl(dvorak_quotes):2+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):2+  *		dzdwi(basic)	=	+bt(basic):2+  *		fi(basic)	=	+fi(classic):2+  *		ge(azerty_tskapo)	=	+fr(geo):2+  *		guj(basic)	=	+in(guj):2+  *		gur(basic)	=	+in(guru):2+  *		ie(laptop)	=	+ie(basic):2+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):2+  *		in(urd)	=	+in(urd-phonetic):2+  *		iu(basic)	=	+ca(ike):2+  *		lo(basic)	=	+la(basic):2+  *		kan(basic)	=	+in(kan):2+  *		mal(basic)	=	+in(mal):2+  *		mal(mlplusnum)	=	+in(mal):2+  *		ogham(basic)	=	+ie(ogam):2+  *		ogham(laptop)	=	+ie(ogam):2+  *		ogham(is434)	=	+ie(ogam_is434):2+  *		ogham(is434laptop)	=	+ie(ogam_is434):2+  *		ori(basic)	=	+in(ori):2+  *		ro(de)	=	+ro(winkeys):2+  *		ro(us)	=	+ro(std):2+  *		ro(academic)	=	+ro(std):2+  *		ro(std_comma)	=	+ro(std):2+  *		ro(comma)	=	+ro(basic):2+  *		ru(os)	=	+ru(os_legacy):2+  *		pk(urd)	=	+pk(urd-phonetic):2+  *		sapmi(basic)	=	+no(smi):2+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):2+  *		sapmi(sefi)	=	+fi(smi):2+  *		sin(phonetic-static)	=	+in(sin_phonetic):2+  *		syr(basic)	=	+sy(syc):2+  *		syr(phonetic)	=	+sy(syc_phonetic):2+  *		tam(INSCRIPT)	=	+in(tam):2+  *		tam(UNI)	=	+in(tam_unicode):2+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):2+  *		tam(TAB)	=	+in(tam_TAB):2+  *		tam(TSCII)	=	+in(tam_TSCII):2+  *		tel(basic)	=	+in(tel):2+  *		yu(basic)	=	+srp(latin):2+  *		yu(unicode)	=	+srp(latinunicode):2+  *		yu(yz)	=	+srp(latinyz):2+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):2+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):2+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[2]%_v[2]):2+  *		*		=	+%l[2]%(v[2]):2++! model		layout[3]	=	symbols+  *		ar		=	+ara%(v[3]):3+  *		ben		=	+in(ben):3+  *		bs		=	+ba%(v[3]):3+  *		cs		=	+rs%(v[3]):3+  *		cz_qwerty		=	+cz(qwerty):3+  *		dev		=	+in(deva):3+  *		dvorak		=	+us(dvorak):3+  *		dzdwi		=	+bt%(v[3]):3+  *		el		=	+gr%(v[3]):3+  *		en_US		=	+latin%(v[3]):3+  *		guj		=	+in(guj):3+  *		gur		=	+in(guru):3+  *		iu		=	+ca(ike):3+  *		lo		=	+la%(v[3]):3+  *		kan		=	+in(kan):3+  *		mi		=	+mao%(v[3]):3+  *		ml		=	+in(mal):3+  *		ogham		=	+ie(ogam):3+  *		ori		=	+ie(ori):3+  *		sapmi		=	+no(smi):3+  *		sr		=	+srp%(v[3]):3+  *		syr		=	+sy(syc):3+  *		tel		=	+in(tel):3+  *		tml		=	+in(tam):3+  *		yu		=	+srp%(v[3]):3+  *		fr-latin9		=	+fr(latin9):3+  *		us_intl		=	+us(alt-intl):3+  *		ben(basic)	=	+in(ben):3+  *		ben(probhat)	=	+in(ben_probhat):3+  *		dev(basic)	=	+in(deva):3+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):3+  *		dvorak(basic)	=	+us(dvorak):3+  *		dvorak(pl_basic)	=	+pl(dvorak):3+  *		dvorak(pl)	=	+pl(dvorak_quotes):3+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):3+  *		dzdwi(basic)	=	+bt(basic):3+  *		fi(basic)	=	+fi(classic):3+  *		ge(azerty_tskapo)	=	+fr(geo):3+  *		guj(basic)	=	+in(guj):3+  *		gur(basic)	=	+in(guru):3+  *		ie(laptop)	=	+ie(basic):3+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):3+  *		in(urd)	=	+in(urd-phonetic):3+  *		iu(basic)	=	+ca(ike):3+  *		lo(basic)	=	+la(basic):3+  *		kan(basic)	=	+in(kan):3+  *		mal(basic)	=	+in(mal):3+  *		mal(mlplusnum)	=	+in(mal):3+  *		ogham(basic)	=	+ie(ogam):3+  *		ogham(laptop)	=	+ie(ogam):3+  *		ogham(is434)	=	+ie(ogam_is434):3+  *		ogham(is434laptop)	=	+ie(ogam_is434):3+  *		ori(basic)	=	+in(ori):3+  *		ro(de)	=	+ro(winkeys):3+  *		ro(us)	=	+ro(std):3+  *		ro(academic)	=	+ro(std):3+  *		ro(std_comma)	=	+ro(std):3+  *		ro(comma)	=	+ro(basic):3+  *		ru(os)	=	+ru(os_legacy):3+  *		pk(urd)	=	+pk(urd-phonetic):3+  *		sapmi(basic)	=	+no(smi):3+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):3+  *		sapmi(sefi)	=	+fi(smi):3+  *		sin(phonetic-static)	=	+in(sin_phonetic):3+  *		syr(basic)	=	+sy(syc):3+  *		syr(phonetic)	=	+sy(syc_phonetic):3+  *		tam(INSCRIPT)	=	+in(tam):3+  *		tam(UNI)	=	+in(tam_unicode):3+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):3+  *		tam(TAB)	=	+in(tam_TAB):3+  *		tam(TSCII)	=	+in(tam_TSCII):3+  *		tel(basic)	=	+in(tel):3+  *		yu(basic)	=	+srp(latin):3+  *		yu(unicode)	=	+srp(latinunicode):3+  *		yu(yz)	=	+srp(latinyz):3+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):3+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):3+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[3]%_v[3]):3+  *		*		=	+%l[3]%(v[3]):3++! model		layout[4]	=	symbols+  *		ar		=	+ara%(v[4]):4+  *		ben		=	+in(ben):4+  *		bs		=	+ba%(v[4]):4+  *		cs		=	+rs%(v[4]):4+  *		cz_qwerty		=	+cz(qwerty):4+  *		dev		=	+in(deva):4+  *		dvorak		=	+us(dvorak):4+  *		dzdwi		=	+bt%(v[4]):4+  *		el		=	+gr%(v[4]):4+  *		en_US		=	+latin%(v[4]):4+  *		guj		=	+in(guj):4+  *		gur		=	+in(guru):4+  *		iu		=	+ca(ike):4+  *		lo		=	+la%(v[4]):4+  *		kan		=	+in(kan):4+  *		mi		=	+mao%(v[4]):4+  *		ml		=	+in(mal):4+  *		ogham		=	+ie(ogam):4+  *		ori		=	+ie(ori):4+  *		sapmi		=	+no(smi):4+  *		sr		=	+srp%(v[4]):4+  *		syr		=	+sy(syc):4+  *		tel		=	+in(tel):4+  *		tml		=	+in(tam):4+  *		yu		=	+srp%(v[4]):4+  *		fr-latin9		=	+fr(latin9):4+  *		us_intl		=	+us(alt-intl):4+  *		ben(basic)	=	+in(ben):4+  *		ben(probhat)	=	+in(ben_probhat):4+  *		dev(basic)	=	+in(deva):4+  *		dvorak($dvoraklayouts)	=	+%v(dvorak):4+  *		dvorak(basic)	=	+us(dvorak):4+  *		dvorak(pl_basic)	=	+pl(dvorak):4+  *		dvorak(pl)	=	+pl(dvorak_quotes):4+  *		dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):4+  *		dzdwi(basic)	=	+bt(basic):4+  *		fi(basic)	=	+fi(classic):4+  *		ge(azerty_tskapo)	=	+fr(geo):4+  *		guj(basic)	=	+in(guj):4+  *		gur(basic)	=	+in(guru):4+  *		ie(laptop)	=	+ie(basic):4+  *		ie(CloGaelachLaptop)	=	+ie(CloGaelach):4+  *		in(urd)	=	+in(urd-phonetic):4+  *		iu(basic)	=	+ca(ike):4+  *		lo(basic)	=	+la(basic):4+  *		kan(basic)	=	+in(kan):4+  *		mal(basic)	=	+in(mal):4+  *		mal(mlplusnum)	=	+in(mal):4+  *		ogham(basic)	=	+ie(ogam):4+  *		ogham(laptop)	=	+ie(ogam):4+  *		ogham(is434)	=	+ie(ogam_is434):4+  *		ogham(is434laptop)	=	+ie(ogam_is434):4+  *		ori(basic)	=	+in(ori):4+  *		ro(de)	=	+ro(winkeys):4+  *		ro(us)	=	+ro(std):4+  *		ro(academic)	=	+ro(std):4+  *		ro(std_comma)	=	+ro(std):4+  *		ro(comma)	=	+ro(basic):4+  *		ru(os)	=	+ru(os_legacy):4+  *		pk(urd)	=	+pk(urd-phonetic):4+  *		sapmi(basic)	=	+no(smi):4+  *		sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):4+  *		sapmi(sefi)	=	+fi(smi):4+  *		sin(phonetic-static)	=	+in(sin_phonetic):4+  *		syr(basic)	=	+sy(syc):4+  *		syr(phonetic)	=	+sy(syc_phonetic):4+  *		tam(INSCRIPT)	=	+in(tam):4+  *		tam(UNI)	=	+in(tam_unicode):4+  *		tam(NUMERAL-KEYBOARD)	=	+in(tam_keyboard_with_numerals):4+  *		tam(TAB)	=	+in(tam_TAB):4+  *		tam(TSCII)	=	+in(tam_TSCII):4+  *		tel(basic)	=	+in(tel):4+  *		yu(basic)	=	+srp(latin):4+  *		yu(unicode)	=	+srp(latinunicode):4+  *		yu(yz)	=	+srp(latinyz):4+  *		yu(unicodeyz)	=	+srp(latinunicodeyz):4+  nokiarx51	cz(qwerty)	=	+nokia_vndr/rx-51(cz_qwerty):4+  nokiarx51	*		=	+nokia_vndr/rx-51(%l[4]%_v[4]):4+  *		*		=	+%l[4]%(v[4]):4++! model		layout[2]	variant[2]	=	symbols+  *		ben		basic	=	+in(ben):2+  *		ben		probhat	=	+in(ben_probhat):2+  *		dev		basic	=	+in(deva):2+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):2+  *		dvorak		basic	=	+us(dvorak):2+  *		dvorak		pl_basic	=	+pl(dvorak):2+  *		dvorak		pl	=	+pl(dvorak_quotes):2+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):2+  *		dzdwi		basic	=	+bt(basic):2+  *		fi		basic	=	+fi(classic):2+  *		ge		azerty_tskapo	=	+fr(geo):2+  *		guj		basic	=	+in(guj):2+  *		gur		basic	=	+in(guru):2+  *		ie		laptop	=	+ie(basic):2+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):2+  *		in		urd	=	+in(urd-phonetic):2+  *		iu		basic	=	+ca(ike):2+  *		lo		basic	=	+la(basic):2+  *		kan		basic	=	+in(kan):2+  *		mal		basic	=	+in(mal):2+  *		mal		mlplusnum	=	+in(mal):2+  *		ogham		basic	=	+ie(ogam):2+  *		ogham		laptop	=	+ie(ogam):2+  *		ogham		is434	=	+ie(ogam_is434):2+  *		ogham		is434laptop	=	+ie(ogam_is434):2+  *		ori		basic	=	+in(ori):2+  *		ro		de	=	+ro(winkeys):2+  *		ro		us	=	+ro(std):2+  *		ro		academic	=	+ro(std):2+  *		ro		std_comma	=	+ro(std):2+  *		ro		comma	=	+ro(basic):2+  *		ru		os	=	+ru(os_legacy):2+  *		pk		urd	=	+pk(urd-phonetic):2+  *		sapmi		basic	=	+no(smi):2+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):2+  *		sapmi		sefi	=	+fi(smi):2+  *		sin		phonetic-static	=	+in(sin_phonetic):2+  *		syr		basic	=	+sy(syc):2+  *		syr		phonetic	=	+sy(syc_phonetic):2+  *		tam		INSCRIPT	=	+in(tam):2+  *		tam		UNI	=	+in(tam_unicode):2+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):2+  *		tam		TAB	=	+in(tam_TAB):2+  *		tam		TSCII	=	+in(tam_TSCII):2+  *		tel		basic	=	+in(tel):2+  *		yu		basic	=	+srp(latin):2+  *		yu		unicode	=	+srp(latinunicode):2+  *		yu		yz	=	+srp(latinyz):2+  *		yu		unicodeyz	=	+srp(latinunicodeyz):2++! model		layout[3]	variant[3]	=	symbols+  *		ben		basic	=	+in(ben):3+  *		ben		probhat	=	+in(ben_probhat):3+  *		dev		basic	=	+in(deva):3+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):3+  *		dvorak		basic	=	+us(dvorak):3+  *		dvorak		pl_basic	=	+pl(dvorak):3+  *		dvorak		pl	=	+pl(dvorak_quotes):3+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):3+  *		dzdwi		basic	=	+bt(basic):3+  *		fi		basic	=	+fi(classic):3+  *		ge		azerty_tskapo	=	+fr(geo):3+  *		guj		basic	=	+in(guj):3+  *		gur		basic	=	+in(guru):3+  *		ie		laptop	=	+ie(basic):3+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):3+  *		in		urd	=	+in(urd-phonetic):3+  *		iu		basic	=	+ca(ike):3+  *		lo		basic	=	+la(basic):3+  *		kan		basic	=	+in(kan):3+  *		mal		basic	=	+in(mal):3+  *		mal		mlplusnum	=	+in(mal):3+  *		ogham		basic	=	+ie(ogam):3+  *		ogham		laptop	=	+ie(ogam):3+  *		ogham		is434	=	+ie(ogam_is434):3+  *		ogham		is434laptop	=	+ie(ogam_is434):3+  *		ori		basic	=	+in(ori):3+  *		ro		de	=	+ro(winkeys):3+  *		ro		us	=	+ro(std):3+  *		ro		academic	=	+ro(std):3+  *		ro		std_comma	=	+ro(std):3+  *		ro		comma	=	+ro(basic):3+  *		ru		os	=	+ru(os_legacy):3+  *		pk		urd	=	+pk(urd-phonetic):3+  *		sapmi		basic	=	+no(smi):3+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):3+  *		sapmi		sefi	=	+fi(smi):3+  *		sin		phonetic-static	=	+in(sin_phonetic):3+  *		syr		basic	=	+sy(syc):3+  *		syr		phonetic	=	+sy(syc_phonetic):3+  *		tam		INSCRIPT	=	+in(tam):3+  *		tam		UNI	=	+in(tam_unicode):3+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):3+  *		tam		TAB	=	+in(tam_TAB):3+  *		tam		TSCII	=	+in(tam_TSCII):3+  *		tel		basic	=	+in(tel):3+  *		yu		basic	=	+srp(latin):3+  *		yu		unicode	=	+srp(latinunicode):3+  *		yu		yz	=	+srp(latinyz):3+  *		yu		unicodeyz	=	+srp(latinunicodeyz):3++! model		layout[4]	variant[4]	=	symbols+  *		ben		basic	=	+in(ben):4+  *		ben		probhat	=	+in(ben_probhat):4+  *		dev		basic	=	+in(deva):4+  *		dvorak		$dvoraklayouts	=	+%v(dvorak):4+  *		dvorak		basic	=	+us(dvorak):4+  *		dvorak		pl_basic	=	+pl(dvorak):4+  *		dvorak		pl	=	+pl(dvorak_quotes):4+  *		dvorak		pl_altquotes	=	+pl(dvorak_altquotes):4+  *		dzdwi		basic	=	+bt(basic):4+  *		fi		basic	=	+fi(classic):4+  *		ge		azerty_tskapo	=	+fr(geo):4+  *		guj		basic	=	+in(guj):4+  *		gur		basic	=	+in(guru):4+  *		ie		laptop	=	+ie(basic):4+  *		ie		CloGaelachLaptop	=	+ie(CloGaelach):4+  *		in		urd	=	+in(urd-phonetic):4+  *		iu		basic	=	+ca(ike):4+  *		lo		basic	=	+la(basic):4+  *		kan		basic	=	+in(kan):4+  *		mal		basic	=	+in(mal):4+  *		mal		mlplusnum	=	+in(mal):4+  *		ogham		basic	=	+ie(ogam):4+  *		ogham		laptop	=	+ie(ogam):4+  *		ogham		is434	=	+ie(ogam_is434):4+  *		ogham		is434laptop	=	+ie(ogam_is434):4+  *		ori		basic	=	+in(ori):4+  *		ro		de	=	+ro(winkeys):4+  *		ro		us	=	+ro(std):4+  *		ro		academic	=	+ro(std):4+  *		ro		std_comma	=	+ro(std):4+  *		ro		comma	=	+ro(basic):4+  *		ru		os	=	+ru(os_legacy):4+  *		pk		urd	=	+pk(urd-phonetic):4+  *		sapmi		basic	=	+no(smi):4+  *		sapmi		nodeadkeys	=	+no(smi_nodeadkeys):4+  *		sapmi		sefi	=	+fi(smi):4+  *		sin		phonetic-static	=	+in(sin_phonetic):4+  *		syr		basic	=	+sy(syc):4+  *		syr		phonetic	=	+sy(syc_phonetic):4+  *		tam		INSCRIPT	=	+in(tam):4+  *		tam		UNI	=	+in(tam_unicode):4+  *		tam		NUMERAL-KEYBOARD	=	+in(tam_keyboard_with_numerals):4+  *		tam		TAB	=	+in(tam_TAB):4+  *		tam		TSCII	=	+in(tam_TSCII):4+  *		tel		basic	=	+in(tel):4+  *		yu		basic	=	+srp(latin):4+  *		yu		unicode	=	+srp(latinunicode):4+  *		yu		yz	=	+srp(latinyz):4+  *		yu		unicodeyz	=	+srp(latinunicodeyz):4++! model		=	symbols+  $evdevkbds    =   +inet(evdev)+inet(%m)+  applealu_jis  =   +inet(evdev)+macintosh_vndr/jp(alujiskeys)+  *             =   +inet(evdev)++! layout	variant		=	compat+  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)++! layout[1]	variant[1]	=	compat+  de		neo			=	+caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)++! layout[2]	variant[2]	=	compat+  de		neo			=	+caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2++! layout[3]	variant[3]	=	compat+  de		neo			=	+caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3++! layout[4]	variant[4]	=	compat+  de		neo			=	+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4++! model		layout		=	compat+  pc98		nec_vndr/jp	=	pc98(basic)+  *		jp		=	complete+japan+  olpc         *               =       olpc+  *		*		=	complete++! model		layout[1]	=	compat+  *		*		=	complete++! model		=	types+  $macs		=	complete+numpad(mac)+  $applealu	=	complete+numpad(mac)+  $nokiamodels	=	complete+nokia+  *		=	complete++! layout	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)+  *			misc:typo 	= +typo(base)++! layout[1]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1+  *			misc:typo 	= +typo(base):1++! layout[2]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2+  *			misc:typo 	= +typo(base):2++! layout[3]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3+  *			misc:typo 	= +typo(base):3++! layout[4]	option	=	symbols+  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4+  *			misc:typo 	= +typo(base):4++! option	=	symbols+  grp:shift_toggle	=	+group(shifts_toggle)+  altwin:menu		=	+altwin(menu)+  altwin:meta_alt	=	+altwin(meta_alt)+  altwin:ctrl_win	=	+altwin(ctrl_win)+  altwin:ctrl_alt_win	=	+altwin(ctrl_alt_win)+  altwin:meta_win	=	+altwin(meta_win)+  altwin:left_meta_win	=	+altwin(left_meta_win)+  altwin:hyper_win	=	+altwin(hyper_win)+  altwin:alt_super_win	=	+altwin(alt_super_win)+  altwin:swap_lalt_lwin	=	+altwin(swap_lalt_lwin)+  grp:switch		=	+group(switch)+  grp:lswitch		=	+group(lswitch)+  grp:win_switch	=	+group(win_switch)+  grp:lwin_switch	=	+group(lwin_switch)+  grp:rwin_switch	=	+group(rwin_switch)+  grp:toggle		=	+group(toggle)+  grp:shifts_toggle	=	+group(shifts_toggle)+  grp:ctrls_toggle	=	+group(ctrls_toggle)+  grp:alts_toggle	=	+group(alts_toggle)+  grp:caps_toggle	=	+capslock(grouplock)+  grp:caps_switch       =       +capslock(groupshift)+  grp:shift_caps_toggle	=	+group(shift_caps_toggle)+  grp:shift_caps_switch	=	+group(shift_caps_switch)+  grp:win_menu_switch	=	+group(win_menu_switch)+  grp:alt_caps_toggle   =       +group(alt_caps_toggle)+  grp:alt_space_toggle	=	+group(alt_space_toggle)+  grp:menu_toggle	=	+group(menu_toggle)+  grp:lwin_toggle	=	+group(lwin_toggle)+  grp:rwin_toggle	=	+group(rwin_toggle)+  grp:lshift_toggle	=	+group(lshift_toggle)+  grp:rshift_toggle	=	+group(rshift_toggle)+  grp:rctrl_switch	=	+group(rctrl_switch)+  grp:lctrl_toggle	=	+group(lctrl_toggle)+  grp:rctrl_toggle	=	+group(rctrl_toggle)+  grp:lalt_toggle	=	+group(lalt_toggle)+  grp:sclk_toggle	=	+group(sclk_toggle)+  grp:lctrl_rctrl_switch	=	+group(lctrl_rctrl_switch)+  grp:lctrl_lwin_rctrl_menu	=	+group(lctrl_lwin_rctrl_menu)+  grp:lctrl_lalt_toggle	=	+group(lctrl_lalt_toggle)+  grp:rctrl_ralt_toggle	=	+group(rctrl_ralt_toggle)+  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle)+  grp:ctrl_alt_toggle_bidir	=	+group(ctrl_alt_toggle_bidir)+  grp:lctrl_lshift_toggle	=	+group(lctrl_lshift_toggle)+  grp:rctrl_rshift_toggle	=	+group(rctrl_rshift_toggle)+  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle)+  grp:ctrl_shift_toggle_bidir	=	+group(ctrl_shift_toggle_bidir)+  grp:lalt_lshift_toggle	=	+group(lalt_lshift_toggle)+  grp:ralt_rshift_toggle	=	+group(ralt_rshift_toggle)+  grp:alt_shift_toggle	=	+group(alt_shift_toggle)+  grp:alt_shift_toggle_bidir	=	+group(alt_shift_toggle_bidir)+  lv3:switch		=	+level3(switch)+  lv3:ralt_switch	=	+level3(ralt_switch)+  lv3:ralt_switch_multikey	=	+level3(ralt_switch_multikey)+  lv3:ralt_alt		=	+level3(ralt_alt)+  lv3:lalt_switch	=	+level3(lalt_switch)+  lv3:alt_switch	=	+level3(alt_switch)+  lv3:menu_switch	=	+level3(menu_switch)+  lv3:win_switch	=	+level3(win_switch)+  lv3:lwin_switch	=	+level3(lwin_switch)+  lv3:rwin_switch	=	+level3(rwin_switch)+  lv3:enter_switch	=	+level3(enter_switch)+  caps:capslock		=	+capslock(capslock)+  caps:numlock		=	+capslock(numlock)+  caps:shiftlock	=	+capslock(shiftlock)+  caps:swapescape	=	+capslock(swapescape)+  caps:escape		=	+capslock(escape)+  caps:backspace	=	+capslock(backspace)+  caps:super		=	+capslock(super)+  caps:hyper		=	+capslock(hyper)+  caps:none		=	+capslock(none)+  caps:ctrl_modifier	=	+capslock(ctrl_modifier)+  ctrl:nocaps		=	+ctrl(nocaps)+  ctrl:lctrl_meta	=	+ctrl(lctrl_meta)+  ctrl:swapcaps		=	+ctrl(swapcaps)+  ctrl:ac_ctrl		=	+ctrl(ac_ctrl)+  ctrl:aa_ctrl		=	+ctrl(aa_ctrl)+  ctrl:rctrl_ralt	=	+ctrl(rctrl_ralt)+  ctrl:menu_rctrl	=	+ctrl(menu_rctrl)+  ctrl:ralt_rctrl	=	+ctrl(ralt_rctrl)+  compose:ralt		=	+compose(ralt)+  compose:lwin		=	+compose(lwin)+  compose:rwin		=	+compose(rwin)+  compose:menu		=	+compose(menu)+  compose:lctrl		=	+compose(lctrl)+  compose:rctrl		=	+compose(rctrl)+  compose:caps		=	+compose(caps)+  compose:102		=	+compose(102)+  compose:paus		=	+compose(paus)+  compose:prsc		=	+compose(prsc)+  compose:sclk		=	+compose(sclk)+  srvrkeys:none		=	+srvr_ctrl(no_srvr_keys)+  eurosign:e		=	+eurosign(e)+  eurosign:2		=	+eurosign(2)+  eurosign:4		=	+eurosign(4)+  eurosign:5		=	+eurosign(5)+  rupeesign:4           =       +rupeesign(4)+  keypad:oss            =       +keypad(oss)+  keypad:legacy         =	+keypad(legacy)+  keypad:legacy_wang    =	+keypad(legacy_wang)+  keypad:oss_wang       =	+keypad(oss_wang)+  keypad:future         =	+keypad(future)+  keypad:future_wang    =	+keypad(future_wang)+  keypad:hex            =	+keypad(ops)+keypad(hex)+  keypad:atm            =	+keypad(ops)+keypad(hex)+keypad(atm)  +  nbsp:none             =	+nbsp(none)+  nbsp:level2           =	+nbsp(level2)+  nbsp:level3           =	+nbsp(level3)+  nbsp:level3s          =	+nbsp(level3s)+  nbsp:level3n          =	+nbsp(level3n)+  nbsp:level4           =	+nbsp(level4)+  nbsp:level4n          =	+nbsp(level4n)+  nbsp:level4nl         =	+nbsp(level4nl)+  japan:nicola_f_bs     =	+jp(nicola_f_bs)+  japan:hztg_escape     =	+jp(hztg_escape)+  kpdl:dot              =	+kpdl(dot)+  kpdl:comma            =	+kpdl(comma)+  kpdl:dotoss           =	+kpdl(dotoss)+  kpdl:dotoss_latin9    =	+kpdl(dotoss_latin9)+  kpdl:commaoss         =	+kpdl(commaoss)+  kpdl:momayyezoss      =	+kpdl(momayyezoss)+  kpdl:kposs            =	+kpdl(kposs)+  kpdl:semi             =	+kpdl(semi)+  shift:breaks_caps     =	+shift(breaks_caps)+  esperanto:qwerty      =	+epo(qwerty)+  esperanto:dvorak      =	+epo(dvorak)+  terminate:ctrl_alt_bksp =	+terminate(ctrl_alt_bksp)+  keypad:pointerkeys	=	+keypad(pointerkeys)+  apple:alupckeys	=	+macintosh_vndr/apple(alupckeys)+  shift:both_capslock                =       +shift(both_capslock)+  shift:lshift_both_capslock         =       +shift(lshift_both_capslock)+  shift:rshift_both_capslock         =       +shift(rshift_both_capslock)+  shift:both_capslock_cancel         =       +shift(both_capslock_cancel)+  shift:lshift_both_capslock_cancel  =       +shift(lshift_both_capslock_cancel)+  shift:rshift_both_capslock_cancel  =       +shift(rshift_both_capslock_cancel)+  shift:both_shiftlock               =       +shift(both_shiftlock)+  shift:lshift_both_shiftlock        =       +shift(lshift_both_shiftlock)+  shift:rshift_both_shiftlock        =       +shift(rshift_both_shiftlock)+  lv3:caps_switch                    =       +level3(caps_switch)+  lv3:bksl_switch                    =       +level3(bksl_switch)+  lv3:lsgt_switch                    =       +level3(lsgt_switch)+  lv3:caps_switch_latch              =       +level3(caps_switch_latch)+  lv3:bksl_switch_latch              =       +level3(bksl_switch_latch)+  lv3:lsgt_switch_latch              =       +level3(lsgt_switch_latch)+  lv5:lsgt_switch_lock            =       +level5(lsgt_switch_lock)+  lv5:ralt_switch_lock            =       +level5(ralt_switch_lock)+  lv5:lwin_switch_lock            =       +level5(lwin_switch_lock)+  lv5:rwin_switch_lock            =       +level5(rwin_switch_lock)+  lv5:lsgt_switch_lock_cancel     =       +level5(lsgt_switch_lock_cancel)+  lv5:ralt_switch_lock_cancel     =       +level5(ralt_switch_lock_cancel)+  lv5:lwin_switch_lock_cancel     =       +level5(lwin_switch_lock_cancel)+  lv5:rwin_switch_lock_cancel     =       +level5(rwin_switch_lock_cancel)++++! option	=	compat+  grp_led:num		=	+lednum(group_lock)+  grp_led:caps		=	+ledcaps(group_lock)+  grp_led:scroll	=	+ledscroll(group_lock)+  caps:shiftlock	=	+ledcaps(shift_lock)+  grab:break_actions    =       +xfree86(grab_break)
+ data/rules/groups view
@@ -0,0 +1,20 @@+! $model_group = pc101       pc102    \+                 pc104\+                 pc105\+                 pc106+! $layout_group = ar br cr              us+! $variant_group =++! model         = keycodes+  $model_group  = something(%m)+  *             = default_keycodes++! layout        variant = symbols+  $layout_group *       = my_symbols+%(v)+  *             *       = default_symbols++! model         = types+  *             = default_types++! model         = compat+  *             = default_compat
+ data/rules/index view
@@ -0,0 +1,28 @@+! $layouts = al az br cn us++! layout        option          =       symbols+  $layouts      some:opt        =       +extra++! layout[1]     option          =       symbols+  $layouts      some:opt        =       +extra:1++! layout[2]     option          =       symbols+  $layouts      some:opt        =       +extra:2++! layout[3]     option          =       symbols+  $layouts      some:opt        =       +extra:3++! layout[4]     option          =       symbols+  $layouts      some:opt        =       +extra:4++! model         = symbols+  *             = default_symbols++! model         = keycodes+  *             = default_keycodes++! model         = types+  *             = default_types++! model         = compat+  *             = default_compat
+ data/rules/multiple-options view
@@ -0,0 +1,27 @@+! model         = keycodes+  my_model      = my_keycodes+  *             = default_keycodes++! layout        variant    = symbols+  my_layout     my_variant = my_symbols+extra_variant++! layout        = symbols+  my_layout     = my_symbols+  *             = default_symbols++! model         = types+  my_model      = my_types+  *             = default_types++! model         = compat+  my_model      = my_compat+  *             = default_compat++! option        = compat+  option111     = +substring+  option1       = +some:compat+  option11      = +group(bla)++! option        = symbols+  option3       = +compose(foo)+keypad(bar)+  colon:opt     = +altwin(menu)
+ data/rules/simple view
@@ -0,0 +1,21 @@+! model         = keycodes+  my_model      = my_keycodes+  *             = default_keycodes++! layout        variant    = symbols+  my_layout     my_variant = my_symbols+extra_variant++! layout        = symbols+  my_layout     = my_symbols+  *             = default_symbols++! model         = types+  my_model      = my_types+  *             = default_types++! model         = compat+  my_model      = my_compat+  *             = default_compat++! option        = compat+  my_option     = |some:compat
+ data/symbols/altwin view
@@ -0,0 +1,100 @@+partial modifier_keys +xkb_symbols "meta_alt" {+    key <LALT> {	[ 	Alt_L,	Meta_L		]	};+    key <RALT> { type[Group1] = "TWO_LEVEL",+                 symbols[Group1] = [ Alt_R, Meta_R ] };+    modifier_map Mod1	{ Alt_L, Alt_R, Meta_L, Meta_R };+//  modifier_map Mod4	{};+};++// Alt is mapped to the Win-keys (and the usual Alt keys).+partial modifier_keys +xkb_symbols "alt_win" {+    key <LWIN> {	[ 	Alt_L   		]	};+    key <RWIN> {	[ 	Alt_R           	]	};+    modifier_map Mod1 { <LWIN>, <RWIN> };+};++// Control is mapped to the Win-keys (and the usual Ctrl keys).+partial modifier_keys +xkb_symbols "ctrl_win" {+    key <LWIN> {	[ 	Control_L		]	};+    key <RWIN> {	[ 	Control_R		]	};+    modifier_map Control { <LWIN>, <RWIN> };+};++// Ctrl is mapped to the Alt-keys, Alt is mapped to the Win-keys,  Win is mapped to the Ctrl-keys.+partial modifier_keys +xkb_symbols "ctrl_alt_win" {+    key <LALT> {	[ 	Control_L, Control_L		]	};+    key <RALT> { type[Group1] = "TWO_LEVEL",+                 symbols[Group1] = [ Control_R, Control_R ] };+    key <LWIN> {	[	Alt_L, Meta_L    	]	};+    key <RWIN> {	[	Alt_R, Meta_R		]	};+    modifier_map Control { <RALT>, <LALT> };+    modifier_map  Mod1 { <LWIN>, <RWIN> };+};+++partial modifier_keys +xkb_symbols "meta_win" {+    key <LALT> {	[ 	Alt_L,	Alt_L		]	};+    key <RALT> { type[Group1] = "TWO_LEVEL",+                 symbols[Group1] = [ Alt_R, Alt_R ] };+    key <LWIN> {	[ 	Meta_L			]	};+    key <RWIN> {	[ 	Meta_R			]	};+    modifier_map Mod1	{ Alt_L, Alt_R };+    modifier_map Mod4	{ <META>, Meta_L, Meta_R };+};++partial modifier_keys +xkb_symbols "left_meta_win" {+    key <LALT> {	[ 	Alt_L,	Alt_L		]	};+    key <LWIN> {	[ 	Meta_L			]	};+    modifier_map Mod1	{ Alt_L };+    modifier_map Mod4	{ <META>, Meta_L };+};++partial modifier_keys +xkb_symbols "hyper_win" {+    key <LWIN> {	[ 	Hyper_L			]	};+    key <RWIN> {	[ 	Hyper_R			]	};+    modifier_map Mod4	{ Hyper_L, Hyper_R };+};++// Use Menu for the menu key+partial modifier_keys +xkb_symbols "menu" {+    key <MENU> {	[ 	Menu		]	};+};++// Layout for Tux key caps with additional right Alt key+partial modifier_keys +xkb_symbols "alt_super_win" {+    key <LALT> {        [       Alt_L,  Meta_L          ]       };+    key <RWIN> {        [       Alt_R,  Meta_R          ]       };+    key <LWIN> {        [       Super_L                 ]       };+    key <MENU> {        [       Super_R                 ]       };+    modifier_map Mod1   { Alt_L, Alt_R, Meta_L, Meta_R };+    modifier_map Mod4   { Super_L, Super_R };+};++partial modifier_keys +xkb_symbols "swap_alt_win" {+    include "altwin(swap_lalt_lwin)"+    include "altwin(swap_ralt_rwin)"+};++partial hidden modifier_keys +xkb_symbols "swap_lalt_lwin" {+    key <LALT> { type[Group1] = "ONE_LEVEL",+                 symbols[Group1] = [ Super_L ] };+    key <LWIN> {	[	Alt_L,	Meta_L		]	};+};++partial hidden modifier_keys +xkb_symbols "swap_ralt_rwin" {+    key <RALT> { type[Group1] = "ONE_LEVEL",+                 symbols[Group1] = [ Super_R ] };+    key <RWIN> {	[	Alt_R,	Meta_R		]	};+};
+ data/symbols/ca view
@@ -0,0 +1,535 @@+default partial+xkb_symbols "fr" {+    name[Group1] = "French (Canada)";++    key <TLDE>	{ [ numbersign,       bar,     backslash ]	};+    key <AE01>	{ [         1,     exclam,     plusminus ]	};+    key <AE02>	{ [         2,   quotedbl,            at ]	};+    key <AE03>	{ [         3,      slash,      sterling ]	};+    key <AE04>	{ [         4,     dollar,          cent ]	};+    key <AE05>	{ [         5,    percent,      currency ] 	};+    key <AE06>	{ [         6,   question,       notsign ]	};+    key <AE07>	{ [         7,  ampersand,     brokenbar ]	};+    key <AE08>	{ [         8,   asterisk,   twosuperior ]	};+    key <AE09>	{ [         9,  parenleft, threesuperior ]	};+    key <AE10>	{ [         0, parenright,    onequarter ]	};+    key <AE11>	{ [     minus, underscore,       onehalf ]	};+    key <AE12>	{ [     equal,       plus, threequarters ]	};++    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,   section ]	};+    key <AD10>	{ [         p,          P, paragraph ]	};+    key <AD11>	{ [dead_circumflex, dead_circumflex, bracketleft  ]	};+    key <AD12>	{ [   dead_cedilla,  dead_diaeresis, bracketright ]	};++    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,      colon, asciitilde ]	};+    key <AC11>	{ [dead_grave, dead_grave,  braceleft ]	};+    key <BKSL>	{ [      less,    greater, braceright ]	};++    key <LSGT>	{ [guillemotleft, guillemotright, degree]	};+    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,           mu ]	};+    key <AB08>	{ [     comma, apostrophe,       macron ]	};+    key <AB09>	{ [    period,     period,       hyphen ]	};+    key <AB10>	{ [    eacute,     Eacute,   dead_acute ]	};++    key <SPCE>	{ [     space,      space, nobreakspace ]	};++    include "level3(ralt_switch)"+};++xkb_symbols "fr-dvorak" {+    name[Group1] = "French (Canada, Dvorak)";++    key <TLDE>  { [ numbersign,       bar,     backslash ]  };+    key <AE01>  { [         1,     exclam,     plusminus ]  };+    key <AE02>  { [         2,   quotedbl,            at ]  };+    key <AE03>  { [         3,      slash,      sterling ]  };+    key <AE04>  { [         4,     dollar,          cent ]  };+    key <AE05>  { [         5,    percent,      currency ]  };+    key <AE06>  { [         6,   question,       notsign ]  };+    key <AE07>  { [         7,  ampersand,     brokenbar ]  };+    key <AE08>  { [         8,   asterisk,   twosuperior ]  };+    key <AE09>  { [         9,  parenleft, threesuperior ]  };+    key <AE10>  { [         0, parenright,    onequarter ]  };+    key <AE11>  { [dead_circumflex, dead_circumflex, bracketleft  ] };+    key <AE12>  { [   dead_cedilla,  dead_diaeresis, bracketright ] };++    key <AD01>  { [dead_grave, dead_grave,  braceleft ] };+    key <AD02>  { [     comma, apostrophe,       macron ]   };+    key <AD03>  { [    period,     period,       hyphen ]   };+    key <AD04>  { [         p,          P, paragraph ]  };+    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>  { [    eacute,     Eacute,   dead_acute ]   };+    key <AD12>  { [     equal,       plus, threequarters ]  };++    key <AC01>  { [         a,          A ] };+    key <AC02>  { [         o,          O,   section ]  };+    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, underscore,       onehalf ]  };+    key <BKSL>  { [      less,    greater, braceright ] };++    key <LSGT>  { [guillemotleft, guillemotright, degree]   };+    key <AB01>  { [ semicolon,      colon, asciitilde ] };+    key <AB02>  { [         q,          Q ] };+    key <AB03>  { [         j,          J ] };+    key <AB04>  { [         k,          K ] };+    key <AB05>  { [         x,          X ] };+    key <AB06>  { [         b,          B ] };+    key <AB07>  { [         m,          M,           mu ]   };+    key <AB08>  { [         w,          W ] };+    key <AB09>  { [         v,          V ] };+    key <AB10>  { [         z,          Z ] };++    key <SPCE>  { [     space,      space, nobreakspace ]   };++    include "level3(ralt_switch)"+};++partial+xkb_symbols "fr-legacy" {++    name[Group1] = "French (Canada, legacy)";++    include "ca(fr)"++    key <TLDE>	{ [    degree,     degree,       notsign ]	};+    key <AE01>	{ [         1,     exclam,   onesuperior ]	};++    key <AE03>	{ [         3, numbersign, threesuperior ]	};+    key <AE04>	{ [         4,     dollar,    onequarter ]	};+    key <AE05>	{ [         5,    percent,       onehalf ] 	};+    key <AE06>	{ [         6,   question, threequarters ]	};+    key <AE07>	{ [         7,  ampersand,     braceleft ]	};+    key <AE08>	{ [         8,   asterisk,   bracketleft ]	};+    key <AE09>	{ [         9,  parenleft,  bracketright,   plusminus ]	};+    key <AE10>	{ [         0, parenright,    braceright ]	};+    key <AE11>	{ [     minus, underscore,           bar, questiondown]	};+    key <AE12>	{ [     equal,       plus,  dead_cedilla ]	};++    key <AD04>	{ [         r,          R,     paragraph,  registered ]	};+    key <AD06>	{ [         y,          Y,           yen ]	};+    key <AD09>	{ [         o,          O,        oslash,      Ooblique ] };+    key <AD10>	{ [         p,          P,         thorn,       THORN ]	};+    key <AD11>	{ [dead_circumflex, dead_circumflex,           degree ]	};+    key <AD12>	{ [  ccedilla,   Ccedilla, dead_tilde, dead_diaeresis ]	};++    key <AC01>	{ [         a,          A,            ae,          AE ]	};+    key <AC02>	{ [         s,          S,        ssharp,     section ]	};+    key <AC03>	{ [         d,          D,           eth,         ETH ]	};+    key <AC04>	{ [         f,          F,   ordfeminine ]	};+    key <AC10>	{ [ semicolon,      colon,    dead_acute,  dead_acute ]	};+    key <AC11>	{ [    egrave,     Egrave ]	};+    key <BKSL>	{ [    agrave,     Agrave,    dead_grave ]	};++    key <LSGT>	{ [    ugrave,     Ugrave,     backslash,         bar ]	};+    key <AB01>	{ [         z,          Z, guillemotleft  ]	};+    key <AB02>	{ [         x,          X, guillemotright ]	};+    key <AB03>	{ [         c,          C,          cent,   copyright ]	};+    key <AB07>	{ [         m,          M,            mu,   masculine ]	};+    key <AB08>	{ [     comma, apostrophe,         less ]	};+    key <AB09>	{ [    period,     period,      greater ]	};+    key <AB10>	{ [    eacute,     Eacute,        slash ]	};+};++partial+xkb_symbols "multi" {++    name[Group1] = "Canadian Multilingual (first part)";++    include "ca(fr)"++    key <TLDE>	{ [     slash,  backslash,           bar ]	};+    key <AE01>	{ [         1,     exclam ]	};+    key <AE02>	{ [         2,         at ]	};+    key <AE03>	{ [         3, numbersign ]	};+    key <AE04>	{ [         4,     dollar ]	};+    key <AE05>	{ [         5,    percent ] 	};+    key <AE06>	{ [         6,   question ]	};+    key <AE07>	{ [         7,  ampersand,    braceleft ]	};+    key <AE08>	{ [         8,   asterisk,   braceright ]	};+    key <AE09>	{ [         9,  parenleft,  bracketleft ]	};+    key <AE10>	{ [         0, parenright, bracketright ]	};+    key <AE11>	{ [     minus, underscore ]	};+    key <AE12>	{ [     equal,       plus,      notsign ]	};++    key <AD09>	{ [         o,          O ]	};+    key <AD10>	{ [         p,          P ]	};+    key <AD11>	{ [dead_circumflex, dead_diaeresis, dead_grave  ]	};+    key <AD12>	{ [  ccedilla,   Ccedilla,   asciitilde ]	};++    key <AC10>	{ [ semicolon,      colon,     degree ]	};+    key <AC11>	{ [    egrave,     Egrave ]	};+    key <BKSL>	{ [    agrave,     Agrave ]	};++    key <LSGT>	{ [    ugrave,     Ugrave ] 	};+    key <AB01>	{ [         z,          Z, guillemotleft  ]	};+    key <AB02>	{ [         x,          X, guillemotright ]	};+    key <AB08>	{ [     comma, apostrophe,           less ]	};+    key <AB09>	{ [    period,   quotedbl,        greater ]	};+    key <AB10>	{ [    eacute,     Eacute ]	};+};++partial+xkb_symbols "multi-2gr" {++    name[Group1] = "Canadian Multilingual (second part)";++    key <TLDE>	{ [    NoSymbol,      hyphen ]	};+    key <AE01>	{ [   onesuperior,  exclamdown ]	};+    key <AE02>	{ [   twosuperior,  NoSymbol ]	};+    key <AE03>	{ [ threesuperior,    sterling ]	};+    key <AE04>	{ [    onequarter,    currency ]	};+    key <AE05>	{ [       onehalf,threeeighths ]	};+    key <AE06>	{ [ threequarters, fiveeighths ]	};+    key <AE07>	{ [    NoSymbol,seveneighths ]	};+    key <AE08>	{ [    NoSymbol,   trademark ]	};+    key <AE09>	{ [    NoSymbol,   plusminus ]	};++    key <AE11>	{ [    NoSymbol, questiondown]	};+    key <AE12>	{ [  dead_cedilla, dead_ogonek ]	};++    key <AD01>	{ [ NoSymbol,    Greek_OMEGA ]	};+    key <AD02>	{ [    lstroke,        Lstroke ]	};+    key <AD03>	{ [         oe,             OE ]	};+    key <AD04>	{ [  paragraph,     registered ]	};+    key <AD05>	{ [     tslash,         Tslash ]	};+    key <AD06>	{ [  leftarrow,            yen ]	};+    key <AD07>	{ [  downarrow,        uparrow ]	};+    key <AD08>	{ [ rightarrow,       idotless ]	};+    key <AD09>	{ [     oslash,       Ooblique ]	};+    key <AD10>	{ [      thorn,          THORN ]	};+    key <AD11>	{ [ NoSymbol, dead_abovering ]	};+    key <AD12>	{ [ dead_tilde,    dead_macron ]	};++    key <AC01>	{ [         ae,          AE ]	};+    key <AC02>	{ [     ssharp,     section ]	};+    key <AC03>	{ [        eth,         ETH ]	};+    key <AC04>	{ [ NoSymbol, ordfeminine ]	};+    key <AC05>	{ [        eng,         ENG ]	};+    key <AC06>	{ [    hstroke,     Hstroke ]	};+    key <AC07>	{ [      U0133,       U0132 ]	};+    key <AC08>	{ [        kra,  NoSymbol ]	};+    key <AC09>	{ [      U0140,       U013F ]	};+    key <AC10>	{ [ dead_acute, dead_doubleacute ]	};+    key <AC11>	{ [ NoSymbol,  dead_caron ]	};+    key <BKSL>	{ [ NoSymbol,  dead_breve ]	};+++    key <LSGT>	{ [ NoSymbol,   brokenbar ]	};++    key <AB03>	{ [       cent,   copyright ]	};+    key <AB04>	{ [  leftdoublequotemark,  leftsinglequotemark ]	};+    key <AB05>	{ [ rightdoublequotemark, rightsinglequotemark ]	};+    key <AB06>	{ [      U0149,       U266A ]	};+    key <AB07>	{ [         mu,   masculine ]	};+    key <AB08>	{ [ Greek_horizbar, multiply ]	};+    key <AB09>	{ [ periodcentered, division ]	};+    key <AB10>	{ [ NoSymbol, dead_abovedot ]	};++};++// based on+// Inuktitut keyboard for X11+// written by Pablo Saratxaga <pablo@mandrakesoft.com>++alphanumeric_keys +xkb_symbols "ike" {++    name[Group1]= "Inuktitut";++    key	<AE01> { [ 0x01001595, 1		]	};+    key	<AE02> { [ 0x01001449, 2		]	};+    key	<AE03> { [ 0x01001550, 3		]	};+    key	<AE04> { [ 0x01001483, 4		]	};+    key	<AE05> { [ 0x01001466, 5		]	};+    key	<AE06> { [ 0x01001585, 6		]	};+    key	<AE07> { [ 0x010014bb, 7		]	};+    key	<AE08> { [ 0x010014d0, 8		]	};+    key	<AE09> { [ 0x010014ea, 9		]	};+    key	<AE10> { [ 0x0100153e, 0		]	};+    key	<AE11> { [ minus,	  underscore	]	};+    key	<AE12> { [ 0x0100155d, equal		]	};++	key <AD01> { [ 0x0100158f, 0x0100148b	]	};+	key <AD02> { [ 0x01001403, 0x01001431	]	};+	key <AD03> { [ 0x0100157f, 0x01001546	]	};+	key <AD04> { [ 0x0100146d, 0x01001596	]	};+	key <AD05> { [ 0x0100144e, 0x01001671	]	};+	key <AD06> { [ 0x010014ef, 0x01001673	]	};+	key <AD07> { [ 0x010014a5, 0x01001675	]	};+	key <AD08> { [ 0x010014c2, 0x010015a4	]	};+	key <AD09> { [ 0x010014d5, 0x010015a0	]	};+	key <AD10> { [ 0x01001528, 0x010015a6	]	};+	key <AD11> { [ 0x010014a1, 0x01001505	]	};+	key <AD12> { [ dead_abovedot, 0x0100141e]	};++	key <AC01> { [ 0x01001591, 0x0100148d	]	};+	key <AC02> { [ 0x01001405, 0x01001433	]	};+	key <AC03> { [ 0x01001581, 0x01001548	]	};+	key <AC04> { [ 0x0100146f, 0x01001555	]	};+	key <AC05> { [ 0x01001450, parenleft 	]	};+	key <AC06> { [ 0x010014f1, parenright	]	};+	key <AC07> { [ 0x010014a7, 0x0100152a	]	};+	key <AC08> { [ 0x010014c4, 0x01001557	]	};+	key <AC09> { [ 0x010014d7, 0x010015a2	]	};+	key <AC10> { [ semicolon,  colon     	]	};+	key <AC11> { [ apostrophe, quotedbl     ]	};++	key <AB01> { [ 0x01001593, 0x01001490	]	};+	key <AB02> { [ 0x0100140a, 0x01001438	]	};+	key <AB03> { [ 0x01001583, 0x0100154b	]	};+	key <AB04> { [ 0x01001472, question  	]	};+	key <AB05> { [ 0x01001455, 0x0100157c	]	};+	key <AB06> { [ 0x010014f4, 0x010014c7	]	};+	key <AB07> { [ 0x010014aa, 0x010014da	]	};+	key <AB08> { [ comma,      less      	]	};+	key <AB09> { [ period,     greater   	]	};+	key <AB10> { [ 0x0100152d, 0x01001559	]	};++    key	<TLDE> { [ 0x0100157b, 0x01001575	]	};+    key	<LSGT> { [ 0x01001579, 0x01001577	]	};+    key	<BKSL> { [ backslash,  bar		]	};++// End alphanumeric section+};++partial+xkb_symbols "multix" {++    name[Group1] = "Canadian Multilingual";++    key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";+    key <TLDE>	{ [     slash,  backslash,            bar, NoSymbol,+    		   NoSymbol,     hyphen ]	};+    key <AE01>	{ [         1,     exclam,      plusminus, NoSymbol,+    		  onesuperior, exclamdown ]	};+    key <AE02>	{ [         2,         at,             at, NoSymbol,+    		  twosuperior, NoSymbol ]	};+    key <AE03>	{ [         3, numbersign,       sterling, NoSymbol,+    		threesuperior,   sterling ]	};+    key <AE04>	{ [         4,     dollar,           cent, NoSymbol,+    		   onequarter,   currency ]	};+    key <AE05>	{ [         5,    percent,       currency, NoSymbol,+    		      onehalf, threeeighths ]	};+    key <AE06>	{ [         6,   question,        notsign, NoSymbol,+    		threequarters, fiveeighths ]	};+    key <AE07>	{ [         7,  ampersand,      braceleft, NoSymbol,+    		   NoSymbol, seveneighths ]	};+    key <AE08>	{ [         8,   asterisk,     braceright, NoSymbol,+    		   NoSymbol,  trademark ]	};+    key <AE09>	{ [         9,  parenleft,    bracketleft, NoSymbol,+    		   NoSymbol,  plusminus ]	};+    key <AE10>	{ [         0, parenright,   bracketright, NoSymbol ] };+    key <AE11>	{ [     minus, underscore,        onehalf, NoSymbol,+    		   NoSymbol, questiondown]	};+    key <AE12>	{ [     equal,       plus,        notsign, NoSymbol,+    		dead_cedilla, dead_ogonek ]	};++    key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";+    key <AD01>	{ [         q,           Q,     NoSymbol, NoSymbol,+		   NoSymbol, Greek_OMEGA ]	};+    key <AD02>	{ [         w,           W,     NoSymbol, NoSymbol,+   		      lstroke,     Lstroke ]	};+    key <AD03>	{ [         e,           E,     NoSymbol, NoSymbol,+    			   oe,          OE ]	};+    key <AD04>	{ [         r,           R,     NoSymbol, NoSymbol,+    		    paragraph,  registered ]	};+    key <AD05>	{ [         t,           T,     NoSymbol, NoSymbol,+		       tslash,      Tslash ]	};+    key <AD06>	{ [         y,           Y,     NoSymbol, NoSymbol,+		    leftarrow,         yen ]	};+    key <AD07>	{ [         u,           U,     NoSymbol, NoSymbol,+    		    downarrow,     uparrow ]	};+    key <AD08>	{ [         i,           I,     NoSymbol, NoSymbol,+    		   rightarrow,    idotless ]	};+    key <AD09>	{ [         o,           O,        section, NoSymbol,+		       oslash,    Ooblique ]	};+    key <AD10>	{ [         p,           P,      paragraph, NoSymbol,+		        thorn,       THORN ]	};++    key.type[group1]="EIGHT_LEVEL";+    key <AD11>	{ [dead_circumflex, dead_diaeresis, dead_grave, NoSymbol,+    			NoSymbol, dead_abovering ]	};++    key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";+    key <AD12>	{ [  ccedilla,   Ccedilla,     asciitilde, NoSymbol,+		   dead_tilde,    dead_macron ]	};++    key <AC01>	{ [         a,          A,     NoSymbol, NoSymbol,+    			   ae,         AE ]	};+    key <AC02>	{ [         s,          S,     NoSymbol, NoSymbol,+    		       ssharp,    section ]	};+    key <AC03>	{ [         d,          D,     NoSymbol, NoSymbol,+    			  eth,        ETH ]	};+    key <AC04>	{ [         f,          F,     NoSymbol, NoSymbol,+    		   NoSymbol, ordfeminine ]	};+    key <AC05>	{ [         g,          G,     NoSymbol, NoSymbol,+    			  eng,        ENG ]	};+    key <AC06>	{ [         h,          H,     NoSymbol, NoSymbol,+    		      hstroke,    Hstroke ]	};+    key <AC07>	{ [         j,          J,     NoSymbol, NoSymbol,+    			U0133,      U0132 ]	};+    key <AC08>	{ [         k,          K,     NoSymbol, NoSymbol,+    			  kra, NoSymbol ]	};+    key <AC09>	{ [         l,          L,     NoSymbol, NoSymbol,+    			U0140,      U013F ]	};++    key.type[group1]="EIGHT_LEVEL";+    key <AC10>	{ [ semicolon,          colon,         degree, NoSymbol,+    		   dead_acute, dead_doubleacute ]	};++    key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";+    key <AC11>	{ [    egrave,         Egrave,      braceleft, NoSymbol,+    		   NoSymbol,  dead_caron ]	};+    key <BKSL>	{ [    agrave,         Agrave,     braceright, NoSymbol,+    		   NoSymbol,  dead_breve ]	};++    key <LSGT>	{ [    ugrave,     Ugrave,         degree, NoSymbol,+    		   NoSymbol,   brokenbar ]	};++    key.type[group1]="FOUR_LEVEL_SEMIALPHABETIC";+    key <AB01>	{ [         z,          Z,  guillemotleft, NoSymbol ]	};+    key <AB02>	{ [         x,          X, guillemotright, NoSymbol ]	};++    key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";+    key <AB03>	{ [         c,          C,     NoSymbol, NoSymbol,+    			 cent,   copyright ]	};+    key <AB04>	{ [         v,          V,     NoSymbol, NoSymbol,+    	  leftdoublequotemark,  leftsinglequotemark ]	};+    key <AB05>	{ [         b,          B,     NoSymbol, NoSymbol,+    	 rightdoublequotemark, rightsinglequotemark ]	};+    key <AB06>	{ [         n,          N,     NoSymbol, NoSymbol,+    			U0149,       U266A ]	};+    key <AB07>	{ [         m,          M,             mu, NoSymbol,+    			   mu,   masculine ]	};+    key <AB08>	{ [     comma, apostrophe,           less, NoSymbol,+    	       Greek_horizbar, multiply ]	};+    key <AB09>	{ [    period,   quotedbl,        greater, NoSymbol,+    	       periodcentered, division ]	};+    key <AB10>	{ [    eacute,     Eacute,     dead_acute, NoSymbol,+    		   NoSymbol, dead_abovedot ]	};++    include "nbsp(level3s)"++    modifier_map Control{ Control_L };++    include "level3(ralt_switch)"+    include "level5(rctrl_switch)"+};++// OLPC Section+xkb_symbols "olpc" {++    include "ca(fr)"+    +    key <AE02>	{ [          2,    quotedbl,          ograve,        Ograve ] };+    key <AE03>	{ [          3,    slash,          at,        VoidSymbol ] };+    +    key <AD03>	{ [          e,    E,          EuroSign, VoidSymbol]	};+        +    key <AB09>	{ [  period,         period,         0x1002010 ]	};+    +    key <I219>  { [  guillemotleft,  guillemotright, degree, VoidSymbol ] };+};++partial alphanumeric_keys +xkb_symbols "eng" {+    name[Group1] = "English (Canada)";+    include "us(basic)"+};++// EXTRAS:++partial alphanumeric_keys +xkb_symbols "kut" {++    //Ejective U0313  and compose accents are from shs layout+    include "ca(shs)"++    name[Group1]= "Kutenai";++    // Alphanumeric section++    // Alveolar Click+    key <AD05> {	[ t,	T,U01C2	,U01C2	]	};++    //Cent sign+    key <AB03> {	[ c,	C,U00A2,U00A2	]	};++    //Mid dot+    key <AB09> {	[ period,     greater,U00B7   	]	};++    //Glottal stop+    key <AB10> {	[ slash,	question, U0294	]	};++    //COMBINING COMMA ABOVE RIGHT+    key <AC11> {	[ apostrophe,	quotedbl, U0315,U0315	]	};++    //MODIFIER LETTER RIGHT HALF RING+    key <AC10> {	[ semicolon,	colon,U02BE,U02BE	]	};+};++// Secwepemctsin keyboard for X11+// written by Neskie Manuel <neskiem@gmail.com>++partial alphanumeric_keys  +xkb_symbols "shs" {++    include "us"++    name[Group1]= "Secwepemctsin";++    //Using Dead key to get COMBINING COMMA ABOVE for ejectives on+    //q, l, t, s, m, g, k, p, w, y, r+    //XCompose key is used for the other accute and grave.++    key <AB08>	{ [ comma, less, U0313    ]	};+    key <AC01>	{ [ a, A, aacute, Aacute  ]	};+    key <AD03>	{ [ e, E, eacute, Eacute  ]	};+    key <AD07>	{ [ u, U, uacute, Uacute  ]	};+    key <AD08>	{ [ i, I, iacute, Iacute  ]	};+    key <AD09>	{ [ o, O, oacute, Oacute  ]	};++    include "level3(ralt_switch)"+    include "compose(rctrl)"+};+++partial alphanumeric_keys+	xkb_symbols "sun_type6" {+	include "sun_vndr/ca(sun_type6)"+};
+ data/symbols/capslock view
@@ -0,0 +1,74 @@+default partial hidden modifier_keys+xkb_symbols "capslock" {+    replace key <CAPS> {	[	Caps_Lock		]	};+    modifier_map Lock { Caps_Lock };+};++partial hidden modifier_keys+xkb_symbols "shiftlock" {+    replace key <CAPS> {	[	Shift_Lock		]	};+    modifier_map Shift { Shift_Lock };+};++partial hidden modifier_keys+xkb_symbols "grouplock" {+    replace key <CAPS> {	[	ISO_Next_Group,	Caps_Lock	]	};+};++partial hidden modifier_keys+xkb_symbols "swapescape" {+    key <CAPS> {        [       Escape  ]       };+    key <ESC>  {        [     Caps_Lock    ]       };+};++partial hidden modifier_keys+xkb_symbols "groupshift" {+    key <CAPS> {+       type[Group1]="PC_ALT_LEVEL2",+       [       Mode_switch,    Caps_Lock       ]+    };+};++partial hidden modifier_keys+xkb_symbols "escape" {+    key <CAPS> {        [       Escape  ]       };+};++partial hidden modifier_keys+xkb_symbols "backspace" {+    key <CAPS> {        [       BackSpace  ]       };+};++partial hidden modifier_keys+xkb_symbols "super" {+    key <CAPS> {        [       Super_L  ]       };+    modifier_map Mod4   { <CAPS> };+};++partial hidden modifier_keys+xkb_symbols "hyper" {+    key <CAPS> {        [       Hyper_L  ]       };+    modifier_map Mod4   { <CAPS> };+};++partial hidden modifier_keys+xkb_symbols "none" {+    key <CAPS> {        [       VoidSymbol  ]       };+};++partial hidden modifier_keys+xkb_symbols "numlock" {+    key <CAPS> {        [       Num_Lock  ]       };+};++// This changes the modifier behavior of the <CAPS> key.+// The keysym will be reset to Caps_Lock+partial hidden modifier_keys+xkb_symbols "ctrl_modifier" {+    replace key <CAPS> {+        type[Group1] = "ONE_LEVEL",+        symbols[Group1] = [ Caps_Lock ],+        actions[Group1] = [ SetMods(modifiers=Control) ]    +    };+    modifier_map Control { <CAPS> };+};
+ data/symbols/ch view
@@ -0,0 +1,225 @@+partial default alphanumeric_keys +xkb_symbols "basic" {++    include "latin"++    // Alphanumeric section+    name[Group1]= "German (Switzerland)";+    key <TLDE> { [    section,     degree                           ] };+    key <AE01> { [          1,       plus,          bar, exclamdown ] };+    key <AE02> { [          2,   quotedbl,           at, oneeighth  ] };+    key <AE03> { [          3,   asterisk,   numbersign             ] };+    key <AE04> { [          4,   ccedilla                           ] };+    key <AE05> { [          5,    percent                           ] };+    key <AE06> { [          6,  ampersand,      notsign             ] };+    key <AE07> { [          7,      slash,          bar             ] };+    key <AE08> { [          8,  parenleft,         cent             ] };+    key <AE09> { [          9, parenright                           ] };+    key <AE10> { [          0,      equal                           ] };+    key <AE11> { [ apostrophe,   question,   dead_acute             ] };+    key <AE12> { [ dead_circumflex, dead_grave, dead_tilde          ] };++    key <AD03> { [          e,          E,     EuroSign             ] };+    key <AD06> { [          z,          Z                           ] };+    key <AD11> { [ udiaeresis,     egrave,  bracketleft             ] };+    key <AD12> { [ dead_diaeresis, exclam, bracketright             ] };++    key <AC10> { [ odiaeresis,     eacute                           ] };+    key <AC11> { [ adiaeresis,     agrave,    braceleft             ] };+    key <BKSL> { [     dollar,   sterling,   braceright             ] };++    key <LSGT> { [       less,    greater,    backslash, brokenbar  ] };+    key <AB01> { [          y,          Y                           ] };+    key <AB08> { [      comma,  semicolon                           ] };+    key <AB09> { [     period,      colon                           ] };+    key <AB10> { [      minus, underscore                           ] };++    include "level3(ralt_switch)"+};++partial alphanumeric_keys +xkb_symbols "legacy" {+    include "ch(basic)"++    name[Group1]= "German (Switzerland, legacy)";+    key <AE07> { [          7,      slash,    brokenbar             ] };+};++partial alphanumeric_keys +xkb_symbols "de" {+    include "ch(basic)"+};++partial alphanumeric_keys +xkb_symbols "de_Sundeadkeys" {+    // modify the basic Swiss German layout to use Sun dead keys+    include "ch(basic)"+    key <AE11> { [      apostrophe,    question,  dead_acute   ] };+    key <AE12> { [    dead_circumflex, dead_grave,  dead_tilde   ] };+    key <AD12> { [ dead_diaeresis,      exclam, bracketright   ] };+};++partial alphanumeric_keys +xkb_symbols "de_sundeadkeys" {+    include "ch(de_Sundeadkeys)"+    name[Group1]= "German (Switzerland, Sun dead keys)";+};++partial alphanumeric_keys +xkb_symbols "de_nodeadkeys" {+    // modify the basic Swiss German layout not to have any dead keys+    include "ch(basic)"+    name[Group1]= "German (Switzerland, eliminate dead keys)";+    key <AE11> { [  apostrophe, question,        acute  ] };+    key <AE12> { [ asciicircum,    grave,   asciitilde  ] };+    key <AD12> { [   diaeresis,   exclam, bracketright  ] };+};++partial alphanumeric_keys +xkb_symbols "fr" {++    // Describes the differences between a very simple US/ASCII+    // keyboard and a very simple Swiss/French keybaord++    include "ch(basic)"+    name[Group1]= "French (Switzerland)";++    override key <AD11> {+	[ egrave,	udiaeresis,	bracketleft	]+    };+    override key <AC10> {+	[ eacute,	odiaeresis	]+    };+    override key <AC11> {+	[ agrave,	adiaeresis,	braceleft	]+    };+};++partial alphanumeric_keys+xkb_symbols "fr_Sundeadkeys" {+    // modify the basic Swiss French layout to use Sun dead keys+    include "ch(fr)"+    key <AE11> { [      apostrophe,    question,  dead_acute   ] };+    key <AE12> { [    dead_circumflex, dead_grave,  dead_tilde   ] };+    key <AD12> { [ dead_diaeresis,      exclam, bracketright   ] };+};++partial alphanumeric_keys+xkb_symbols "fr_sundeadkeys" {+    include "ch(fr_Sundeadkeys)"+    name[Group1]= "French (Switzerland, Sun dead keys)";+};++partial alphanumeric_keys+xkb_symbols "fr_nodeadkeys" {+    // modify the basic Swiss French layout not to have any dead keys+    include "ch(fr)"+    name[Group1]= "French (Switzerland, eliminate dead keys)";+    key <AE11> { [  apostrophe, question,        acute  ] };+    key <AE12> { [ asciicircum,    grave,   asciitilde  ] };+    key <AD12> { [   diaeresis,   exclam, bracketright  ] };+};++// Copied from macintosh_vndr/ch+// 03.01.2003+// Andreas Tobler <a.tobler@schweiz.ch>+// modified for Swiss German Apple Extended Keyboard II++partial alphanumeric_keys+xkb_symbols "de_mac" {+    +    name[Group1]= "German (Switzerland, Macintosh)";++    // Alphanumeric section++    key <AE01> { [	1,	plus, 	plusminus,	infinity		]	};+    key <AE02> { [	2,	quotedbl, leftdoublequotemark, rightdoublequotemark 	]	};+    key <AE03> { [	3,	asterisk, 	numbersign,	leftcaret	]	};+					// not displayed here+    key <AE04> { [	4,	ccedilla, 	Ccedilla,	slash		]	};+    key <AE05> { [	5,	percent, 	bracketleft			]	};+    key <AE06> { [	6,	ampersand, 	bracketright			]	};+    key <AE07> { [	7,	slash, 	bar,		backslash		]	};+    key <AE08> { [	8,	parenleft, 	braceleft,	Ograve		]	};+    key <AE09> { [	9,	parenright, 	braceright,	Ocircumflex	]	};+    key <AE10> { [	0,	equal, 	notequal,	Uacute			]	};+    key <AE11> { [	apostrophe,	question, 	questiondown, 	NoSymbol		]	};+    key <AE12> { [	dead_circumflex,dead_grave, 	dead_acute,	asciicircum		]	};+    key <AD01> { [	q,	Q, 	oe,		OE			]	};+    key <AD02> { [	w,	W, 	Greek_SIGMA,	Aacute			]	};+    key <AD03> { [ 	e,	E, 	EuroSign,	Ediaeresis		]	};+    key <AD04> { [ 	r,	R, 	registered,	Egrave			]	};+    key <AD05> { [ 	t,	T, 	dagger,		Icircumflex		]	}; +    key <AD06> { [	z,	Z, 	Greek_OMEGA,	Iacute			]	};+    key <AD07> { [ 	u,	U, 	degree,		Ugrave			]	};+    key <AD08> { [ 	i,	I, 	exclamdown,	idotless		]	};+    key <AD09> { [ 	o,	O, 	oslash,		Ooblique		]	};+    key <AD10> { [ 	p,	P, 	Greek_pi,	Greek_PI		]	};+    key <AD11> { [	udiaeresis,	egrave, 	section,	ydiaeresis		]	};+    key <AD12> { [	dead_diaeresis,	exclam, 	grave,		apostrophe		]	};+    key <AC01> { [ 	a,	A, 	aring,		Aring			]	};+    key <AC02> { [ 	s,	S, 	ssharp, 	NoSymbol		]	}; +					// ligature fl+    key <AC03> { [ 	d,	D, 	Greek_sigma,	NoSymbol		]	};+			// partialderivative is not available here att+    key <AC04> { [ 	f,	F, 	function,	doubledagger		]	};+    key <AC05> { [ 	g,	G, 	at,		comma			]	};+    key <AC06> { [ 	h,	H, 	ordfeminine,	periodcentered		]	};+    key <AC07> { [ 	j,	J,  	masculine,	eth	 		]	};+    key <AC08> { [ 	k,	K, 	Greek_DELTA,	macron			]	};+    key <AC09> { [ 	l,	L, 	notsign,	caret			]	};+    key <AC10> { [	odiaeresis,	eacute, 	cent,		breve	]	};+    key <AC11> { [	adiaeresis,	agrave, 	ae,		AE	]	};+    key <AB01> { [	y,	Y, 	yen,		Ydiaeresis		]	};+    key <AB02> { [ 	x,	X, 	similarequal,	trademark		]	};+    key <AB03> { [ 	c,	C, 	copyright,	NoSymbol		]	};+    key <AB04> { [ 	v,	V, 	radical,	diamond			]	};+    key <AB05> { [ 	b,	B, 	integral,	NoSymbol		]	};  +    key <AB06> { [ 	n,	N, 	dead_tilde, 	enopencircbullet	]       };+					// to be fixed att+    key <AB07> { [ 	m,	M, 	mu,		dead_abovering		]       };+					// not sure att+    key <AB08> { [	comma,	semicolon, 	guillemotleft,	guillemotright	]	};+    key <AB09> { [	period,	colon, 	ellipsis,	division		]	};+    key <AB10> { [	minus,	underscore, 	hyphen,		emdash		]	};+    key <TLDE> { [	section,	degree,   	NoSymbol, 	NoSymbol		]	};+			// ligature fi	// per mille+    key <SPCE> { [	space, 	nobreakspace,	nobreakspace		]	};+    key <LSGT> { [	less,	greater, 	lessthanequal,	greaterthanequal	]  	};+    key <BKSL> { [	dollar,	sterling, 	paragraph,	enfilledcircbullet	]	};++    include "kpdl(comma)"+    include "level3(ralt_switch)"+};++partial alphanumeric_keys +xkb_symbols "fr_mac" {++    // Describes the differences between a very simple US/ASCII+    // keyboard and a very simple Swiss/French keybaord++    include "ch(de_mac)"+    name[Group1]= "French (Switzerland, Macintosh)";++    override key <AD11> {+	[ egrave,	udiaeresis,  bracketleft	]+    };+    override key <AC10> {+	[ eacute,	odiaeresis	]+    };+    override key <AC11> {+	[ agrave,	adiaeresis,   braceleft		]+    };+};++// EXTRAS:++partial alphanumeric_keys+	xkb_symbols "sun_type6_de" {+	include "sun_vndr/ch(sun_type6_de)"+};++partial alphanumeric_keys+	xkb_symbols "sun_type6_fr" {+	include "sun_vndr/ch(sun_type6_fr)"+};
+ data/symbols/compose view
@@ -0,0 +1,89 @@+partial modifier_keys+xkb_symbols "ralt" {+    key <RALT>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "lwin" {+    key <LWIN>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "lwin-altgr" {+    key <LWIN>	{ type[Group1]="FOUR_LEVEL", [ Super_L, Super_L, Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "rwin" {+    key <RWIN>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "rwin-altgr" {+    key <RWIN>	{ type[Group1]="FOUR_LEVEL", [ Super_R, Super_R, Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "menu" {+    key <MENU>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "menu-altgr" {+    key <MENU>	{ type[Group1]="FOUR_LEVEL", [ Menu, Menu, Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "rctrl" {+    key <RCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "rctrl-altgr" {+    key <RCTL> { type[Group1]="FOUR_LEVEL", [ Control_R, Control_R, Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "lctrl" {+    key <LCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "lctrl-altgr" {+    key <LCTL> { type[Group1]="FOUR_LEVEL", [ Control_L, Control_L, Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "caps" {+    key <CAPS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "caps-altgr" {+    key <CAPS> { type[Group1]="FOUR_LEVEL", [ Caps_Lock, Caps_Lock, Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "102" {+    key <LSGT> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "102-altgr" {+    key <LSGT> { type[Group1]="FOUR_LEVEL", [ less, greater, Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "paus" {+    key <PAUS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "prsc" {+    key <PRSC> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};++partial modifier_keys+xkb_symbols "sclk" {+    key <SCLK> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };+};
+ data/symbols/ctrl view
@@ -0,0 +1,57 @@+// eliminate the caps lock key completely (replace with control)+partial modifier_keys +xkb_symbols "nocaps" {+    replace key <CAPS>	{  [ Control_L, Control_L ] };+    modifier_map  Control { <CAPS>, <LCTL> };+};++// replace left control with Meta+xkb_symbols "lctrl_meta" {+    replace key <LCTL>	{  [ Meta_L ] };+};++// swap the caps lock key with the left control key+partial modifier_keys +xkb_symbols "swapcaps" {+    replace key <CAPS>	{  [ Control_L ] };+    replace key <LCTL>	{  [ Caps_Lock ] };+};++// moves the control key to the middle row and the caps lock+// to the bottom row.  Only works if the geometry or keycodes+// file has defined appropriate aliases for the keys in question.+partial modifier_keys +xkb_symbols "ac_ctrl" {+    replace key <AC00>	{  [ Control_L ] };+    replace key <AA00>	{  [ Caps_Lock ] };+};++// Moves the control key to the bottom row and the caps lock+// to the middle row.  Only works if the geometry or keycodes+// file has defined appropriate aliases for the keys in question.+partial modifier_keys +xkb_symbols "aa_ctrl" {+    replace key <AA00>	{  [ Control_L ] };+    replace key <AC00>	{  [ Caps_Lock ] };+};++// Right Ctrl works as Right Alt+partial modifier_keys +xkb_symbols "rctrl_ralt" {+    key <RCTL>	{  symbols[Group1]= [ Alt_R ] };+};++// Menu works as Right Ctrl+partial modifier_keys+xkb_symbols "menu_rctrl" {+  replace key <MENU> { [ Control_R, Control_R ] };+  modifier_map Control { Control_L, <MENU> };+};++// right alt functions as another ctrl key+partial modifier_keys +xkb_symbols "ralt_rctrl" {+    replace key <RALT> { type[Group1]    = "TWO_LEVEL",+                         symbols[Group1] = [ Control_R, Control_R ] };+    modifier_map Control { <RALT> }; +};
+ data/symbols/cz view
@@ -0,0 +1,184 @@+partial default alphanumeric_keys +xkb_symbols "basic" {+     +     // This layout conforms to a new cz compromise standard designed +     // to satisfy most unix, windows and mac users.+     // 2001 by Kamil Toman <ktoman@email.cz>++    include "latin"++    name[Group1]= "Czech";++    key <TLDE>	{ [ semicolon, dead_abovering,    grave,   asciitilde ]	};+    key <AE01>	{ [      plus,          1,       exclam,   dead_tilde ]	};+    key <AE02>	{ [    ecaron,          2,           at,   dead_caron ]	};+    key <AE03>	{ [    scaron,          3,   numbersign, dead_circumflex ] };+    key <AE04>	{ [    ccaron,          4,       dollar,   dead_breve ]	};+    key <AE05>	{ [    rcaron,          5,      percent, dead_abovering ] };+    key <AE06>	{ [    zcaron,          6,  asciicircum,  dead_ogonek ]	};+    key <AE07>	{ [    yacute,          7,    ampersand,   dead_grave ]	};+    key <AE08>	{ [    aacute,          8,     asterisk, dead_abovedot]	};+    key <AE09>	{ [    iacute,          9,    braceleft,   dead_acute ]	};+    key <AE10>	{ [    eacute,          0,   braceright, dead_doubleacute ] };+    key <AE11>	{ [     equal,    percent,     NoSymbol, dead_diaeresis ] };+    key <AE12>	{ [dead_acute, dead_caron,  dead_macron, dead_cedilla ]	};++    key <AD01>	{ [         q,          Q,    backslash,     NoSymbol ]	};+    key <AD02>	{ [         w,          W,          bar,     Nosymbol ]	};+    key <AD03>	{ [         e,          E,     EuroSign,     NoSymbol ]	};+    key <AD04>	{ [         r,          R,     NoSymbol,     NoSymbol ]	};+    key <AD05>	{ [         t,          T,     NoSymbol,     NoSymbol ]	};+    key <AD06>	{ [         z,          Z,     NoSymbol,     NoSymbol ]	};+    key <AD07>	{ [         u,          U,     NoSymbol,     NoSymbol ]	};+    key <AD08>	{ [         i,          I,     NoSymbol,     NoSymbol ]	};+    key <AD09>	{ [         o,          O,     NoSymbol,     NoSymbol ]	};+    key <AD10>	{ [         p,          P,     NoSymbol,     NoSymbol ]	};++    key <AD11>	{ [    uacute,      slash,  bracketleft,     division ]	};+    key <AD12>	{ [parenright,  parenleft, bracketright,     multiply ]	};++    key <AC01>	{ [         a,          A,   asciitilde,     NoSymbol ]	};+    key <AC02>	{ [         s,          S,      dstroke,     NoSymbol ]	};+    key <AC03>	{ [         d,          D,      Dstroke,     NoSymbol ]	};+    key <AC04>	{ [         f,          F,  bracketleft,     NoSymbol ]	};+    key <AC05>	{ [         g,          G, bracketright,     NoSymbol ]	};+    key <AC06>	{ [         h,          H,        grave,     NoSymbol ]	};+    key <AC07>	{ [         j,          J,   apostrophe,     NoSymbol ]	};+    key <AC08>	{ [         k,          K,      lstroke,     NoSymbol ]	};+    key <AC09>	{ [         l,          L,      Lstroke,     NoSymbol ]	};+                  +    key <AC10>	{ [     uring,   quotedbl,       dollar,     NoSymbol ]	};+    key <AC11>	{ [   section,     exclam,   apostrophe,       ssharp ]	};+    key <AC12>	{ [  EuroSign, dead_diaeresis, NoSymbol,     NoSymbol ]	};+    key <BKSL>	{ [dead_diaeresis, apostrophe, backslash,         bar ]	};++    key <LSGT>	{ [ backslash,        bar,        slash,     NoSymbol ]	};+    key <AB01>	{ [         y,          Y,       degree,     NoSymbol ]	};+    key <AB02>	{ [         x,          X,   numbersign,     Nosymbol ]	};+    key <AB03>	{ [         c,          C,    ampersand,     NoSymbol ]	};+    key <AB04>	{ [         v,          V,           at,     NoSymbol ]	};+    key <AB05>	{ [         b,          B,    braceleft,     NoSymbol ]	};+    key <AB06>	{ [         n,          N,   braceright,     NoSymbol ]	};+    key <AB07>	{ [         m,          M,  asciicircum,     NoSymbol ]	};+    key <AB08>	{ [     comma,   question,         less,     NoSymbol ]	};+    key <AB09>	{ [    period,      colon,      greater,     NoSymbol ]	};+    key <AB10>	{ [     minus, underscore,     asterisk,     NoSymbol ]	};++    key <SPCE>	{ [     space,      space,        space,       space ]	};++    include "level3(ralt_switch)"+};++// Use <BKSL> instead of <LSGT> (useful for keyboard without <LSGT> key)+xkb_symbols "bksl" {+    include "cz(basic)"+    name[Group1]= "Czech (with <\|> key)";++    key <BKSL>	{ [ backslash,        bar,        slash,     NoSymbol ]	};+};++partial alphanumeric_keys +xkb_symbols "qwerty" {+ +    // This layout represent actual keyboard layout. It complies with symbols+    // printed on keys.+    // -----------------------------------------------------------------------+    // This layout was created in 2011 by Lukáš Mojžíš <lmojzis@grenames.cz>+    +    include "cz(basic)"+    name[Group1]= "Czech (qwerty)";++    key <AB01>	{ [         z,          Z,       degree,         NoSymbol ] };+    key <AC10>	{ [     uring,   quotedbl,    semicolon,            colon ] };+    key <AC11>	{ [   section,     exclam,   apostrophe,           ssharp ] };+    key <AD06>	{ [         y,          Y,     NoSymbol,         NoSymbol ] };+    key <AD11>	{ [    uacute,      slash,  bracketleft,        braceleft ] };+    key <AD12>	{ [parenright,  parenleft, bracketright,       braceright ] };+    key <AE09>	{ [    iacute,          9,    parenleft,       dead_acute ] };+    key <AE10>	{ [    eacute,          0,   parenright, dead_doubleacute ] };+};++// Use <BKSL> instead of <LSGT> (useful for keyboard without <LSGT> key)+xkb_symbols "qwerty_bksl" {+    include "cz(qwerty)"++    name[Group1]= "Czech (qwerty, extended Backslash)";++    key <BKSL>	{ [ backslash,        bar,        slash,     NoSymbol ]	};+};++partial alphanumeric_keys alternate_group+xkb_symbols "ucw" {++    // This layout is usually used as the second group, it contains+    // accented characters only, no 'latin' set.+    // 2008 by Milan Vancura <mvancura@suse.cz>++    name[Group1]= "Czech (UCW layout, accented letters only)";++    key <AB01> { [zcaron,      Zcaron      ] };+    key <AB02> { [ssharp                   ] };+    key <AB03> { [ccaron,      Ccaron      ] };+    key <AB04> { [ccedilla,    Ccedilla    ] };+    key <AB05> { [ntilde,      Ntilde      ] };+    key <AB06> { [ncaron,      Ncaron      ] };+    key <AB07> { [lacute,      Lacute      ] };++    key <AC01> { [aacute,      Aacute      ] };+    key <AC02> { [scaron,      Scaron      ] };+    key <AC03> { [dcaron,      Dcaron      ] };+    key <AC04> { [ediaeresis,  Ediaeresis  ] };+    key <AC05> { [racute,      Racute      ] };+    key <AC06> { [uacute,      Uacute      ] };+    key <AC07> { [udiaeresis,  Udiaeresis  ] };+    key <AC08> { [ocircumflex, Ocircumflex ] };+    key <AC09> { [lcaron,      Lcaron      ] };++    key <AD01> { [adiaeresis,  Adiaeresis  ] };+    key <AD02> { [ecaron,      Ecaron      ] };+    key <AD03> { [eacute,      Eacute      ] };+    key <AD04> { [rcaron,      Rcaron      ] };+    key <AD05> { [tcaron,      Tcaron      ] };+    key <AD06> { [yacute,      Yacute      ] };+    key <AD07> { [uring,       Uring       ] };+    key <AD08> { [iacute,      Iacute      ] };+    key <AD09> { [oacute,      Oacute      ] };+    key <AD10> { [odiaeresis,  Odiaeresis  ] };+};++partial alphanumeric_keys+xkb_symbols "dvorak-ucw" {++    // US Dvorak layout extend with UCW - AltGr produces accented characters++    include "us(dvorak)"++    name[Group1]= "Czech (US Dvorak with CZ UCW support)";++    key <AB03> { [ j, J, eacute, Eacute ] };+    key <AB04> { [ k, K, uacute, Uacute ] };+    key <AB10> { [ z, Z, zcaron, Zcaron ] };++    key <AC01> { [ a, A, aacute, Aacute ] };+    key <AC02> { [ o, O, oacute, Oacute ] };+    key <AC03> { [ e, E, ecaron, Ecaron ] };+    key <AC04> { [ u, U, uring,  Uring  ] };+    key <AC05> { [ i, I, iacute, Iacute ] };+    key <AC06> { [ d, D, dcaron, Dcaron ] };+    key <AC08> { [ t, T, tcaron, Tcaron ] };+    key <AC09> { [ n, N, ncaron, Ncaron ] };+    key <AC10> { [ s, S, scaron, Scaron ] };++    key <AD05> { [ y, Y, yacute, Yacute ] };+    key <AD08> { [ c, C, ccaron, Ccaron ] };+    key <AD09> { [ r, R, rcaron, Rcaron ] };++    include "level3(ralt_switch)"+};++// EXTRAS:++partial alphanumeric_keys+	xkb_symbols "sun_type6" {+	include "sun_vndr/cz(sun_type6)"+};
+ data/symbols/de view
@@ -0,0 +1,735 @@+// based on a keyboard map from an 'xkb/symbols/de' file++default+xkb_symbols "basic" {++    include "latin(type4)"++    name[Group1]="German";++    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};+    key <AE03>	{ [         3,    section, threesuperior,    sterling ]	};+    key <AE04>	{ [         4,     dollar,   onequarter,     currency ]	};++    key <AE11> {type[Group1]="FOUR_LEVEL_PLUS_LOCK",  symbols[Group1]=+                  [ssharp, question, backslash, questiondown, 0x1001E9E ]};+// The unicode capital letter sharp s U+1E9E is transformed to "SS"+// to match the rules for capitalizing sharp s in german.+// If the capital sharp s is needed, delete the line+// starting with <U1E9C> from /usr/share/X11/locale/iso8859-15/Compose.+// If both doubled S and capital sharp s are needed, use  0x1001E9E+// for capital sharp s and some free unicode codepoint like 0x1001E9C+// for doubled S. Don`t forget to change this in the Compose file, too.++    key <AE12>	{ [dead_acute, dead_grave, dead_cedilla,  dead_ogonek ]	};++    key <AD03>	{ [         e,          E,     EuroSign,     EuroSign ]	};+    key <AD06>	{ [         z,          Z,    leftarrow,          yen ]	};+    key <AD11>	{ [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };+    key <AD12>	{ [      plus,   asterisk,   asciitilde,  macron ]	};++    key <AC02>  { [         s,          S,                U017F,     U1E9E    ] };+    key <AC07>  { [         j,          J,        dead_belowdot, dead_abovedot   ] };+    key <AC10>	{ [odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] };+    key <AC11>	{ [adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] };+    key <TLDE>	{ [dead_circumflex, degree,	U2032,    U2033	] };++    key <BKSL>	{ [numbersign, apostrophe, rightsinglequotemark,   dead_breve ]	};+    key <AB01>	{ [         y,          Y,       guillemotright,    U203A 	] };+    key <AB02>	{ [         x,          X,        guillemotleft,    U2039 	] };+    key <AB04>	{ [         v,          V,   doublelowquotemark, singlelowquotemark ]	};+    key <AB05>	{ [         b,          B,  leftdoublequotemark, leftsinglequotemark ] };+    key <AB06>	{ [         n,          N, rightdoublequotemark, rightsinglequotemark ]	};    +    key <AB08>  { [     comma,  semicolon,       periodcentered,     multiply	] };+    key <AB09>	{ [    period,      colon,                U2026,     division 	] };+    key <AB10>	{ [     minus, underscore,               endash,     emdash	] };++    include "kpdl(comma)"++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "legacy" {+    // previous standard German layout with tilde as dead key++    include "de(basic)"+    name[Group1]="German (legacy)";++    key <AD12>	{ [      plus,   asterisk,   dead_tilde,  dead_macron ]	};+};++partial alphanumeric_keys+xkb_symbols "nodeadkeys" {++    // modify the basic German layout to not have any dead keys++    include "de(basic)"+    name[Group1]="German (eliminate dead keys)";++    key <TLDE>	{ [asciicircum,    degree,      notsign,      notsign ]	};+    key <AE12>	{ [     acute,      grave,      cedilla,      cedilla ]	};+    key <AD11>	{ [udiaeresis, Udiaeresis,    diaeresis,    diaeresis ]	};+    key <AD12>	{ [      plus,   asterisk,   asciitilde,       macron ]	};+    key <AC10>	{ [odiaeresis, Odiaeresis,  doubleacute,  doubleacute ]	};+    key <AC11>	{ [adiaeresis, Adiaeresis,  asciicircum,  asciicircum ]	};+    key <BKSL>	{ [numbersign, apostrophe,        grave,        grave ]	};+};++partial alphanumeric_keys+xkb_symbols "deadgraveacute" {+    // modify the basic German layout to have only acute and grave+    // as dead keys (tilde and circumflex are needed as spacing characters+    // in many programming languages)++    include "de(basic)"+    name[Group1]="German (dead grave acute)";++    key <TLDE>	{ [asciicircum,    degree,      notsign,      notsign ]	};+    key <AD12>	{ [      plus,   asterisk,   asciitilde,  dead_macron ]	};+    key <BKSL>	{ [numbersign, apostrophe,        grave,        grave ]	};+};++partial alphanumeric_keys+xkb_symbols "deadacute" {+    // modify the basic German layout to have only acute as+    // dead keys (ASCII grave, tilde and circumflex are needed as+    // spacing characters in many programming languages and text formatters)++    include "de(deadgraveacute)"++    name[Group1]="German (dead acute)";++    key <AE12>	{ [dead_acute,      grave, dead_cedilla,  dead_ogonek ]	};+    key <BKSL>	{ [numbersign, apostrophe,   dead_grave,   dead_grave ]	};+};+++partial alphanumeric_keys+xkb_symbols "T3" {+    include "latin(type4)"++    name[Group1]="German (T3)";++    key.type[Group1] = "EIGHT_LEVEL";+    key <TLDE> { [ dead_circumflex,          degree,        multiply,        NoSymbol,           U204A,            hyphen,             bar,        NoSymbol ] };+    key <AE01> { [               1,          exclam, rightsinglequotemark,   NoSymbol,     onesuperior,        exclamdown,           U02B9,        NoSymbol ] };+    key <AE02> { [               2,        quotedbl,     twosuperior,        NoSymbol,     twosuperior,          currency,           U02BA,        NoSymbol ] };+    key <AE03> { [               3,         section,   threesuperior,        NoSymbol,   threesuperior,          sterling,           U02BF,        NoSymbol ] };+    key <AE04> { [               4,          dollar,          emdash,        NoSymbol,      onequarter,            0x20AC,           U02BE,        NoSymbol ] };+    key <AE05> { [               5,         percent,      exclamdown,        NoSymbol,         onehalf,           uparrow,           U02C1,        NoSymbol ] };+    key <AE06> { [               6,       ampersand,    questiondown,        NoSymbol,   threequarters,         downarrow,           U02C0,        NoSymbol ] };+    key <AE07> { [               7,           slash,       braceleft,        NoSymbol,       oneeighth,         leftarrow,       braceleft,        NoSymbol ] };+    key <AE08> { [               8,       parenleft,     bracketleft,        NoSymbol,    threeeighths,        rightarrow,      braceright,        NoSymbol ] };+    key <AE09> { [               9,      parenright,    bracketright,        NoSymbol,     fiveeighths,         plusminus,     bracketleft,        NoSymbol ] };+    key <AE10> { [               0,           equal,      braceright,        NoSymbol,    seveneighths,         trademark,    bracketright,        NoSymbol ] };+    key <AE11> { [          ssharp,        question,       backslash,        NoSymbol,       backslash,      questiondown,           U02BB,        NoSymbol ] };+    key <AE12> { [      dead_acute,      dead_grave,   dead_abovedot,        NoSymbol,    dead_cedilla,       dead_ogonek,         notsign,        NoSymbol ] };++    key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";+    key <AD01> { [               q,               Q,              at,        NoSymbol,           U0242,           U0241,           U030D,        NoSymbol ] };+    key <AD02> { [               w,               W,      dead_caron,        NoSymbol,           U02B7,           U2126,   dead_abovedot,        NoSymbol ] };+    key <AD03> { [               e,               E,        EuroSign,        NoSymbol,              oe,              OE,      dead_breve,        NoSymbol ] };+    key <AD04> { [               r,               R,  dead_diaeresis,        NoSymbol,       paragraph,      registered, dead_circumflex,        NoSymbol ] };+    key <AD05> { [               t,               T,     dead_macron,        NoSymbol,           UA78C,           UA78B,  dead_diaeresis,        NoSymbol ] };+    key <AD06> { [               z,               Z, dead_doubleacute,       NoSymbol,           U027C,             yen, dead_invertedbreve,     NoSymbol ] };+    key <AD07> { [               u,               U,      dead_breve,        NoSymbol,           U0223,           U0222,      dead_caron,        NoSymbol ] };+    key <AD08> { [               i,               I,      dead_tilde,        NoSymbol,        idotless,           U214D, dead_abovecomma,        NoSymbol ] };+    key <AD09> { [               o,               O,  dead_abovering,        NoSymbol,          oslash,          Oslash,       dead_horn,        NoSymbol ] };+    key <AD10> { [               p,               P,       dead_hook,        NoSymbol,           thorn,           THORN,       dead_hook,        NoSymbol ] };+    key <AD11> { [      udiaeresis,      Udiaeresis,       dead_horn,        NoSymbol,           U017F,  dead_abovering,      dead_grave,        NoSymbol ] };+    key.type[Group1] = "EIGHT_LEVEL";+    key <AD12> { [            plus,        asterisk,      asciitilde,        NoSymbol,      dead_tilde,     dead_macron,              at,        NoSymbol ] };++    key.type[Group1] = "ONE_LEVEL";+    key <CAPS>  { [ Caps_Lock	]	};+    key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";+    key <AC01> { [               a,               A,   lessthanequal,        NoSymbol,              ae,              AE,           U0329,        NoSymbol ] };+    key <AC02> { [               s,               S, greaterthanequal,       NoSymbol,          ssharp,         section,   dead_belowdot,        NoSymbol ] };+    key <AC03> { [               d,               D,           U2300,        NoSymbol,             eth,             ETH, dead_belowbreve,        NoSymbol ] };+    key <AC04> { [               f,               F,         minutes,        NoSymbol,           U0294,     ordfeminine, dead_belowcircumflex,   NoSymbol ] };+    key <AC05> { [               g,               G,         seconds,        NoSymbol,             eng,             ENG, dead_belowmacron,       NoSymbol ] };+    key <AC06> { [               h,               H,           U1E9E,        NoSymbol,           U0272,           U019D,           U0332,        NoSymbol ] };+    key <AC07> { [               j,               J,    dead_cedilla,        NoSymbol,           U0133,           U0132,  dead_belowring,        NoSymbol ] };+    key <AC08> { [               k,               K, dead_belowcomma,        NoSymbol,             kra, dead_belowcomma,           U0335,        NoSymbol ] };+    key <AC09> { [               l,               L,     dead_ogonek,        NoSymbol,         lstroke,         Lstroke,           U0338,        NoSymbol ] };+    key <AC10> { [      odiaeresis,      Odiaeresis,   dead_belowdot,        NoSymbol,      dead_acute, dead_doubleacute,         degree,        NoSymbol ] };+    key <AC11> { [      adiaeresis,      Adiaeresis,     dead_stroke,        NoSymbol,           U019B,           U1E9E,         minutes,        NoSymbol ] };+    key.type[Group1] = "EIGHT_LEVEL";+    key <BKSL> { [      numbersign,      apostrophe,      registered,        NoSymbol,           schwa,           SCHWA,         seconds,        NoSymbol ] };++    key <LSGT> { [            less,         greater,             bar,        NoSymbol,           U0149,       brokenbar,           U266A,        NoSymbol ] };+    key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";+    key <AB01> { [               y,               Y,           U203A,        NoSymbol,           U0292,           U01B7,   guillemotleft,        NoSymbol ] };+    key <AB02> { [               x,               X,  guillemotright,        NoSymbol, doublelowquotemark, singlelowquotemark, guillemotright,   NoSymbol ] };+    key <AB03> { [               c,               C,       copyright,        NoSymbol,            cent,       copyright,  Greek_horizbar,        NoSymbol ] };+    key <AB04> { [               v,               V,   guillemotleft,        NoSymbol, leftdoublequotemark, leftsinglequotemark,   U2039,        NoSymbol ] };+    key <AB05> { [               b,               B,           U2039,        NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A,        NoSymbol ] };+    key <AB06> { [               n,               N,          endash,        NoSymbol,           U019E,           U0220,          endash,        NoSymbol ] };+    key <AB07> { [               m,               M,        Greek_mu,        NoSymbol,              mu,       masculine,          emdash,        NoSymbol ] };+    key.type[Group1] = "EIGHT_LEVEL";+    key <AB08> { [           comma,       semicolon,           U02BB,        NoSymbol,        ellipsis,        multiply,          dollar,        NoSymbol ] };+    key <AB09> { [          period,           colon,           U200C,        NoSymbol,  periodcentered,        division,      numbersign,        NoSymbol ] };+    key <AB10> { [           minus,      underscore,          hyphen,        NoSymbol,           U0140,           U013F,           U2011,        NoSymbol ] };++    key <SPCE> { [           space,           space,    nobreakspace,        NoSymbol,           U202F,           U200C,    nobreakspace,        NoSymbol ] };++    include "kpdl(comma)"++    // We do not support the correct level selection mechanism yet, this is+    //just for testing:+    include "level5(rctrl_switch)"+    include "level3(ralt_switch)"+ };++partial alphanumeric_keys+xkb_symbols "ro" {+    // add romanian-specific letters to the basic German layout.+    // Romanian symbols are accessible with combination of <AltGr> and+    // 'a', 's', 't', 'i', 'ä (&auml)' (+<Shift> for capital letters).+    // To view romanian-specific symbols, add "export LC_CTYPE=ro_RO"+    // or "export LC_CTYPE=de_DE.utf8" to your .profile.++    include "de(basic)"++    name[Group1]="Romanian (Germany)";++    key <AD05> { [         t,    T,           tcedilla,     Tcedilla    ] };+    key <AD08> { [         i,    I,        icircumflex,  Icircumflex    ] };+    key <AC01> { [         a,    A,        acircumflex,  Acircumflex    ] };+    key <AC02> { [         s,    S,           scedilla,     Scedilla    ] };+    key <AC11> { [ adiaeresis,   Adiaeresis,    abreve,       Abreve    ] };+};++partial alphanumeric_keys+xkb_symbols "ro_nodeadkeys" {+    // add romanian-specific letters to the German nodeadkeys layout.+    // Read the comment for de_ro !++    include "de(nodeadkeys)"+    name[Group1]="Romanian (Germany, eliminate dead keys)";++    key <AD05> { [         t,    T,           tcedilla,     Tcedilla    ] };+    key <AD08> { [         i,    I,        icircumflex,  Icircumflex    ] };+    key <AC01> { [         a,    A,        acircumflex,  Acircumflex    ] };+    key <AC02> { [         s,    S,           scedilla,     Scedilla    ] };+    key <AC11> { [ adiaeresis,   Adiaeresis, abreve,       Abreve       ] };+};++// German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten)+// Have acute and grave as dead keys, tilde and circumflex alive as they are needed +// in many programming languages.+// to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de+// source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php+partial alphanumeric_keys +xkb_symbols "dvorak" {+    include "us(dvorak)"++    name[Group1]="German (Dvorak)";++    key <TLDE> { [ asciicircum, degree ] };++    key <AE01> { [ 1, exclam, onesuperior ] };+    key <AE02> { [ 2, quotedbl, twosuperior ] };+    key <AE03> { [ 3, section, threesuperior ] };+    key <AE04> { [ 4, dollar, bar ] };+    key <AE05> { [ 5, percent, bar ] };+    key <AE06> { [ 6, ampersand, brokenbar ] };+    key <AE07> { [ 7, slash, braceleft ] };+    key <AE08> { [ 8, parenleft, bracketleft ] };+    key <AE09> { [ 9, parenright, bracketright ] };+    key <AE10> { [ 0, equal, braceright ] };+    key <AE11> { [ plus, asterisk, asciitilde ] };+    key <AE12> { [ less, greater, dead_grave ] };++    key <AD01> { [ udiaeresis, Udiaeresis, at ] };+    key <AD02> { [ comma, semicolon, dead_diaeresis ] };+    key <AD03> { [ period, colon ] };+    key <AD08> { [ c, C, copyright, Cacute ] };+    key <AD09> { [ t, T, trademark ] };+    key <AD10> { [ z, Z, zabovedot, Zabovedot ] };+    key <AD11> { [ question, ssharp ] };+    key <AD12> { [ slash, backslash, dead_acute ] };++    key <AC01> { [ a, A, at, aogonek ] };+    key <AC02> { [ o, O, oacute, Oacute ] };+    key <AC03> { [ e, E, EuroSign, eogonek ] };+    key <AC04> { [ i, I ] };+    key <AC05> { [ u, U ] };+    key <AC06> { [ h, H ] };+    key <AC07> { [ d, D ] };+    key <AC08> { [ r, R, registered ] };+    key <AC09> { [ n, N, nacute, Nacute ] };+    key <AC10> { [ s, S, sacute, Sacute] };+    key <AC11> { [ l, L, lstroke, Lstroke ] };++    key <AB01> { [ odiaeresis, Odiaeresis ] };+    key <AB02> { [ q, Q, at ] };+    key <AB07> { [ m, M, mu ] };+    key <AB10> { [ numbersign, apostrophe ] };++    key <BKSL> { [ minus, underscore, hyphen, diaeresis] };++    key <LSGT> { [ adiaeresis, Adiaeresis, bar ] };++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "Sundeadkeys" {++    // For naming consistency++    include "de(basic)"++};++partial alphanumeric_keys+xkb_symbols "sundeadkeys" {++    // For naming consistency++    include "de(Sundeadkeys)"++    name[Group1]="German (Sun dead keys)";+};+++// German Neo-Layout Version 2+// adopted 2004 by Hanno Behrens <Hanno.Behrens@gmx.de>+// inspired by Dvorak/de-ergo  http://www.goebel-consult.de/de-ergo/+//+// Authors: +//      Stephan Hilb <stephan at ehilb dot de>+//      <lucky at zankt dot net>+//      Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany>+//      Erik Streb <mail at erikstreb dot de>+//        and many other contributors+//+//      http://www.neo-layout.org+//+// $Revision$, $Date$++partial alphanumeric_keys modifier_keys keypad_keys+xkb_symbols "neo_base" {++    // Levels in Neo jargon+    // --------------------------------------------------------------+    // Ebene 1: normal+    // Ebene 2: Shift+    // Ebene 3: Mod3+    // Ebene 4: Mod4 (for marking something use Shift + Mod4)+    // Ebene 5: Shift + Mod3+    // Ebene 6: Mod3 + Mod4+    // Compose (not a level): Mod3 + Tab+    // Feststelltaste (Capslock): Shift + Shift+    // Mod4-Lock: Mod4 + Mod4+    // Mod4-Lock: Shift + Mod3 + Tab++    // Legend+    // ===============+    // Levels in Xkbmap jargon to be found here in the definitions. +    // These are the levels used, and Xorg's translations:+    // --------------------------------------------------------------+    // Xorg:       Level1                   Level2                   Level3                   Level4                   Level5                   Level6                   Level7                   Level8                   +    // Neo:        Ebene1                   Ebene2                   Ebene3                   Ebene5                   Ebene4                   Pseudo-Ebene             Ebene6                   ???                      +    // Keys (Neo): None                     Shift                    Mod3                     Mod3 + Shift             Mod4                     Mod4 + Shift             Mod3 + Mod4              Mod3 + Mod4 + Shift      +++    // Alphanumeric-keys+    // ===============+    key.type[Group1] = "EIGHT_LEVEL";++    // Tab as Multi_key (Compose)+    // --------------------------------------------------------------+    key  <TAB> { [ Tab,                     ISO_Left_Tab,            Multi_key,               ISO_Level5_Lock,         NoSymbol,                NoSymbol,                NoSymbol,                ISO_Level5_Lock          ] };+++    // Number row+    // --------------------------------------------------------------+    key <TLDE> { [ dead_circumflex,         dead_caron,              U21BB,                   U02DE,                   dead_abovedot,           Pointer_EnableKeys,      dead_belowdot,           NoSymbol                 ] };++    key <AE01> { [ 1,                       degree,                  onesuperior,             onesubscript,            ordfeminine,             NoSymbol,                notsign,                 NoSymbol                 ] };+    key <AE02> { [ 2,                       section,                 twosuperior,             twosubscript,            masculine,               NoSymbol,                logicalor,               NoSymbol                 ] };+    key <AE03> { [ 3,                       U2113,                   threesuperior,           threesubscript,          numerosign,              NoSymbol,                logicaland,              NoSymbol                 ] };+    key <AE04> { [ 4,                       guillemotright,          U203A,                   femalesymbol,            NoSymbol,                NoSymbol,                U22A5,                   NoSymbol                 ] };+    key <AE05> { [ 5,                       guillemotleft,           U2039,                   malesymbol,              periodcentered,          NoSymbol,                U2221,                   NoSymbol                 ] };+    key <AE06> { [ 6,                       dollar,                  cent,                    U26A5,                   sterling,                NoSymbol,                U2225,                   NoSymbol                 ] };++    key <AE07> { [ 7,                       EuroSign,                yen,                     U03F0,                   currency,                NoSymbol,                rightarrow,              NoSymbol                 ] };+    key <AE08> { [ 8,                       doublelowquotemark,      singlelowquotemark,      U27E8,                   Tab,                     ISO_Left_Tab,            U221E,                   NoSymbol                 ] };+    key <AE09> { [ 9,                       leftdoublequotemark,     leftsinglequotemark,     U27E9,                   KP_Divide,               KP_Divide,               variation,               NoSymbol                 ] };+    key <AE10> { [ 0,                       rightdoublequotemark,    rightsinglequotemark,    zerosubscript,           KP_Multiply,             KP_Multiply,             emptyset,                NoSymbol                 ] };++    key <AE11> { [ minus,                   emdash,                  NoSymbol,                U2011,                   KP_Subtract,             KP_Subtract,             hyphen,                  NoSymbol                 ] };+    key <AE12> { [ dead_grave,              dead_cedilla,            dead_abovering,          dead_dasia,              dead_diaeresis,          NoSymbol,                dead_macron,             NoSymbol                 ] };++    // Top row+    // --------------------------------------------------------------+    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";+    key <AD01> { [ x,                       X,                       ellipsis,                Greek_xi,                Prior,                   Prior,                   Greek_XI,                NoSymbol                 ] };+    key <AD02> { [ v,                       V,                       underscore,              NoSymbol,                BackSpace,               BackSpace,               radical,                 NoSymbol                 ] };+    key <AD03> { [ l,                       L,                       bracketleft,             Greek_lambda,            Up,                      Up,                      Greek_LAMBDA,            NoSymbol                 ] };+    key <AD04> { [ c,                       C,                       bracketright,            Greek_chi,               Delete,                  Delete,                  U2102,                   NoSymbol                 ] };+    key <AD05> { [ w,                       W,                       asciicircum,             Greek_omega,             Next,                    Next,                    Greek_OMEGA,             NoSymbol                 ] };++    key <AD06> { [ k,                       K,                       exclam,                  Greek_kappa,             exclamdown,              NoSymbol,                multiply,                NoSymbol                 ] };+    key <AD07> { [ h,                       H,                       less,                    Greek_psi,               KP_7,                    KP_7,                    Greek_PSI,               NoSymbol                 ] };+    key <AD08> { [ g,                       G,                       greater,                 Greek_gamma,             KP_8,                    KP_8,                    Greek_GAMMA,             NoSymbol                 ] };+    key <AD09> { [ f,                       F,                       equal,                   Greek_phi,               KP_9,                    KP_9,                    Greek_PHI,               NoSymbol                 ] };+    key <AD10> { [ q,                       Q,                       ampersand,               U03D5,                   KP_Add,                  KP_Add,                  U211A,                   NoSymbol                 ] };++    key <AD11> { [ ssharp,                  U1E9E,                   U017F,                   Greek_finalsmallsigma,   U2212,                   NoSymbol,                jot,                     NoSymbol                 ] };++    key.type[Group1] = "EIGHT_LEVEL";+    key <AD12> { [ dead_acute,              dead_tilde,              dead_stroke,             dead_psili,              dead_doubleacute,        NoSymbol,                dead_breve,              NoSymbol                 ] };++    // Middle row+    // --------------------------------------------------------------+    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";+    key <AC01> { [ u,                       U,                       backslash,               NoSymbol,                Home,                    Home,                    includedin,              NoSymbol                 ] };+    key <AC02> { [ i,                       I,                       slash,                   Greek_iota,              Left,                    Left,                    integral,                NoSymbol                 ] };+    key <AC03> { [ a,                       A,                       braceleft,               Greek_alpha,             Down,                    Down,                    U2200,                   NoSymbol                 ] };+    key <AC04> { [ e,                       E,                       braceright,              Greek_epsilon,           Right,                   Right,                   U2203,                   NoSymbol                 ] };+    key <AC05> { [ o,                       O,                       asterisk,                Greek_omicron,           End,                     End,                     elementof,               NoSymbol                 ] };++    key <AC06> { [ s,                       S,                       question,                Greek_sigma,             questiondown,            NoSymbol,                Greek_SIGMA,             NoSymbol                 ] };+    key <AC07> { [ n,                       N,                       parenleft,               Greek_nu,                KP_4,                    KP_4,                    U2115,                   NoSymbol                 ] };+    key <AC08> { [ r,                       R,                       parenright,              Greek_rho,               KP_5,                    KP_5,                    U211D,                   NoSymbol                 ] };+    key <AC09> { [ t,                       T,                       minus,                   Greek_tau,               KP_6,                    KP_6,                    partialderivative,       NoSymbol                 ] };+    key <AC10> { [ d,                       D,                       colon,                   Greek_delta,             KP_Separator,            comma,                   Greek_DELTA,             NoSymbol                 ] };++    key <AC11> { [ y,                       Y,                       at,                      Greek_upsilon,           period,                  KP_Decimal,              nabla,                   NoSymbol                 ] };++    // Bottom row+    // --------------------------------------------------------------+    key <AB01> { [ udiaeresis,              Udiaeresis,              numbersign,              NoSymbol,                Escape,                  Escape,                  union,                   NoSymbol                 ] };+    key <AB02> { [ odiaeresis,              Odiaeresis,              dollar,                  U03F5,                   Tab,                     Tab,                     intersection,            NoSymbol                 ] };+    key <AB03> { [ adiaeresis,              Adiaeresis,              bar,                     Greek_eta,               Insert,                  Insert,                  U2135,                   NoSymbol                 ] };+    key <AB04> { [ p,                       P,                       asciitilde,              Greek_pi,                Return,                  Return,                  Greek_PI,                NoSymbol                 ] };+    key <AB05> { [ z,                       Z,                       grave,                   Greek_zeta,              Undo,                    Redo,                    U2124,                   NoSymbol                 ] };++    key <AB06> { [ b,                       B,                       plus,                    Greek_beta,              colon,                   NoSymbol,                U21D0,                   NoSymbol                 ] };+    key <AB07> { [ m,                       M,                       percent,                 Greek_mu,                KP_1,                    KP_1,                    ifonlyif,                NoSymbol                 ] };+    key.type[Group1] = "EIGHT_LEVEL";+    key <AB08> { [ comma,                   endash,                  quotedbl,                U03F1,                   KP_2,                    KP_2,                    U21D2,                   NoSymbol                 ] };+    key <AB09> { [ period,                  enfilledcircbullet,      apostrophe,              U03D1,                   KP_3,                    KP_3,                    U21A6,                   NoSymbol                 ] };+    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";+    key <AB10> { [ j,                       J,                       semicolon,               Greek_theta,             semicolon,               NoSymbol,                Greek_THETA,             NoSymbol                 ] };+    key.type[Group1] = "EIGHT_LEVEL";++    // Space key+    // --------------------------------------------------------------+    key <SPCE> { [ space,                   space,                   space,                   nobreakspace,            KP_0,                    KP_0,                    U202F,                   NoSymbol                 ] };+++    // Keypad-keys+    // ===============++    // The former Numlock key:+    key <NMLK> { [ Tab,                     ISO_Left_Tab,            equal,                   approxeq,                notequal,                Pointer_EnableKeys,      identical,               NoSymbol                 ] };++    // Topmost row+    // --------------------------------------------------------------+    key <KPDV> { [ KP_Divide,               KP_Divide,               division,                U2300,                   U2215,                   NoSymbol,                U2223,                   NoSymbol                 ] };+    key <KPMU> { [ KP_Multiply,             KP_Multiply,             U22C5,                   U2299,                   multiply,                NoSymbol,                U2297,                   NoSymbol                 ] };+    key <KPSU> { [ KP_Subtract,             KP_Subtract,             U2212,                   U2296,                   U2216,                   NoSymbol,                U2238,                   NoSymbol                 ] };++    // Top row+    // --------------------------------------------------------------+    key  <KP7> { [ KP_7,                    U2714,                   U2195,                   U226A,                   KP_Home,                 KP_Home,                 upstile,                 NoSymbol                 ] };+    key  <KP8> { [ KP_8,                    U2718,                   uparrow,                 intersection,            KP_Up,                   KP_Up,                   U22C2,                   NoSymbol                 ] };+    key  <KP9> { [ KP_9,                    dagger,                  U20D7,                   U226B,                   KP_Prior,                KP_Prior,                U2309,                   NoSymbol                 ] };+    key <KPAD> { [ KP_Add,                  KP_Add,                  plusminus,               U2295,                   U2213,                   NoSymbol,                U2214,                   NoSymbol                 ] };++    // Middle row+    // --------------------------------------------------------------+    key  <KP4> { [ KP_4,                    club,                    leftarrow,               includedin,              KP_Left,                 KP_Left,                 U2286,                   NoSymbol                 ] };+    key  <KP5> { [ KP_5,                    EuroSign,                colon,                   U22B6,                   KP_Begin,                KP_Begin,                U22B7,                   NoSymbol                 ] };+    key  <KP6> { [ KP_6,                    U2023,                   rightarrow,              includes,                KP_Right,                KP_Right,                U2287,                   NoSymbol                 ] };++    // Bottom row+    // --------------------------------------------------------------+    key  <KP1> { [ KP_1,                    diamond,                 U2194,                   lessthanequal,           KP_End,                  KP_End,                  downstile,               NoSymbol                 ] };+    key  <KP2> { [ KP_2,                    heart,                   downarrow,               union,                   KP_Down,                 KP_Down,                 U22C3,                   NoSymbol                 ] };+    key  <KP3> { [ KP_3,                    U2660,                   U21CC,                   greaterthanequal,        KP_Next,                 KP_Next,                 U230B,                   NoSymbol                 ] };+    key <KPEN> { [ KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                KP_Enter,                NoSymbol                 ] };+    key <KPEQ> { [ KP_Equal,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol,                NoSymbol                 ] };++    // Bottommost row+    // --------------------------------------------------------------+    key  <KP0> { [ KP_0,                    U2423,                   percent,                 U2030,                   KP_Insert,               KP_Insert,               U25A1,                   NoSymbol                 ] };+    key <KPDL> { [ KP_Separator,            period,                  comma,                   minutes,                 KP_Delete,               KP_Delete,               seconds,                 NoSymbol                 ] };+};++partial alphanumeric_keys modifier_keys keypad_keys+xkb_symbols "neo" {++    include "de(neo_base)"++    name[Group1]= "German (Neo 2)";++    include "shift(both_capslock)"+    include "level3(caps_switch)"+    include "level3(bksl_switch)"+    include "level5(lsgt_switch)"+    include "level5(ralt_switch)"+};++// Copied from macintosh_vndr/de+// olh@suse.de   very close to MacOS map++partial alphanumeric_keys +xkb_symbols "mac" {++    include "de"+    name[Group1]= "German (Macintosh)";++    // Alphanumeric section+    key <AE01>	{ [         1,     exclam,   exclamdown,           at ]	};+    key <AE05>	{ [         5,    percent,  bracketleft       ]	};+    key <AE06>	{ [         6,  ampersand, bracketright       ]	};+    key <AE07>	{ [         7,      slash,          bar,    backslash ]	};+    key <AE08>	{ [         8,  parenleft,    braceleft,   asciitilde ]	};+    key <AE09>	{ [         9, parenright,   braceright       ]	};+    key <AD01>	{ [         q,          Q, guillemotleft, guillemotright ]	};+    key <AD04>	{ [         r,          R,   registered       ]	};+    key <AD07>	{ [         u,          U,    diaeresis,       Aacute ]	};+    key <AD08>	{ [         i,          I,        slash,  Ucircumflex ]	};+    key <AD11>	{ [ udiaeresis, Udiaeresis, periodcentered,    degree ]	};+    key <AD12>	{ [      plus,   asterisk,   asciitilde       ]	}; +    key <AC01>	{ [         a,          A,        aring,        Aring ]	};+    key <AC05>	{ [         g,          G,    copyright       ]	};+    key <AC06>	{ [         h,          H,  ordfeminine       ]	};+    key <AC09>	{ [         l,          L,           at       ]	};+    key <AC10>	{ [ odiaeresis, Odiaeresis,  dead_acute       ]	};+    key <AB06>	{ [         n,          N,   asciitilde       ]	};++};++partial alphanumeric_keys +xkb_symbols "mac_nodeadkeys" {+    // modify the standard German mac layout to not have any dead keys+    include "de(mac)"+    name[Group1]= "German (Macintosh, eliminate dead keys)";+    key <AE04>	{ [         4,     dollar,   onequarter,     currency ]	};++    key <TLDE>	{ [ asciicircum,    degree,     notsign       ]	};+    key <AE12>	{ [      acute,      grave,     cedilla       ]	};+    key <AD11>	{ [ udiaeresis, Udiaeresis,   diaeresis       ]	};+    key <AD12>	{ [       plus,   asterisk,  asciitilde,       macron ]	};+    key <AC10>	{ [ odiaeresis, Odiaeresis,       acute       ]	};+    key <AC11>	{ [ adiaeresis, Adiaeresis, asciicircum       ]	};++    key <BKSL>	{ [ numbersign, apostrophe,       grave       ]	};+};++partial alphanumeric_keys+xkb_symbols "dsb"+{+	name[Group1] = "Lower Sorbian";+	include "latin(basic)"+	include "level3(ralt_switch)"+	include "kpdl(comma)"+	key <AB01> { [              z,              Z,         zcaron,         Zcaron ] };+	key <AB02> { [              x,              X,         zacute,         Zacute ] };+	key <AB03> { [              c,              C,         cacute,         Cacute ] };+	key <AB04> { [              v,              V,         ccaron,         Ccaron ] };+	key <AB06> { [              n,              N,         nacute,         Nacute ] };+	key <AC02> { [              s,              S,         sacute,         Sacute ] };+	key <AC03> { [              d,              D,         scaron,         Scaron ] };+	key <AC04> { [              f,              F                                 ] };+	key <AD01> { [              q,              Q                                 ] };+	key <AD02> { [              w,              W                                 ] };+	key <AD03> { [              e,              E,         ecaron,         Ecaron ] };+	key <AD04> { [              r,              R,         racute,         Racute ] };+	key <AD05> { [              t,              T,          U20B5,       EuroSign ] };+	key <AD09> { [              o,              O,         oacute,         Oacute ] };+};++partial alphanumeric_keys+xkb_symbols "dsb_qwertz"+{+	name[Group1] = "Lower Sorbian (qwertz)";+	include "latin(basic)"+	include "level3(ralt_switch)"+	include "kpdl(comma)"+	key <AB01> { [              y,              Y                                 ] };+	key <AB02> { [              x,              X                                 ] };+	key <AB03> { [              c,              C,         cacute,         Cacute ] };+	key <AB04> { [              v,              V,         ccaron,         Ccaron ] };+	key <AB06> { [              n,              N,         nacute,         Nacute ] };+	key <AC02> { [              s,              S,         sacute,         Sacute ] };+	key <AC03> { [              d,              D,         scaron,         Scaron ] };+	key <AC04> { [              f,              F                                 ] };+	key <AD01> { [              q,              Q                                 ] };+	key <AD02> { [              w,              W                                 ] };+	key <AD03> { [              e,              E,         ecaron,         Ecaron ] };+	key <AD04> { [              r,              R,         racute,         Racute ] };+	key <AD05> { [              t,              T,          U20B5,       EuroSign ] };+	key <AD06> { [              z,              Z,         zcaron,         Zcaron ] };+	key <AD07> { [              u,              U,         zacute,         Zacute ] };+	key <AD09> { [              o,              O,         oacute,         Oacute ] };+};++partial alphanumeric_keys +xkb_symbols "qwerty" {+ +    // This layout should work exactly as a de with the exception +    // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped).+    // 2008 by Matej Košík <kosik@fiit.stuba.sk>+    +    include "de(basic)"++    name[Group1] = "German (qwerty)";++    key <AB01>	{ [         z,          Z,     leftarrow,         yen ]	};+    key <AD06>	{ [         y,          Y, guillemotleft,        less ]	};+};++// layout for Russian letters on an german keyboard+// based on US-RU layout by Ivan Popov <pin@konvalo.org> 2005-07-17+// adopted for german layout by Alexey Fisher <bug-track@fisher-privat.net> 2010-08-19++partial alphanumeric_keys+xkb_symbols "ru" {++    include "de(basic)"+ +    name[Group1]= "Russian (Germany, phonetic)";++key.type[group1]="FOUR_LEVEL_ALPHABETIC";++    key <LatA> { [        Cyrillic_a,        Cyrillic_A ] };+    key <LatB> { [       Cyrillic_be,       Cyrillic_BE ] };+    key <LatW> { [       Cyrillic_ve,       Cyrillic_VE ] };+    key <LatG> { [      Cyrillic_ghe,      Cyrillic_GHE ] };+    key <LatD> { [       Cyrillic_de,       Cyrillic_DE ] };+    key <LatE> { [       Cyrillic_ie,       Cyrillic_IE ] };+    key <TLDE> { [       Cyrillic_io,       Cyrillic_IO, asciitilde ] };+    key <LatX> { [      Cyrillic_zhe,      Cyrillic_ZHE ] };+    key <LatZ> { [       Cyrillic_ze,       Cyrillic_ZE ] };+    key <LatI> { [        Cyrillic_i,        Cyrillic_I ] };+    key <LatJ> { [   Cyrillic_shorti,   Cyrillic_SHORTI ] };+    key <LatK> { [       Cyrillic_ka,       Cyrillic_KA ] };+    key <LatL> { [       Cyrillic_el,       Cyrillic_EL ] };+    key <LatM> { [       Cyrillic_em,       Cyrillic_EM ] };+    key <LatN> { [       Cyrillic_en,       Cyrillic_EN ] };+    key <LatO> { [        Cyrillic_o,        Cyrillic_O ] };+    key <LatP> { [       Cyrillic_pe,       Cyrillic_PE ] };+    key <LatR> { [       Cyrillic_er,       Cyrillic_ER ] };+    key <LatS> { [       Cyrillic_es,       Cyrillic_ES ] };+    key <LatT> { [       Cyrillic_te,       Cyrillic_TE ] };+    key <LatU> { [        Cyrillic_u,        Cyrillic_U ] };+    key <LatF> { [       Cyrillic_ef,       Cyrillic_EF ] };+    key <LatH> { [       Cyrillic_ha,       Cyrillic_HA ] };+    key <LatC> { [      Cyrillic_tse,      Cyrillic_TSE ] };+    key <AC10> { [      Cyrillic_che,      Cyrillic_CHE ] };+    key <AD11> { [      Cyrillic_sha,      Cyrillic_SHA ] };+    key <AD12> { [    Cyrillic_shcha,    Cyrillic_SHCHA, plus, asterisk ] };+    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };+    key <LatY> { [     Cyrillic_yeru,     Cyrillic_YERU ] };+    key <LatV> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };+    key <AC11> { [        Cyrillic_e,        Cyrillic_E ] };+    key <BKSL> { [       Cyrillic_yu,       Cyrillic_YU, numbersign, apostrophe ] };+    key <LatQ> { [       Cyrillic_ya,       Cyrillic_YA ] };++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "htcdream" {+        include "inet(htcdream)"++        name[Group1]= "German";++        //second row+        key <AD01> { [ q, Q, Tab, Tab ] };+        key <AD02> { [ w, W, grave, grave ] };+        key <AD03> { [ e, E, EuroSign, EuroSign ] };+        key <AD04> { [ r, R, underscore, underscore ] };+        key <AD05> { [ t, T, sterling, sterling] };+        key <AD06> { [ z, Z, division, division ] };+        key <AD07> { [ u, U, udiaeresis, udiaeresis ] };+        key <AD08> { [ i, I, minus, minus ] };+        key <AD09> { [ o, O, odiaeresis, odiaeresis ] };+        key <AD10> { [ p, P, equal, equal ] };++        //third row+        key <AC01> { [ a, A, adiaeresis, adiaeresis ] };+        key <AC02> { [ s, S, ssharp, ssharp] };+        key <AC03> { [ d ,D, backslash, backslash ] };+        key <AC04> { [ f, F, braceleft, braceleft ] };+        key <AC05> { [ g, G, braceright, braceright ] };+        key <AC06> { [ h, H, multiply, multiply ] };+        key <AC07> { [ j, J, colon, colon ] };+        key <AC08> { [ k, K, plus, plus ] };+        key <AC09> { [ l, L, apostrophe, apostrophe ] };++        //forth row+        key <AB01> { [ y, Y, bar, bar ] };+        key <AB02> { [ x, X, bracketleft, bracketleft ] };+        key <AB03> { [ c, C, bracketright, bracketright ] };+        key <AB04> { [ v, V, less, less ] };+        key <AB05> { [ b, B, greater, greater ] };+        key <AB06> { [ n, N, semicolon, semicolon ] };+        key <AB07> { [ m, M, quotedbl, quotedbl ] };+        key <AB08> { [ comma, comma, question, question ] };++        //fifth row+        key <FK15> { [ at, at, asciitilde, asciitilde ] };++        include "level3(alt_switch)"+};++// EXTRAS:++partial alphanumeric_keys+xkb_symbols "us" {+    include "us"++    name[Group1]="German (US keyboard with German letters)";++    key <AC01> { [           a,          A, adiaeresis, Adiaeresis ] };+    key <AC02> { [           s,          S,     ssharp,     ssharp ] };+    key <AC10> { [   semicolon,      colon, odiaeresis, Odiaeresis ] };+    key <AC11> { [  apostrophe,   quotedbl, adiaeresis, Adiaeresis ] };+    key <AD03> { [           e,          E,   EuroSign,   EuroSign ] };+    key <AD07> { [           u,          U, udiaeresis, Udiaeresis ] };+    key <AD09> { [           o,          O, odiaeresis, Odiaeresis ] };+    key <AD11> { [ bracketleft,  braceleft, udiaeresis, Udiaeresis ] };+    key <AE03> { [           3, numbersign,    section,    section ] };+    key <AE11> { [       minus, underscore,     ssharp,   question ] };++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "hu" {++    // modify the basic German layout to not have any dead keys and add Hungarian letters++    include "de(basic)"+    name[Group1]="German (with Hungarian letters and no dead keys)";++    key <AB01> { [         y,          Y, guillemotleft,        less ] };+    key <AC10> { [odiaeresis, Odiaeresis,        eacute,      Eacute ] };+    key <AC11> { [adiaeresis, Adiaeresis,        aacute,       Aacute] };+    key <AD03> { [         e,          E,      EuroSign,    EuroSign ] };+    key <AD06> { [         z,          Z,     leftarrow,         yen ] };+    key <AD07> { [         u,          U,        uacute,      Uacute ] };+    key <AD08> { [         i,          I,        iacute,      Iacute ] };+    key <AD09> { [         o,          O,  odoubleacute,Odoubleacute ] };+    key <AD11> { [udiaeresis, Udiaeresis,  udoubleacute,Udoubleacute ] };+    key <AD12> { [      plus,   asterisk,    asciitilde,      macron ] };+    key <AE12> { [     acute,      grave,        oacute,      Oacute ] };+    key <BKSL> { [numbersign, apostrophe,         grave,       grave ] };+    key <TLDE> { [asciicircum,    degree,       notsign,     notsign ] };+    +    +};++partial alphanumeric_keys+	xkb_symbols "sun_type6" {+	include "sun_vndr/de(sun_type6)"+};
+ data/symbols/empty view
@@ -0,0 +1,4 @@+default partial alphanumeric_keys modifier_keys+xkb_symbols "basic" {+    name[Group1]= "Empty";+};
+ data/symbols/eurosign view
@@ -0,0 +1,23 @@+// Most keyboards have the EuroSign engraved on the E key+partial+xkb_symbols "e" {+    key <AD03>	{ [  NoSymbol,   NoSymbol,   EuroSign,	NoSymbol ]	};+};++// Many Apple keyboards have the EuroSign engraved on the 2 key+partial+xkb_symbols "2" {+    key <AE02>	{ [  NoSymbol,   NoSymbol,   EuroSign,	NoSymbol ]	};+};++// Some keyboards have the EuroSign engraved on the 4 key+partial+xkb_symbols "4" {+    key <AE04>	{ [  NoSymbol,   NoSymbol,   EuroSign,	NoSymbol ]	};+};++// Many keyboards have the EuroSign engraved on the 5 key+partial+xkb_symbols "5" {+    key <AE05>	{ [  NoSymbol,   NoSymbol,   EuroSign,	NoSymbol ]	};+};
+ data/symbols/group view
@@ -0,0 +1,457 @@+// using the group(switch) map, the right alt key temporarily chooses +// the second keyboard group (until it is released).+//+partial modifier_keys +xkb_symbols "switch" {+    key <RALT>	{ 	+	symbols[Group1]= [	Mode_switch, Multi_key 	],+	virtualMods= AltGr+    };+};++// using the group(lswitch) map, the left alt key temporarily chooses+// the second keyboard group (until it is released).+//+partial modifier_keys +xkb_symbols "lswitch" {+    key <LALT>	{ 	+	symbols[Group1]= [	Mode_switch, Multi_key 	],+	virtualMods= AltGr+    };+};+++// using the group(win_switch) map, both Windows'logo keys temporarily+// choose the second keyboard group (until release).  If you use this+// map, you would declare you keyboard as pc101 or pc102 instead of+// pc104 or pc105.+partial modifier_keys+xkb_symbols "win_switch" {+    include "group(lwin_switch)"+    include "group(rwin_switch)"+};++// using the group(lwin_switch) map, the left Windows' logo key+// temporarily chooses the second keyboard group (until it is+// released).  If you use this map, you would declare you keyboard as+// pc101 or pc102 instead of pc104 or pc105.+partial modifier_keys+xkb_symbols "lwin_switch" {+  key <LWIN> {+    symbols[Group1] = [ Mode_switch, Multi_key ],+    virtualMods= AltGr+    };+};++// using the group(rwin_switch) map, the right Windows' logo key+// temporarily chooses the second keyboard group (until it is+// released).  If you use this map, you would declare you keyboard as+// pc101 or pc102 instead of pc104 or pc105.+partial modifier_keys+xkb_symbols "rwin_switch" {+  key <RWIN> {+    symbols[Group1] = [ Mode_switch, Multi_key ],+    virtualMods= AltGr+    };+};++// Right Ctrl key temporary chooses the second keyboard group.+// Needed mainly for Canadian keyboard+partial modifier_keys+xkb_symbols "rctrl_switch" {+    key <RCTL>  {+        symbols[Group1]= [ Mode_switch ]+    };+};++// using the group(toggle) map, pressing the right alt key switches to+// the next sequential group (until the next explicit group change).+partial modifier_keys +xkb_symbols "toggle" {+    virtual_modifiers AltGr;+    key <RALT>	{	+	symbols[Group1]= [	ISO_Next_Group	],+	virtualMods= AltGr+    };+};++// using the group(shifts_toggle) map, pressing both shift keys together+// locks the next or previous sequential keyboard group +// (depending on which shift is pressed first - right or left, +// correspongingly)+partial modifier_keys +xkb_symbols "shifts_toggle" {+    key <LFSH>	{	[	Shift_L,	ISO_Prev_Group ]	};+    key <RTSH>	{	[	Shift_R,	ISO_Next_Group ]	};+};++// using the group(shift_caps_toggle) map, pressing:+//     Shift+Caps Lock toggles group+partial modifier_keys+xkb_symbols "shift_caps_toggle" {+    key	<CAPS> {	[  Caps_Lock,		ISO_Next_Group	]	};+};++// using the group(shift_caps_switch) map, pressing:+// Caps Lock selects the first group+// Shift+Caps Lock selects the last group+partial modifier_keys+xkb_symbols "shift_caps_switch" {+    key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };+};++// using the group(win_menu_switch) map, pressing:+// LWIN selects the first group+// RWIN or MENU selects the last group+partial modifier_keys+xkb_symbols "win_menu_switch" {+    virtual_modifiers AltGr;+    key <LWIN> {+        virtualMods= AltGr,+        symbols[Group1] = [ ISO_First_Group ]+    };+    key <MENU> {+        virtualMods= AltGr,+        symbols[Group1] = [ ISO_Last_Group ]+    };+    key <RWIN> {+        virtualMods= AltGr,+        symbols[Group1] = [ ISO_Last_Group ]+    };+};++// using the group(lctrl_rctrl_switch) map, pressing:+// Left Control selects the first group+// Right Control selects the last group+partial modifier_keys+xkb_symbols "lctrl_rctrl_switch" {+    virtual_modifiers AltGr;+    key <LCTL> {+        virtualMods= AltGr,+        symbols[Group1] = [ ISO_First_Group ]+    };+    key <RCTL> {+        virtualMods= AltGr,+        symbols[Group1] = [ ISO_Last_Group ]+    };+};+++//+// CTRL-SHIFT toggle section+//+partial modifier_keys +xkb_symbols "lctrl_lshift_toggle" {+    key <LFSH> {+        type[Group1]="PC_CONTROL_LEVEL2",+        symbols[Group1]= [ Shift_L, ISO_Next_Group ]+    };+    key <LCTL> { [ Control_L, ISO_Next_Group ] };+};++partial modifier_keys +xkb_symbols "lctrl_lshift_toggle_rev" {+    key <LFSH> {+        type[Group1]="PC_CONTROL_LEVEL2",+        symbols[Group1]= [ Shift_L, ISO_Prev_Group ]+    };+    key <LCTL> { [ Control_L, ISO_Prev_Group ] };+};++partial modifier_keys+xkb_symbols "rctrl_rshift_toggle" {+    key <RTSH> {+        type[Group1]="PC_CONTROL_LEVEL2",+        symbols[Group1]= [ Shift_R, ISO_Next_Group ]+    };+    key <RCTL> { [ Control_R, ISO_Next_Group ] };+};++partial modifier_keys +xkb_symbols "ctrl_shift_toggle" {+    include "group(lctrl_lshift_toggle)"+    include "group(rctrl_rshift_toggle)"+};++partial modifier_keys +xkb_symbols "ctrl_shift_toggle_bidir" {+    include "group(lctrl_lshift_toggle_rev)"+    include "group(rctrl_rshift_toggle)"+};+++//+// CTRL-ALT toggle section+//+partial modifier_keys+xkb_symbols "lctrl_lalt_toggle" {+    virtual_modifiers Alt;+    key <LALT> {+        type[Group1]="PC_CONTROL_LEVEL2",+        symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],+        virtualMods= Alt+    };+    key <LCTL> {+        type[Group1]="PC_ALT_LEVEL2",+        symbols[Group1]= [ Control_L,   ISO_Next_Group ]+    };+};++partial modifier_keys+xkb_symbols "lctrl_lalt_toggle_rev" {+    virtual_modifiers Alt;+    key <LALT> {+        type[Group1]="PC_CONTROL_LEVEL2",+        symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],+        virtualMods= Alt+    };+    key <LCTL> {+        type[Group1]="PC_ALT_LEVEL2",+        symbols[Group1]= [ Control_L,   ISO_Prev_Group ]+    };+};++partial modifier_keys+xkb_symbols "rctrl_ralt_toggle" {+    virtual_modifiers Alt;+    key <RALT> {+        type[Group1]="PC_CONTROL_LEVEL2",+        symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],+        virtualMods= Alt+    };+    key <RCTL> {+        type[Group1]="PC_ALT_LEVEL2",+        symbols[Group1]= [ Control_R,   ISO_Next_Group ]+    };+};++partial modifier_keys +xkb_symbols "ctrl_alt_toggle" {+    include "group(lctrl_lalt_toggle)"+    include "group(rctrl_ralt_toggle)"+};++partial modifier_keys +xkb_symbols "ctrl_alt_toggle_bidir" {+    include "group(lctrl_lalt_toggle_rev)"+    include "group(rctrl_ralt_toggle)"+};+++//+// ALT-SHIFT toggle section+//+partial modifier_keys+xkb_symbols "lalt_lshift_toggle" {+    virtual_modifiers Alt;+    key <LALT> {+        symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],+        virtualMods= Alt+    };+    key <LFSH> {+        type[Group1]="PC_ALT_LEVEL2",+        symbols[Group1]= [ Shift_L,     ISO_Next_Group ]+    };+};++partial modifier_keys+xkb_symbols "lalt_lshift_toggle_rev" {+    virtual_modifiers Alt;+    key <LALT> {+        symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],+        virtualMods= Alt+    };+    key <LFSH> {+        type[Group1]="PC_ALT_LEVEL2",+        symbols[Group1]= [ Shift_L,     ISO_Prev_Group ]+    };+};++partial modifier_keys+xkb_symbols "ralt_rshift_toggle" {+    virtual_modifiers Alt;+    key <RALT> {+        symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],+        virtualMods= Alt+    };+    key <RTSH> {+        type[Group1]="PC_ALT_LEVEL2",+        symbols[Group1]= [ Shift_R,     ISO_Next_Group ]+    };+};++partial modifier_keys +xkb_symbols "alt_shift_toggle" {+    include "group(lalt_lshift_toggle)"+    include "group(ralt_rshift_toggle)"+};++partial modifier_keys +xkb_symbols "alt_shift_toggle_bidir" {+    include "group(lalt_lshift_toggle_rev)"+    include "group(ralt_rshift_toggle)"+};+++// using the group(menu_toggle) map, pressing:+//     Menu key toggles groups+//     Shift+Menu acts as Menu+partial modifier_keys+xkb_symbols "menu_toggle" {+    key	<MENU> {	[  ISO_Next_Group,	 Menu	]	};+};++// using the group(lwin_toggle) map, pressing the left Windows' logo key+// toggles groups.  If you use this map, you would declare you keyboard+// as pc101 or pc102 instead of pc104 or pc105.+partial modifier_keys+xkb_symbols "lwin_toggle" {+  virtual_modifiers AltGr;+  key <LWIN> {+    virtualMods= AltGr,+    symbols[Group1] = [ ISO_Next_Group ]+    };+};++// using the group(rwin_toggle) map, pressing the right Windows' logo key+// toggles groups.  If you use this map, you would declare you keyboard+// as pc101 or pc102 instead of pc104 or pc105.+partial modifier_keys+xkb_symbols "rwin_toggle" {+  virtual_modifiers AltGr;+  key <RWIN> {+    virtualMods= AltGr,+    symbols[Group1] = [ ISO_Next_Group ]+    };+};++// Both Ctrls pressed together toggle group+partial modifier_keys+xkb_symbols "ctrls_toggle" {+  virtual_modifiers LControl, RControl;+    key <LCTL> {+	type[Group1]="PC_RCONTROL_LEVEL2",+	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],+	virtualMods= LControl+    };+    key <RCTL> {+	type[Group1]="PC_LCONTROL_LEVEL2",+	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],+	virtualMods= RControl+    };+};++// Both Alts pressed together toggle group+partial modifier_keys+xkb_symbols "alts_toggle" {+  virtual_modifiers LAlt, RAlt;+    key <LALT> {+	type[Group1]="PC_RALT_LEVEL2",+	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],+	virtualMods= LAlt+    };+    key <RALT> {+	type[Group1]="PC_LALT_LEVEL2",+	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],+	virtualMods= RAlt+    };+};++// Left Shift key toggles group+partial modifier_keys+xkb_symbols "lshift_toggle" {+  virtual_modifiers AltGr;+    key <LFSH>	{	+	symbols[Group1]= [	ISO_Next_Group	],+	virtualMods= AltGr+    };+};++// Right Shift key toggles group+partial modifier_keys+xkb_symbols "rshift_toggle" {+  virtual_modifiers AltGr;+    key <RTSH>	{	+	symbols[Group1]= [	ISO_Next_Group	],+	virtualMods= AltGr+    };+};++// Left Alt key toggles group+partial modifier_keys+xkb_symbols "lalt_toggle" {+  virtual_modifiers AltGr;+    key <LALT>	{	+	symbols[Group1]= [	ISO_Next_Group	],+	virtualMods= AltGr+    };+};++// Left Ctrl key toggles group+partial modifier_keys+xkb_symbols "lctrl_toggle" {+  virtual_modifiers AltGr;+    key <LCTL>	{	+	symbols[Group1]= [	ISO_Next_Group	],+	virtualMods= AltGr+    };+};++// Right Ctrl key toggles group+partial modifier_keys+xkb_symbols "rctrl_toggle" {+  virtual_modifiers AltGr;+    key <RCTL>	{	+	symbols[Group1]= [	ISO_Next_Group	],+	virtualMods= AltGr+    };+};++// using the group(alt_caps_toggle) map, pressing:+//     Alt+Caps Lock toggles group+//     Caps Lock toggles caps lock+partial modifier_keys+xkb_symbols "alt_caps_toggle" {+    key        <CAPS> {+       type="PC_ALT_LEVEL2",+       symbols[Group1]= [  Caps_Lock,  ISO_Next_Group]+    };+};++partial hidden modifier_keys+xkb_symbols "olpc" {+  key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };+};++partial modifier_keys+xkb_symbols "alt_space_toggle" {+    key <SPCE> {+    type[Group1]="PC_ALT_LEVEL2",+    symbols[Group1]= [ space,   ISO_Next_Group ]+    };+};++// using the group(sclk_toggle) map, pressing the Scroll Lock key+// toggles groups.+partial modifier_keys+xkb_symbols "sclk_toggle" {+  virtual_modifiers AltGr;+  key <SCLK> {+    virtualMods= AltGr,+    symbols[Group1] = [ ISO_Next_Group ]+    };+};++// Control_L+Win_L locks the first group (presumably Lat).+// Control_R+Menu locks the second group (presumably Rus).+partial modifier_keys+xkb_symbols "lctrl_lwin_rctrl_menu" {+    key <LWIN> {+        type[ Group1 ]    = "PC_CONTROL_LEVEL2",+        symbols[ Group1 ] = [ Super_L,    ISO_First_Group ]+    };+    key <MENU> {+        type[ Group1 ]    = "PC_CONTROL_LEVEL2",+        symbols[ Group1 ] = [ Menu,       ISO_Last_Group ]+    };+}; // lctrl_lwin_rctrl_menu
+ data/symbols/il view
@@ -0,0 +1,327 @@+// based on a keyboard map from an 'xkb/symbols/il' file++// This is a partial implemetation of the Israeli standard SI-1452+// It does not implement changes to the English layout ("Alt-English"), +// as I believe that it is not the job of this layout to modify the English+// layout.+partial default alphanumeric_keys +xkb_symbols "basic" {+    // uses the kbd layout in use in Israel.++    name[Group1]= "Hebrew";++    key <AD01> { [ slash,	Q		]	};+    key <AD02> { [ apostrophe,	W		]	};+    key <AD04> { [ hebrew_resh,	R		]	};+    key <AD05> { [ hebrew_aleph,T		]       };+    key <AD06> { [ hebrew_tet,	Y		]       };+    key <AD07> { [ hebrew_waw,	U		]       };+    key <AD08> { [ hebrew_finalnun,	I	]       };+    key <AD09> { [ hebrew_finalmem,	O	]       };+    key <AD10> { [ hebrew_pe,	P		]	};++    key <AC02> { [ hebrew_dalet,S		]       };+    key <AC03> { [ hebrew_gimel,D		]       };+    key <AC04> { [ hebrew_kaph,	F		]	};+    key <AC05> { [ hebrew_ayin,	G		]       };+    key <AC06> { [ hebrew_yod,	H		]       };+    key <AC07> { [ hebrew_chet,	J		]	};+    key <AC08> { [ hebrew_lamed, K		]	};+    key <AC09> { [ hebrew_finalkaph,	L	]       };+    key <AC10> { [ hebrew_finalpe,	colon	]       };+    key <AC11> { [ comma,	quotedbl	]	};++    key <AB01> { [ hebrew_zain,	Z		]       };+    key <AB02> { [ hebrew_samech, X		]       };+    key <AB03> { [ hebrew_bet,	C		]       };+    key <AB04> { [ hebrew_he,	V		]       };+    key <AB05> { [ hebrew_nun,	B		]       };+    key <AB06> { [ hebrew_mem,	N		]	};+    key <AB07> { [ hebrew_zade,	M		]	};+    // Mirrored:+    key <AB08> { [ hebrew_taw,	greater		]	};+    key <AB09> { [ hebrew_finalzade,	less	]	};++    key.type[Group1] = "THREE_LEVEL";+    +    key <TLDE> { [ semicolon,	asciitilde,0x10005b0	]}; // Sheva+    key <AB10> { [ period,	question,  0x10005c3	]}; // Sof Pasuq+    key <AD03> { [ hebrew_qoph,	E,	EuroSign	]};+    key <AC01> { [ hebrew_shin,	A,	0x10020AA	]};+  +    // The following may get overriden by the iso9995-3(basic101) symbols.+    // therefore they are included here. +    // Including them isn't a great idea (for instance: what if group 1 uses+    // UK keyboard mapping, and maps shift-3 to sterling? This mapping won't+    // preserve that, and I'm not sure that this is a good feature.+    key <AE01> { [     1, exclam      , 0x10005b1	]}; // H. Segol+    key <AE02> { [     2, at          , 0x10005b2	]}; // H. Patah+    key <AE03> { [     3, numbersign  , 0x10005b3	]}; // H.  Qamats+    key <AE04> { [     4, dollar      , 0x10005b4	]}; // Hiriq+    key <AE05> { [     5, percent     , 0x10005b5	]}; // Tsere+    key <AE06> { [     6, asciicircum , 0x10005b6	]}; // Segol+    key <AE07> { [     7, ampersand   , 0x10005b7	]}; // Patah+    key <AE08> { [     8, asterisk    , 0x10005b8	]}; // Qamats+    // Mirrored: +    key <AE09> { [     9, parenright   , 0x10005c2	]}; // Sin dot+    key <AE10> { [     0, parenleft  , 0x10005c1	]}; // Shin dot+    key <AE11> { [ minus, underscore  , 0x10005b9	]}; // Holam+    key <AE12> { [ equal, plus        , 0x10005bc	]}; // Dagesh/Shuruq+  +    // Mirrored: +    key <AD11> { [ bracketright, braceright, 0x10005bf	]}; // Rafe+    key <AD12> { [ bracketleft,  braceleft,  0x10005bd	]}; // Meteg+                                      +    key <BKSL> { [ backslash,    bar,  0x10005bb	]}; // Qubuts    ++    include "level3(ralt_switch)"+};+++// nikud patter based on Dekel Tsur's Hebrew mapping for LyX+partial alphanumeric_keys +xkb_symbols "lyx" {+    name[Group1]= "Hebrew (lyx)";++    key <TLDE> { [ semicolon,	asciitilde	]	};+    // On some key (e.g. AD01, right below) there is not yet mapping for the+    // second shift level. Since I could not figure a simple way to map this+    // to "emit nothing", it is currently mapped to the same letter of the+    // first shift level (avoiding mapping may risk it be used by a character+    // from a different group).+    key <AD01> { [ slash,	slash		]       };+    key <AD02> { [ apostrophe,	apostrophe	]       };+    key <AD03> { [ hebrew_qoph,	0x10005b8	]	}; // Qamats+    key <AD04> { [ hebrew_resh,	0x10005bc	]       }; // Dagesh/Shuruq+    key <AD05> { [ hebrew_aleph,	0x100200e	]       }; // LRM+    key <AD06> { [ hebrew_tet,	0x100200f	]       }; // RLM+    key <AD07> { [ hebrew_waw,	0x10005b9	]       }; // Holam+    key <AD08> { [ hebrew_finalnun,hebrew_finalnun]      };+    key <AD09> { [ hebrew_finalmem,hebrew_finalmem]      };+    key <AD10> { [ hebrew_pe,	0x10005b7	]	}; // Patah++    key <AC01> { [ hebrew_shin,	0x10005b0	]	}; // Sheva+    key <AC02> { [ hebrew_dalet,	0x10005bc	]       }; // Dagesh/Shuruq+    key <AC03> { [ hebrew_gimel,	hebrew_gimel	]       };+    key <AC04> { [ hebrew_kaph,	hebrew_kaph	]	}; +    key <AC05> { [ hebrew_ayin,	0x10005c2	]       }; // Sin dot+    key <AC06> { [ hebrew_yod,	0x10005c1	]       }; // Shin dot+    key <AC07> { [ hebrew_chet,	0x10005b4	]	}; // Hiriq+    key <AC08> { [ hebrew_lamed, 0x10020aa	]	}; // NIS+    key <AC09> { [ hebrew_finalkaph,hebrew_finalkaph]    };+    key <AC10> { [ hebrew_finalpe,	colon	]       };+    key <AC11> { [ comma,	quotedbl	]	};++    key <AB01> { [ hebrew_zain,	hebrew_zain	]       };+    key <AB02> { [ hebrew_samech,0x10005b6	]       }; // Segol+    key <AB03> { [ hebrew_bet,	0x10005bb	]       }; // Qubuts+    key <AB04> { [ hebrew_he,	0x10005b1	]       }; // H. Segol+    key <AB05> { [ hebrew_nun,	0x10005b2	]	}; // H. Patah+    key <AB06> { [ hebrew_mem,	0x10005b3	]       }; // H.  Qamats+    key <AB07> { [ hebrew_zade,	0x10005b5	]	}; // Tsere+    key <AB08> { [ hebrew_taw,	greater		]	};+    key <AB09> { [ hebrew_finalzade,	less	]	};+    key <AB10> { [ period,	question	]	};++    // Note the parens mirroring below:+    key <AD11> { [ bracketright,	braceright	]       };+    key <AD12> { [ bracketleft,	braceleft	]       };+    key <AE01> { [ 1, exclam      ]};+    key <AE02> { [ 2, at          ]};+    key <AE03> { [ 3, numbersign  ]};+    key <AE04> { [ 4, dollar      ]};+    key <AE05> { [ 5, percent     ]};+    key <AE06> { [ 6, asciicircum ]};+    key <AE07> { [ 7, ampersand   ]};+    key <AE08> { [ 8, asterisk    ]};+    key <AE09> { [ 9, parenright  ]};+    key <AE10> { [ 0, parenleft	  ]};+    +    key <AE11> { [ minus     ,	0x10005be	]	}; // H. Hiphen+    key <AE12> { [ equal     ,	plus		]	};+};+++partial alphanumeric_keys +xkb_symbols "phonetic" {++    // uses the phonetic layout from old Slackware 'il.map' file++    name[Group1]= "Hebrew (phonetic)";++    key <AE12> {        [     equal,    plus, hebrew_doublelowline, hebrew_doublelowline ]};++    key <LatQ> {	[ hebrew_qoph, hebrew_qoph	]	};+    key <LatW> {	[ hebrew_waw, hebrew_waw	]	};+    key <LatE> {	[ hebrew_aleph, hebrew_aleph	]       };+    key <LatR> {	[ hebrew_resh, hebrew_resh	]	};+    key <LatT> {	[ hebrew_taw, hebrew_tet	]       };+    key <LatY> {	[ hebrew_ayin, hebrew_ayin	]       };+    key <LatU> {	[ hebrew_waw, hebrew_waw	]       };+    key <LatI> {	[ hebrew_yod, hebrew_yod	]       };+    key <LatO> {	[ hebrew_samech, hebrew_samech	]       };+    key <LatP> {	[ hebrew_pe, hebrew_finalpe	]	};++    key <LatA> {	[ hebrew_aleph, hebrew_aleph	]	};+    key <LatS> {	[ hebrew_shin, hebrew_shin	]       };+    key <LatD> {	[ hebrew_dalet, hebrew_dalet	]       };+    key <LatF> {	[ hebrew_pe, hebrew_finalpe	]	};+    key <LatG> {	[ hebrew_gimel, hebrew_gimel	]       };+    key <LatH> {	[ hebrew_he, hebrew_he		]       };+    key <LatJ> {	[ hebrew_yod, hebrew_yod	]	};+    key <LatK> {	[ hebrew_kaph, hebrew_finalkaph	]	};+    key <LatL> {	[ hebrew_lamed, hebrew_lamed	]       };++    key <LatZ> {	[ hebrew_zain, hebrew_zain	]       };+    key <LatX> {	[ hebrew_chet, hebrew_chet	]       };+    key <LatC> {	[ hebrew_zade, hebrew_finalzade	]       };+    key <LatV> {	[ hebrew_waw, hebrew_waw	]       };+    key <LatB> {	[ hebrew_bet, hebrew_bet	]       };+    key <LatN> {	[ hebrew_nun, hebrew_finalnun	]	};+    key <LatM> {	[ hebrew_mem, hebrew_finalmem	]	};+};++// The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the+// 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner+// <waschtl@sbronner.com>.  Its primary features (as compared to the lyx layout)+// are that the consonants are in the Israeli standard positions, that a great+// multitude of glyphs can be input directly from the keyboard, and that it is+// the closest thing to a standard layout a theologian can hope for.+// Documentation (including printable keyboard tables), SBL Hebrew font, and+// keyboard layout for Windows are available at+// http://www.sbl-site.org/Resources/Resources_BiblicalFonts.aspx.+//+// It is of interest that the 'basic' layout defined first in this file (as+// ships with x.org disagrees in the non-consonant characters that the Tiro-+// layout claims to be the Israeli standard.  Tiros apparent diligence in the+// PDF-documentation accompanying the keyboard-layout-files lead me to put+// greater stock in their claim than in this file.  Therefore, the 'biblical'+// layout below does not include 'il(basic)' but redoes the _whole_ thing from+// scratch.++partial alphanumeric_keys +xkb_symbols "biblical" {+	name[Group1]= "Hebrew (Biblical, Tiro)";+	key.type = "FOUR_LEVEL_SEMIALPHABETIC";++	key <TLDE> { [ U05C3, U05AE, semicolon, asciitilde ] };+	key <AE01> { [ 1,     U05A9, VoidSymbol, exclam ] };+	key <AE02> { [ 2,     U0599, VoidSymbol, at ] };+	key <AE03> { [ 3,     U0592, VoidSymbol, numbersign ] };+	key <AE04> { [ 4,     U05AF, NewSheqelSign, dollar ] };+	key <AE05> { [ 5,     VoidSymbol, U200D, percent ] };+	key <AE06> { [ 6,     U05B9, U200C, asciicircum ] };+	key <AE07> { [ 7,     U05BF, U034F, ampersand ] };+	key <AE08> { [ 8,     U05C2, U200E, asterisk ] };+	key <AE09> { [ 9,     U05C1, U200F, parenright ] };+	key <AE10> { [ 0,     U059D, U25CC, parenleft ] };+	key <AE11> { [ U05BE, U05A0, minus, underscore ] };+	key <AE12> { [ equal, U05BC, VoidSymbol, plus ] };++	key <AD01> { [ U0307, U05C4, U0308, slash ] };+	key <AD02> { [ U05F3, U05AC, U05F4, apostrophe ] };+	key <AD03> { [ hebrew_qoph, U05AB, U20AC ] };+	key <AD04> { [ hebrew_resh, U059F ] };+	key <AD05> { [ hebrew_aleph, U0593 ] };+	key <AD06> { [ hebrew_tet, U059E ] };+	key <AD07> { [ hebrew_waw, U059C, U05F0 ] };+	key <AD08> { [ hebrew_finalnun, U05A1 ] };+	key <AD09> { [ hebrew_finalmem, U0595 ] };+	key <AD10> { [ hebrew_pe, U0594 ] };+	key <AD11> { [ bracketright, U0597, VoidSymbol, braceright ] };+	key <AD12> { [ bracketleft, U0598, VoidSymbol, braceleft ] };+	key <BKSL> { [ U05C0, U05A8, backslash, bar ] };++	key <AC01> { [ hebrew_shin, U05BD ] };+	key <AC02> { [ hebrew_dalet, U05B0 ] };+	key <AC03> { [ hebrew_gimel, U05BB ] };+	key <AC04> { [ hebrew_kaph, U05B4 ] };+	key <AC05> { [ hebrew_ayin, U05B1 ] };+	key <AC06> { [ hebrew_yod, U05B6, U05F2 ] };+	key <AC07> { [ hebrew_chet, U05B5, U05F1 ] };+	key <AC08> { [ hebrew_lamed, U05B3 ] };+	key <AC09> { [ hebrew_finalkaph, U05B8, U05C7 ] };+	key <AC10> { [ hebrew_finalpe, U05B2, VoidSymbol, colon ] };+	key <AC11> { [ U059a, U05B7, comma, quotedbl ] };++	key <AB01> { [ hebrew_zain, U05C5 ] };+	key <AB02> { [ hebrew_samech, U05A4 ] };+	key <AB03> { [ hebrew_bet, U05AA, U05A2 ] };+	key <AB04> { [ hebrew_he, U05A6 ] };+	key <AB05> { [ hebrew_nun, U05A5, U05C6 ] };+	key <AB06> { [ hebrew_mem, U05A7 ] };+	key <AB07> { [ hebrew_zade, U059B ] };+	key <AB08> { [ hebrew_taw, U0591, VoidSymbol, greater ] };+	key <AB09> { [ hebrew_finalzade, U0596, VoidSymbol, less ] };+	key <AB10> { [ U05AD, U05A3, period, question ] };++	key <SPCE> { [ space, space, thinspace, nobreakspace ] };+};++// EXTRAS++// Biblical hebrew (SIL) US Standard layout version 1.5+// This map is based closely on v 1.5 of the standard. The only deviation being the replacement of the composite characters sin and shin +// by their more recent Unicodev6 counterparts+// this map contains all the characters found in Biblical annotation, masoretic and Dead Sea Scroll related work.+// The layout corresponds phonetically to a US standard layout or similar (Qwerty).+// If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout+// This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl+partial alphanumeric_keys +xkb_symbols "biblicalSIL" {+	name[Group1]= "Hebrew (Biblical, SIL phonetic)";+	key.type = "FOUR_LEVEL_SEMIALPHABETIC";++	key <TLDE> { [ U20AC,		U20AA,		U0024 ] }; 			//Euro, 		Shekel, 		Dollar		-+	key <AE01> { [ 1,		U0021,		U05BD,		U0597 ] };		//1,			exclamation	meteg		revia+	key <AE02> { [ 2,		U0598,		U05A2,		U05AE ] };	//2,			zarqa		atn. hafukh	zinor+	key <AE03> { [ 3,		U05A8,		U0596,		U0599 ] };		//3,			qadma		tipeha		pashta+	key <AE04> { [ 4,		U059C,		U05A5,		U05A0 ] };		//4,			geresh		merkha		tel. gedola+	key <AE05> { [ 5,		U059E,		U05A6,		U05A9 ] };		//5,			gershayim		mer. kefula	tel qetana+	key <AE06> { [ 6,		VoidSymbol,	U05AD,		U059F ] };		//6,			-			dehi			qar. para+	key <AE07> { [ 7,		U05AC,		U05A3,		U05A1 ] };		//7,			iluy			munah		pazer+	key <AE08> { [ 8,		U059D,		U059B,		U0595 ] };		//8,			g. muqdam	tevir			zaq. gadol+	key <AE09> { [ 9,		U0029,		U05A7,		U0593 ] };		//9,			parenth.R		darqa		shalshelet+	key <AE10> { [ 0,		U0028,		U05AA,		U05AF ] };		//0,			paren.L		yer. ben yomo	masora c.+	key <AE11> { [ U05BE,		U2013,		U2014,		U05BF ] };	//Maqaf, 		en dash		em dash		rafe+	key <AE12> { [ U05BC,		VoidSymbol,	U0591,		U25CC ] };	//Dagesh		-			etnahta		mark base++	key <AD01> { [ hebrew_qoph,	U0597 ] };							//Qof		revia			-			-+	key <AD02> { [ hebrew_waw] }; 								//waw		-			-			-+	key <AD03> { [ U05B6,		U05B5,		VoidSymbol,	U05B1 ] };	//segol		tsere			-			hat. segol+	key <AD04> { [ hebrew_resh ] };								//resh		-			-			-+	key <AD05> { [ hebrew_taw ] }; 								//taw		-			-			-+	key <AD06> { [ hebrew_yod,	U059F ] };							//jod		qar. para		-			-+	key <AD07> { [ U05BB] }; 									//quibuts		-			-			-+	key <AD08> { [ U05B4 ] };									//hiriq, 		-			-			-+	key <AD09> { [ U05B9,		U05BA,		U05C7, 		U05B3 ] };	//holam, 		holam(wav)	qam. qatan	hat. Qamats+	key <AD10> { [ hebrew_pe,	hebrew_finalpe,	VoidSymbol,	U034F ] };	//pe			final pe		-			c. grapheme joiner+	key <AD11> { [ bracketright,	braceright,	VoidSymbol,	U0594 ] };		//Bracket R	brace R		-			zaq. qatan+	key <AD12> { [ bracketleft,	braceleft, 	U059A,		U0592 ] };		//Brachket L	brace L		yetiv			segolta+	key <BKSL> { [ U05C0, 		U05C0, 		U05A4,		U05AB ] };//Paseq		Paseq		mahapakh		ole++	key <AC01> { [ U05B7,		U05B8,		U05C7,		U05B2 ] };  //patah		Qamats		Qam. Qatan	hat. patah+	key <AC02> { [ hebrew_samech,	U05E9 ] }; 					//Samech, 	shin no dot	-			-+	key <AC03> { [ hebrew_dalet ] }; 								//dalet		-			-			-+	key <AC04> { [ UFB2B,		hebrew_sin,	U05C2 ] }; 			//UCSv6 Sin	sin (nodot)	sindot		-+	key <AC05> { [ hebrew_gimel,	VoidSymbol,	U25E6,		U2022 ] };	//gimel		-			bullet(DSS)	bulletfill (DSS)+	key <AC06> { [ hebrew_he,	VoidSymbol,	U0336,		U030A ] };//he			-			strikeout(DSS)	Ring Above(DSS)+	key <AC07> { [ UFB2A,		hebrew_shin,	U05C1] };				//UCSv6 Shin	shin (nodot)	shindot		-+	key <AC08> { [ hebrew_kaph,	hebrew_finalkaph ] };					//kaph		Final kaph		-+	key <AC09> { [ hebrew_lamed,	VoidSymbol ] };						//lamed		-			-+	key <AC10> { [ U05B0,		U05F4,		semicolon,	U05C3 ] };		//sva		gers. p		semicolon		sof pasuq+	key <AC11> { [ U2019,		U201D, 		U0323,		U05C4 ] };//QuoteRight	double R Quote	punctum		punctum Above++	key <AB01> { [ hebrew_zain ] };								//Zayin		-			-			+	key <AB02> { [ hebrew_chet ] };								//chet		-			-+	key <AB03> { [ hebrew_zade, 	U05E5 ] };							// tzade, 		final tzade		-+	key <AB04> { [ hebrew_tet ] };									//tet			-			-+	key <AB05> { [ hebrew_bet ] };									//bet			-			-+	key <AB06> { [ hebrew_nun,	hebrew_finalnun ] }; 					//nun, 		final nun+	key <AB07> { [ hebrew_mem,	hebrew_finalmem, U200C,		U200D ] };	//mem, 		final mem		0.wid.non.join.	0.wid.joiner+	key <AB08> { [ U002C,		U05E2, 		U00AB,		U0307 ] }; //comma, 	ayin			guillemetsR	masora dot+	key <AB09> { [ U0002E,		U05D0, 		U00BB,		U0308 ] }; //period, 		alef			guillemetsL	thousands+	key <AB10> { [ slash,		question,	U05F3 ] };					//slash		question		geresh P++	key <SPCE> { [ space, 		space,		thinspace,	nobreakspace ] };//space		space			thin space,		nbsp+};
+ data/symbols/in view
@@ -0,0 +1,1755 @@+// This layout includes all Indian layouts, including:+//     - Bengali+//     - Gujarati +//     - Kannada +//     - Malayalam+//     - Oriya +//     - Tamil+//     - Telugu+//     - Urdu++// Links:+// - Indic INSCRIPT keyboard layout diagrams:+//     http://java.sun.com/products/jfc/tsc/articles/InputMethod/indiclayout.html+// - Bengali Baishakhi (Bengali layouts):+// - Bengali Baishakhi Inscript (Bengali layouts):+// - Bengali Bornona (Bengali layouts):+// - Uni Gitanjali (Bengali layouts):+//     http://nltr.org+// - Ekusheyr Shadhinota (Bengali layouts):+//     http://ekushey.org/projects/shadhinota/index.html+// - Microsoft Windows XP SP2: Indic Language Standards - an Introduction:+//     http://www.bhashaindia.com/MSProducts/XpSp2/Articles/IndicLanguageStandards.aspx++// based on a keyboard map from an 'xkb/symbols/dev' file++// Devangari is the default. Kill me if I am wrong:)+default partial alphanumeric_keys+xkb_symbols "deva" {+	// March 2004 -- David Holl <smyrph+dev_xkb@ece.wpi.edu>+	name[Group1]="Indian";++	key.type="FOUR_LEVEL";++	key <TLDE> { [ U094a, U0912,   grave, asciitilde  ] };+	key <AE01> { [ U0967, U090d,       1, exclam      ] };+	key <AE02> { [ U0968, U0945,       2, at          ] };+	// Shift+AE0[3-8] really need to return a macro of keys defined by+	// INSCRIPT in place of the symbols that are here for now.  But this+	// requires XKB to map 1 key into two to three other key presses.+	key <AE03> { [ U0969, numbersign,  3, numbersign  ] };+	key <AE04> { [ U096a, dollar,      4		  ] };+	key <AE05> { [ U096b, percent,     5, percent     ] };+	key <AE06> { [ U096c, asciicircum, 6, asciicircum ] };+	key <AE07> { [ U096d, ampersand,   7, ampersand   ] };+	key <AE08> { [ U096e, asterisk,    8, asterisk    ] };+	key <AE09> { [ U096f, parenleft,   9, parenleft   ] };+	key <AE10> { [ U0966, parenright,  0, parenright  ] };+	key <AE11> { [ minus, U0903, minus, underscore    ] };+	key <AE12> { [ U0943, U090b, U0944, U0960 ] };++	key <AD01> { [ U094c, U0914 ] };+	key <AD02> { [ U0948, U0910 ] };+	key <AD03> { [ U093e, U0906 ] };+	key <AD04> { [ U0940, U0908, U0963, U0961 ] };+	key <AD05> { [ U0942, U090a ] };+	key <AD06> { [ U092c, U092d ] };+	key <AD07> { [ U0939, U0919 ] };+	key <AD08> { [ U0917, U0918, U095a ] };+	key <AD09> { [ U0926, U0927 ] };+	key <AD10> { [ U091c, U091d, U095b ] };+	key <AD11> { [ U0921, U0922, U095c, U095d ] };+	key <AD12> { [ U093c, U091e ] };+	// I added \ / ? | for shell-convenience (file names and piping)+	key <BKSL> { [ U0949, U0911, U005C, U007C ] };++	key <AC01> { [ U094b, U0913 ] };+	key <AC02> { [ U0947, U090f ] };+	key <AC03> { [ U094d, U0905 ] };+	key <AC04> { [ U093f, U0907, U0962, U090c ] };+	key <AC05> { [ U0941, U0909 ] };+	key <AC06> { [ U092a, U092b, NoSymbol, U095e ] };+	key <AC07> { [ U0930, U0931 ] };+	key <AC08> { [ U0915, U0916, U0958, U0959 ] };+	key <AC09> { [ U0924, U0925 ] };+	key <AC10> { [ U091a, U091b, U0952 ] };+	key <AC11> { [ U091f, U0920, NoSymbol, U0951 ] };++	key <AB01> { [ U0946, U090e, U0953 ] };+	key <AB02> { [ U0902, U0901, NoSymbol, U0950 ] };+	key <AB03> { [ U092e, U0923, U0954 ] };+	key <AB04> { [ U0928, U0929 ] };+	key <AB05> { [ U0935, U0934 ] };+	key <AB06> { [ U0932, U0933 ] };+	key <AB07> { [ U0938, U0936 ] };+	key <AB08> { [ comma, U0937, U0970 ] };+	key <AB09> { [ period, U0964, U0965, U093d ] };+	// I added \ / ? | for shell-convenience (file names and piping)+	key <AB10> { [ U092f, U095f, slash, question ] };++	// space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ):+	include "nbsp(zwnj3zwj4)"+        include "rupeesign(4)"+        include "level3(ralt_switch)"+};++//Name		:	Bolnagri (Combined)+//Description	:	A phonetic keyboard layout for Devnagari(Hindi)+//			http://www.indlinux.org/wiki/index.php/BolNagri+//NOTE		: 	This is a combined map of bolnagri_matras and bolnagri_vowels.+//Inspired by "devrom" keymap by Steve Smith for the windows tool "keyman"+//Original Author :	Noah Levitt<nlevitt at columbia.edu>+//Past Authors  : Pramod.R <pramodr at gmail.com> and Ravikant <ravikant at sarai.net>+//Current Main. : G Karunakar <karunakar@indlinux.org>++partial alphanumeric_keys+xkb_symbols "bolnagri" {+     name[Group1] = "Hindi (Bolnagri)";+     key.type="FOUR_LEVEL";+    //Top Alphanumeric row+    // Roman digits+    key <TLDE>  { [   U0902,	U0901,		apostrophe, 	asciitilde ] }; // apostrophe: anusvara, candrabindu+    key <AE01>  { [   1,	exclam,		U0967,		exclam	   ] };+    key <AE02>  { [   2,	at,		U0968,		at	   ] };+    key <AE03>  { [   3,    	numbersign, 	U0969,		numbersign ] };+    key <AE04>  { [   4,	dollar,		U096A			    ] }; // Rupee symbol on AltGr+4+    key <AE05>  { [   5,	percent,	U096B,		percent    ] };+    key <AE06>  { [   6,	asciicircum,	U096C,		asciicircum ] };+    key <AE07>  { [   7,	ampersand,	U096D,		ampersand  ] };+    key <AE08>  { [   8,	asterisk,	U096E,		asterisk   ] };+    key <AE09>  { [   9,	parenleft,	U096F,		parenleft  ] };+    key <AE10>  { [   0,	parenright,	U0966,		parenright ] };+    key <AE11>	{ [   minus,	underscore	     ] };+    key <AE12>	{ [   equal,	plus		     ] };+    key <BKSL>  { [   U0964,	U0965,		U007C,		U005C   ] }; //pipe : danda, double danda++    //Q Row	+    key <AD01>   { [   U200C, 	U200D   ] };  // Q: ZWNJ, ZWJ+    key <AD02>   { [   U0935,  	U950	] };  // W: wa, OM+    key <AD03>   { [   U0947,   U0948,	U090F,	U0910   ] };  // E: e, ai matras+    key <AD04>   { [   U0930,	U0943,	U0931,  U090B  	] };  // R: ra, vocalic Ri+    key <AD05>   { [   U0924,   U0925   ] };  // T: ta, tha+    key <AD06>   { [   U092f,	U091E   ] };  // Y: ya, nya+    key <AD07>   { [   U0941,   U0942,	U0909,	U090A   ] };  // U: u, uu matras+    key <AD08>   { [   U093F,   U0940,	U0907,	U0908   ] };  // I: i, ii matras+    key <AD09>   { [   U094B,   U094C,	U0913,	U0914   ] };  // O: o, au matras+    key <AD10>   { [   U092A,   U092B   ] };  // P: pa, pha+    key <AD11>   { [   bracketleft,   braceleft   ] };  +    key <AD12>	 { [   bracketright, braceright   ] };+    +    //A Row+    key <AC01>   { [   U093E,	 U0906,	U0905,	U0906  ] };   // A: aa, full A, AA+    key <AC02>   { [   U0938,    U0937   ] };  // S: sa, ssa+    key <AC03>   { [   U0926,    U0927   ] };  // D: da, dha+    key <AC04>   { [   U091F,    U0920   ] };  // F: TA, THA+    key <AC05>   { [   U0917,    U0918   ] };  // G: ga, gha+    key <AC06>   { [   U0939,    U0903   ] };  // H: ha, visarg +    key <AC07>   { [   U091C,    U091D   ] };  // J: ja, jha+    key <AC08>   { [   U0915,    U0916   ] };  // K: ka, kha+    key <AC09>   { [   U0932,	 U0933,	U0962,   U090C   ] };  // L: la, vocalic L or lru matra+    key <AC10>   { [   semicolon, colon  ] }; +    key <AC11>   { [apostrophe, quotedbl ] };++    //Z Row+    key <AB01>   { [   U0936,	 U0945, U0936, U090D 	 ] };  // Z: sha, akaar candra+    key <AB02>   { [   U094D,    U0949, U094D, U0911	 ] };  // X: halant, aakaar candra, chandra A+    key <AB03>   { [   U091A,    U091B   ] };  // C: ca, cha+    key <AB04>   { [   U0921,    U0922   ] };  // V: da, dha+    key <AB05>   { [   U092C,    U092D   ] };  // B: ba, bha+    key <AB06>   { [   U0928,    U0923   ] };  // N: na, nna+    key <AB07>   { [   U092E,    U0919,	U092E,	U093D   ] };  // M: ma, nga, avagraha+    key <AB08>   { [   comma,    U0970	 ] };// comma: comma, dev abbreviation sign+    key <AB09>   { [   period,   U093C 	 ] };  // period: period, nukta+    key <AB10>	 { [   slash,   question ] };++   // begin modifier mappings+//    modifier_map Shift  { Shift_L };+//    modifier_map Lock   { Caps_Lock };+//    modifier_map Control{ Control_L };+//    modifier_map Mod3   { Mode_switch };++    include "level3(ralt_switch)"+    include "rupeesign(4)"+};++// based on a keyboard map from an 'xkb/symbols/ben' file++partial alphanumeric_keys+xkb_symbols "ben" {+    name[Group1]= "Bengali (India)";++      // Mainly numbers.+      key <AE01> { [      U09E7 		]	};+      key <AE02> { [      U09E8 		]	};+      key <AE03> { [      U09E9 		]	};+      key <AE04> { [      U09EA 		]	};+      key <AE05> { [      U09EB		]	};+      key <AE06> { [      U09EC 		]	};+      key <AE07> { [      U09ED	        ]	};+      key <AE08> { [      U09EE 		]	};+      key <AE09> { [      U09EF, parenleft	]	};+      key <AE10> { [      U09E6, parenright	]	};+      key <AE11> { [      minus, U0983 	]	};+      key <AE12> { [      U098B, U09C3	]	};++// Mainly long vowels++      key <AD01> { [      U09CC,  U0994	]	};+      key <AD02> { [      U09C8,  U0990	]	};+      key <AD03> { [      U09BE,  U0986	]	};+      key <AD04> { [      U09C0,  U0988	]	};+      key <AD05> { [      U09C2,  U098A	]	};++// Mainly voiced consonants++      key <AD06> { [      U09AC,  U09AD	]	};+      key <AD07> { [      U09B9,  U0999 ]	};+      key <AD08> { [      U0997,  U0998 ]	};+      key <AD09> { [      U09A6,  U09A7 ]	};+      key <AD10> { [      U099C,  U099D ]	};+      key <AD11> { [      U09A1, U09A2 	]	};+      key <AD12> { [      U09BC, U099E 	]	};++// Mainly short vowels+      key <AC01> { [      U09CB,  U0993 ]	};+      key <AC02> { [      U09C7,  U098F ]	};+      key <AC03> { [      U09CD,  U0985 ]	};+      key <AC04> { [      U09BF,  U0987 ]	};+      key <AC05> { [      U09C1,  U0989 ]	};+++// Mainly unvoiced consonants++      key <AC06> { [      U09AA,  U09AB ]	};+      key <AC07> { [      U09B0,  U09DD ]	};+      key <AC08> { [      U0995,  U0996 ]	};+      key <AC09> { [      U09A4,  U09A5 ]	};+      key <AC10> { [      U099A,  U099B ]	};+      key <AC11> { [      U099F, U09A0 	]	};+      key <BKSL> { [      U005C, U007C 	]	};++      key <AB01> { [      z, Z  		]       };+      key <AB02> { [      U0982,  U0981 ]       };+      key <AB03> { [      U09AE,  U09A3 ]       };+      key <AB04> { [      U09A8,  U09A8 ]       };+      key <AB05> { [      U09AC,  U09AC ]       };+      key <AB06> { [      U09B2,  U09B2 ]       };+      key <AB07> { [      U09B8,  U09B6 ]       };+      key <AB08> { [      comma,      U09B7 ]       };+      key <AB09> { [      period,     U0964 ]       };+      key <AB10> { [      U09DF,  U09AF	]       };++    include "level3(ralt_switch)"+    include "rupeesign(4)"+};++xkb_symbols "ben_probhat" {+ name[Group1]= "Bengali (India, Probhat)";+   key <ESC>  { [ Escape ] };++// numbers+   key <TLDE> { [ U200D, asciitilde   ] };+   key <AE01> { [ U09E7, exclam       ] };+   key <AE02> { [ U09E8, at           ] };+   key <AE03> { [ U09E9, numbersign   ] };+   key <AE04> { [ U09EA, U09F3    ] };+   key <AE05> { [ U09EB, percent      ] };+   key <AE06> { [ U09EC, asciicircum  ] };+   key <AE07> { [ U09ED, U099E    ] };+   key <AE08> { [ U09EE, U09CE    ] };+   key <AE09> { [ U09EF, parenleft    ] };+   key <AE10> { [ U09E6, parenright   ] };+   key <AE11> { [ minus,     underscore   ] };+   key <AE12> { [ equal,     plus         ] };+   key <BKSP> { [ BackSpace               ] };++// tab, q to ] +   key <TAB>  { [   Tab,  ISO_Left_Tab     ] };+   key <AD01> { [   U09A6,  U09A7  ] };+   key <AD02> { [   U09C2,  U098A  ] };+   key <AD03> { [   U09C0,  U0988  ] };+   key <AD04> { [   U09B0,  U09DC  ] };+   key <AD05> { [   U099F,  U09A0  ] };+   key <AD06> { [   U098F,  U0990  ] };+   key <AD07> { [   U09C1,  U0989  ] };+   key <AD08> { [   U09BF,  U0987  ] };+   key <AD09> { [   U0993,  U0994  ] };+   key <AD10> { [   U09AA,  U09AB  ] };+   key <AD11> { [   U09C7,  U09C8  ] };+   key <AD12> { [   U09CB,  U09CC  ] };+   key <RTRN> { [   Return                 ] };++// caps, a to ' +//   key <CAPS> { [   Caps_Lock              ] };+   key <AC01> { [   U09BE,  U0985  ] };+   key <AC02> { [   U09B8,  U09B7  ] };+   key <AC03> { [   U09A1,  U09A2  ] };+   key <AC04> { [   U09A4,  U09A5  ] };+   key <AC05> { [   U0997,  U0998  ] };+   key <AC06> { [   U09B9,  U0983  ] };+   key <AC07> { [   U099C,  U099D  ] };+   key <AC08> { [   U0995,  U0996  ] };+   key <AC09> { [   U09B2,  U0982  ] };+   key <AC10> { [   semicolon,  colon      ] };+   key <AC11> { [   quoteright, quotedbl   ] };++// shift, z to /+//   key <LFSH> { [   Shift_L                ] };+   key <AB01> { [   U09DF,  U09AF  ] };+   key <AB02> { [   U09B6,  U09DD  ] };+   key <AB03> { [   U099A,  U099B  ] };+   key <AB04> { [   U0986,  U098B  ] };+   key <AB05> { [   U09AC,  U09AD  ] };+   key <AB06> { [   U09A8,  U09A3  ] };+   key <AB07> { [   U09AE,  U0999  ] };+   key <AB08> { [   comma,      U09C3  ] };+   key <AB09> { [   U0964,  U0981  ] };+   key <AB10> { [   U09CD,  question   ] };+   key <BKSL> { [   U200C,  U0965  ] };++//   key <LCTL> { [   Control_L              ] };+//   key <SPCE> { [   space                  ] };++//   modifier_map Shift  { Shift_L };+//   modifier_map Lock   { Caps_Lock };+//   modifier_map Control{ Control_L };++    include "level3(ralt_switch)"+    include "rupeesign(4)"+};++// Bengali Baishakhi, Bengali Baishakhi Inscript, Bengali Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812004@gmail.com>++xkb_symbols "ben_baishakhi" {+ name[Group1]= "Bengali (India, Baishakhi)";+   key <ESC>   { [ Escape 					] };++// numbers+   key <TLDE> { [ 0x100200D, 0x100200C	] };+   key <AE01> { [ 0x10009E7, exclam		] };+   key <AE02> { [ 0x10009E8, at		] };+   key <AE03> { [ 0x10009E9, numbersign	] };+   key <AE04> { [ 0x10009EA, dollar, 0x10009F2	] };+   key <AE05> { [ 0x10009EB, percent		] };+   key <AE06> { [ 0x10009EC, asciicircum, 0x10009D7    ] };+   key <AE07> { [ 0x10009ED, ampersand ] };+   key <AE08> { [ 0x10009EE,   asterisk,0x10009FA       		] };+   key <AE09> { [ 0x10009EF, parenleft    	] };+   key <AE10> { [ 0x10009E6, parenright   	] };+   key <AE11> { [ minus, underscore   	] };+   key <AE12> { [ equal,     plus 	] };+   key <BKSP> { [ BackSpace               		] };++// tab, q to ] +   key <TAB>   { [   Tab,  ISO_Left_Tab		] };+   key <AD01> { [   0x10009A1,  0x10009A2  ] };+   key <AD02> { [  0x10009C0 ,  0x10009C2  ] };+   key <AD03> { [   0x10009C7,  0x100098F, 0x1000990 ] };+   key <AD04> { [   0x10009B0 , 0x10009C3, 0x100098B             		] };+   key <AD05> { [   0x100099F,  0x10009A0	] };+   key <AD06> { [   0x10009AF,  0x10009DF	] };+   key <AD07> { [   0x10009C1,  0x1000989, 0x100098A  ] };+   key <AD08> { [   0x10009BF,  0x1000987, 0x1000988  ] };+   key <AD09> { [   0x10009CB,  0x1000993, 0x1000994	] };+   key <AD10> { [   0x10009AA,  0x10009AB	] };+   key <AD11> { [   bracketleft,  braceleft] };+   key <AD12> { [   bracketright,	braceright	] };+   key <RTRN> { [   Return                 		] };++// caps, a to ' +// key <CAPS> { [   Caps_Lock            		] };+   key <AC01> { [   0x10009BE,  0x1000985, 0x1000986  ] };+   key <AC02> { [   0x10009B8,  0x10009B6,  0x10009B7  ] };+   key <AC03> { [   0x10009A6,  0x10009A7  ] };+   key <AC04> { [   0x10009A4,   0x10009A5, 0x10009CE  ] };+   key <AC05> { [   0x1000997,  0x1000998	] };+   key <AC06> { [   0x10009CD,  0x10009B9, 0x1000983  ] };+   key <AC07> { [   0x100099C,  0x100099D	] };+   key <AC08> { [   0x1000995,  0x1000996  	] };+  key <AC09> { [   0x10009B2,  0x1000964, 0x100098C  ] };+   key <AC10> { [   semicolon,  colon  	] };+   key <AC11> { [   quoteright, quotedbl   	] };++// shift, z to /+// key <LFSH> { [   Shift_L              			] };+   key <AB01> { [   0x10009C8, 0x10009CC              		] };+   key <AB02> { [   0x10009DC, 0x10009DD              		] };+   key <AB03> { [   0x100099A,  0x100099B  ] };+   key <AB04> { [   0x10009F1,  0x10009F0	] };+   key <AB05> { [   0x10009AC,  0x10009AD  ] };+   key <AB06> { [   0x10009A8,  0x10009A3, 0x100099E  ] };+   key <AB07> { [   0x10009AE,  0x1000999, 0x1000981  ] };+   key <AB08> { [   comma,      less	] };+   key <AB09> { [    period,	greater,0x10009BC 		] };+   key <AB10> { [   slash,  question, 0x1000982   	] };+   key <BKSL> { [   backslash,        bar	] };++// third level with right-alt+    include "level3(ralt_switch)"++//   key <LCTL> { [   Control_L              ] };+//   key <SPCE> { [   space                  ] };++//   modifier_map Shift  { Shift_L };+//   modifier_map Lock   { Caps_Lock };+//   modifier_map Control{ Control_L };+++};++xkb_symbols "ben_inscript" {+    name[Group1]= "Bengali (India, Baishakhi Inscript)";++      // Mainly numbers.+      key <TLDE> { [      0x100200D, 0x100200C	] 	};+      key <AE01> { [      0x10009E7  		]	};+      key <AE02> { [      0x10009E8 		]	};+      key <AE03> { [      0x10009E9 		]	};+      key <AE04> { [      0x10009EA 		]	};+      key <AE05> { [      0x10009EB		]	};+      key <AE06> { [      0x10009EC 		]	};+      key <AE07> { [      0x10009ED	        ]	};+      key <AE08> { [      0x10009EE 		]	};+      key <AE09> { [      0x10009EF, parenleft	]	};+      key <AE10> { [      0x10009E6, parenright	]	};+      key <AE11> { [      minus, 0x1000983 	]	};+      key <AE12> { [      0x10009C3, 0x100098B 	]	};++// Mainly long vowels++      key <AD01> { [      0x10009CC,  0x1000994	]	};+      key <AD02> { [      0x10009C8,  0x1000990	]	};+      key <AD03> { [      0x10009BE,  0x1000986	]	};+      key <AD04> { [      0x10009C0,  0x1000988	]	};+      key <AD05> { [      0x10009C2,  0x100098A	]	};++// Mainly voiced consonants++      key <AD06> { [      0x10009AC,  0x10009AD	]	};+      key <AD07> { [      0x10009B9,  0x1000999 ]	};+      key <AD08> { [      0x1000997,  0x1000998 ]	};+      key <AD09> { [      0x10009A6,  0x10009A7 ]	};+      key <AD10> { [      0x100099C,  0x100099D ]	};+      key <AD11> { [      0x10009A1,  0x10009A2 ]	};+      key <AD12> { [      0x10009BC,  0x100099E ]	};++// Mainly short vowels+      key <AC01> { [      0x10009CB,  0x1000993 ]	};+      key <AC02> { [      0x10009C7,  0x100098F ]	};+      key <AC03> { [      0x10009CD,  0x1000985 ]	};+      key <AC04> { [      0x10009BF,  0x1000987 ]	};+      key <AC05> { [      0x10009C1,  0x1000989 ]	};+++// Mainly unvoiced consonants++      key <AC06> { [      0x10009AA,  0x10009AB ]	};+      key <AC07> { [      0x10009B0,  0x10009DD ]	};+      key <AC08> { [      0x1000995,  0x1000996 ]	};+      key <AC09> { [      0x10009A4,  0x10009A5 ]	};+      key <AC10> { [      0x100099A,  0x100099B ]	};+      key <AC11> { [      0x100099F, 0x10009A0 	]	};+      key <BKSL> { [      backslash, bar 	]	};++      key <AB01> { [      0x10009CE  		]       };+      key <AB02> { [      0x1000982,  0x1000981 ]       };+      key <AB03> { [      0x10009AE,  0x10009A3 ]       };+      key <AB04> { [      0x10009A8,  0x10009A8 ]       };+      key <AB05> { [      0x10009AC,  0x10009AC ]       };+      key <AB06> { [      0x10009B2,  0x10009B2 ]       };+      key <AB07> { [      0x10009B8,  0x10009B6 ]       };+      key <AB08> { [      comma,      0x10009B7 ]       };+      key <AB09> { [      period,     0x1000964 ]       };+      key <AB10> { [      0x10009DF,  0x10009AF	]       };+};++xkb_symbols "ben_gitanjali" {+ name[Group1]= "Bengali (India, Uni Gitanjali)";+   key <ESC>   { [ Escape			] };++// numbers+   key <TLDE> { [ colon, question	] };+   key <AE01> { [ 0x10009E7, 0x10009CE	] };+   key <AE02> { [ 0x10009E8, quoteright	] };+   key <AE03> { [ 0x10009E9, numbersign	] };+   key <AE04> { [ 0x10009EA, 0x10009F3	] };+   key <AE05> { [ 0x10009EB, slash	] };+   key <AE06> { [ 0x10009EC, period	] };+   key <AE07> { [ 0x10009ED, ampersand 	] };+   key <AE08> { [ 0x10009EE, asterisk 	] };+   key <AE09> { [ 0x10009EF, parenleft  ] };+   key <AE10> { [ 0x10009E6, parenright	] };+   key <AE11> { [ minus, 0x1000983   	] };+   key <AE12> { [ 0x10009C3, 0x100098B 	] };+   key <BKSP> { [ BackSpace		] };++// tab, q to ] +   key <TAB>   { [   Tab,  ISO_Left_Tab	] };+   key <AD01> { [   0x10009D7,  0x1000994 ] };+   key <AD02> { [   0x10009C8,  0x1000990 ] };+   key <AD03> { [   0x10009BE,  0x1000985 ] };+   key <AD04> { [   0x10009C0,  0x1000988 ] };+   key <AD05> { [   0x10009C2,  0x100098A ] };+   key <AD06> { [   0x10009AC,  0x10009AD ] };+   key <AD07> { [   0x10009B9,  0x1000999 ] };+   key <AD08> { [   0x1000997,  0x1000998 ] };+   key <AD09> { [   0x10009A6,  0x10009A7 ] };+   key <AD10> { [   0x100099C,  0x100099D ] };+   key <AD11> { [   0x10009A1,  0x10009A2 ] };+   key <AD12> { [   0x100200C,  0x100099E ] };+   key <RTRN> { [   Return		  ] };++// caps, a to ' +// key <CAPS> { [   Caps_Lock            		] };+   key <AC01> { [   0x100200D,  0x1000993 ] };+   key <AC02> { [   0x10009C7,  0x100098F ] };+   key <AC03> { [   0x10009CD		  ] };+   key <AC04> { [   0x10009BF,  0x1000987 ] };+   key <AC05> { [   0x10009C1,  0x1000989 ] };+   key <AC06> { [   0x10009AA,  0x10009AB ] };+   key <AC07> { [   0x10009B0,  0x10009F0 ] };+   key <AC08> { [   0x1000995,  0x1000996 ] };+   key <AC09> { [   0x10009A4,  0x10009A5 ] };+   key <AC10> { [   0x100099A,  0x100099B ] };+   key <AC11> { [   0x100099F,  0x10009A0 ] };++// shift, z to /+// key <LFSH> { [   Shift_L              			] };+   key <AB01> { [   0x10009C7, 0x100098F ] };+   key <AB02> { [   0x1000982, 0x1000981 ] };+   key <AB03> { [   0x10009AE, 0x10009A3 ] };+   key <AB04> { [   0x10009A8, 0x10009DC ] };+   key <AB05> { [   0x10009F1, 0x10009DD ] };+   key <AB06> { [   0x10009B2		 ] };+   key <AB07> { [   0x10009B8, 0x10009B6 ] };+   key <AB08> { [   comma,     0x10009B7 ] };+   key <AB09> { [   0x1000964, 0x10009FA ] };+   key <AB10> { [   0x10009AF, 0x10009DF ] };+   key <BKSL> { [   backslash, bar	 ] };++// third level with right-win+//    include "level3(lwin_switch)"++//   key <LCTL> { [   Control_L              ] };+//   key <SPCE> { [   space                  ] };++//   modifier_map Shift  { Shift_L };+//   modifier_map Lock   { Caps_Lock };+//   modifier_map Control{ Control_L };+++};+++xkb_symbols "ben_bornona" {+ name[Group1]= "Bengali (India, Bornona)";+   key <ESC>  { [ Escape 					] };++// numbers+   key <TLDE> { [ 0x100200D, 0x100200C   	] };+   key <AE01> { [ 0x10009E7, exclam         	] };+   key <AE02> { [ 0x10009E8, 0x1000981 	] };+   key <AE03> { [ 0x10009E9, numbersign   	] };+   key <AE04> { [ 0x10009EA, 0x10009F3    	] };+   key <AE05> { [ 0x10009EB, percent      	] };+   key <AE06> { [ 0x10009EC, 0x1000983    	] };+   key <AE07> { [ 0x10009ED, 0x10009CE	] };+   key <AE08> { [ 0x10009EE, asterisk		] };+   key <AE09> { [ 0x10009EF, parenleft    	] };+   key <AE10> { [ 0x10009E6, parenright	] };+   key <AE11> { [ minus,	   underscore	] };+   key <AE12> { [ equal,          plus			] };+   key <BKSP> { [ BackSpace               		] };++// tab, q to ] +   key <TAB>   { [   Tab,  	ISO_Left_Tab	] };+   key <AD01> { [   0x1000982,  0x1000999, 0x10009D7	] };+   key <AD02> { [   0x10009A2,  0x10009A0, 0x100098A ] };+   key <AD03> { [   0x10009C7,  0x10009C8, 0x1000988	] };+   key <AD04> { [   0x10009B0,  0x10009C3, 0x100098B	] };+   key <AD05> { [   0x10009A4,  0x100099F	] };+   key <AD06> { [   0x10009A7,  0x10009A5, 0x100098F  ] };+   key <AD07> { [   0x10009C1,  0x10009C2, 0x1000989	] };+   key <AD08> { [   0x10009BF,  0x10009C0, 0x1000987	] };+   key <AD09> { [   0x10009CB,  0x10009CC, 0x1000993	] };+   key <AD10> { [   0x10009AA, 0x1000990, 0x1000994		] };+   key <AD11> { [   0x100005B,  0x100007B, 0x10009DC  ] };+   key <AD12> { [   0x100005D,  0x100007D  ] };+   key <RTRN> { [   Return					] };++// caps, a to ' +// key <CAPS> { [   Caps_Lock            		] };+   key <AC01> { [   0x10009BE,  0x1000985, 0x10009F4  ] };+   key <AC02> { [   0x10009B8,  0x10009B6, 0x10009F5  ] };+   key <AC03> { [   0x10009A6,  0x10009A1, 0x10009F8  ] };+   key <AC04> { [   0x10009AB				] };+   key <AC05> { [   0x1000997,  0x1000998	] };+   key <AC06> { [   0x10009CD, 0x10009B9	] };+   key <AC07> { [   0x100099C,  0x100099D	] };+   key <AC08> { [   0x1000995,  0x1000996	] };+   key <AC09> { [   0x10009B2,  0x1000964  ] };+   key <AC10> { [   semicolon,  0x100003A	] };+   key <AC11> { [   quoteright, quotedbl   	] };++// shift, z to /+// key <LFSH> { [   Shift_L              			] };+   key <AB01> { [   0x10009AF, 0x10009DC	] };+   key <AB02> { [   0x10009B7, 0x10009DD, 0x10009FA	] };+   key <AB03> { [   0x100099A,  0x100099B  ] };+   key <AB04> { [   0x10009AD				] };+   key <AB05> { [   0x10009AC,  0x10009DF	] };+   key <AB06> { [   0x10009A8,  0x10009A3	] };+   key <AB07> { [   0x10009AE,  0x100099E	] };+   key <AB08> { [   comma,      0x100003C	] };+   key <AB09> { [   0x100002E,  0x100003E  ] };+   key <AB10> { [   0x100002F,  question   	] };+   key <BKSL> { [   0x10009F1,  0x10009F0	] };++//   key <LCTL> { [   Control_L              ] };+//   key <SPCE> { [   space                  ] };++//   modifier_map Shift  { Shift_L };+//   modifier_map Lock   { Caps_Lock };+//   modifier_map Control{ Control_L };+// third level with right-alt+    include "level3(ralt_switch)"++};++partial alphanumeric_keys +xkb_symbols "guj" {+      name[Group1]= "Gujarati";++      // Mainly numbers.+      key <AE01> { [      U0AE7, U0A8D 	]	};+      key <AE02> { [      U0AE8, U0AC5 	]	};+      key <AE03> { [      U0AE9 	 	]	};+      key <AE04> { [      U0AEA  	 	]	};+      key <AE05> { [      U0AEB  	 	]	};+      key <AE06> { [      U0AEC  	 	]	};+      key <AE07> { [      U0AED 		]	};+      key <AE08> { [      U0AEE  	 	]	};+      key <AE09> { [      U0AEF, parenleft 	]	};+      key <AE10> { [      U0AE6, parenright ]	};+      key <AE11> { [      minus,     U0A83  ]	};+      key <AE12> { [      U0A8B, U0AC3 	]	};++// Mainly long vowels++      key <AD01> { [      U0ACC, U0A94  ]	};+      key <AD02> { [      U0AC8, U0A90  ]	};+      key <AD03> { [      U0ABE, U0A86  ]	};+      key <AD04> { [      U0AC0, U0A88  ]	};+      key <AD05> { [      U0AC2, U0A8A  ]	};++// Mainly voiced consonants++      key <AD06> { [      U0AAC, U0AAD 	]	};+      key <AD07> { [      U0AB9, U0A99 	]	};+      key <AD08> { [      U0A97, U0A98 	]	};+      key <AD09> { [      U0AA6, U0AA7 	]	};+      key <AD10> { [      U0A9C, U0A9D 	]	};+      key <AD11> { [      U0AA1, U0AA2 	]	};+      key <AD12> { [      U0ABC, U0A9E 	]	};++// Mainly short vowels+      key <AC01> { [      U0ACB, U0A93	]	};+      key <AC02> { [      U0AC7, U0A8F	]	};+      key <AC03> { [      U0ACD, U0A85  ]	};+      key <AC04> { [      U0ABF, U0A87  ]	};+      key <AC05> { [      U0AC1, U0A89  ]	};++// Mainly unvoiced consonants++      key <AC06> { [      U0AAA, U0AAB 	]	};+      key <AC07> { [      U0AB0, U0AB0 	]	};+      key <AC08> { [      U0A95, U0A96 	]	};+      key <AC09> { [      U0AA4, U0AA5 	]	};+      key <AC10> { [      U0A9A, U0A9B 	]	};+      key <AC11> { [      U0A9F, U0AA0 	]	};+      key <BKSL> { [      U0AC9, U0A91 	]	};++      key <AB01> { [      z        , Z		]       };+      key <AB02> { [      U0A82, U0A81	]       };+      key <AB03> { [      U0AAE, U0AA3  ]       };+      key <AB04> { [      U0AA8, U0AA8   ]       };+      key <AB05> { [      U0AB5, U0AB5   ]       };+      key <AB06> { [      U0AB2, U0AB3  ]       };+      key <AB07> { [      U0AB8, U0AB6  ]       };+      key <AB08> { [      comma,     U0AB7  ]       };+      key <AB09> { [      period,    U0964  ]       };+      key <AB10> { [      U0AAF, question   ]       };+      include "rupeesign(4)"+      include "level3(ralt_switch)"+};++partial alphanumeric_keys +xkb_symbols "kan" {++    // Inscript layout for Kannada  +    // Author : G Karunakar <karunakar@freedomink.org>+    // Date   : Wed Nov 13 17:22:58 IST 2002+    // Kannada digits mapped in basic only++    name[Group1]= "Kannada";++    key <TLDE> { [  U0cca, U0c92	] };+    key <AE01> { [  U0ce7			] };+    key <AE02> { [  U0ce8			] };+    key <AE03> { [  U0ce9			] };+    key <AE04> { [  U0cea			] };+    key <AE05> { [  U0ceb			] };+    key <AE06> { [  U0cec			] };+    key <AE07> { [  U0ced			] };+    key <AE08> { [  U0cee			] };+    key <AE09> { [  U0cef			] };+    key <AE10> { [  U0ce6			] };+    key <AE11> { [  U0c83			] };+    key <AE12> { [  U0cc3, U0c8b	] };++    key <AD01> { [  U0ccc, U0c94	] };+    key <AD02> { [  U0cc8, U0c90	] };+    key <AD03> { [  U0cbe, U0c86	] };+    key <AD04> { [  U0cc0, U0c88	] };+    key <AD05> { [  U0cc2, U0c8a	] };+    key <AD06> { [  U0cac, U0cad	] };+    key <AD07> { [  U0cb9, U0c99	] };+    key <AD08> { [  U0c97, U0c98	] };+    key <AD09> { [  U0ca6, U0ca7	] };+    key <AD10> { [  U0c9c, U0c9d	] };+    key <AD11> { [  U0ca1, U0ca2	] };+    key <AD12> { [  U0cbc, U0c9e	] };+ +    key <AC01> { [  U0ccb, U0c93	] };+    key <AC02> { [  U0cc7, U0c8f	] };+    key <AC03> { [  U0ccd, U0c85	] };+    key <AC04> { [  U0cbf, U0c87	] };+    key <AC05> { [  U0cc1, U0c89	] };+    key <AC06> { [  U0caa, U0cab	] };+    key <AC07> { [  U0cb0, U0cb1	] };+    key <AC08> { [  U0c95, U0c96	] };+    key <AC09> { [  U0ca4, U0ca5	] };+    key <AC10> { [  U0c9a, U0c9b	] };+    key <AC11> { [  U0c9f, U0ca0	] };++    key <AB01> { [  U0cc6, U0c8e	] };+    key <AB02> { [  U0c82			] };+    key <AB03> { [  U0cae, U0ca3	] };+    key <AB04> { [  U0ca8			] };+    key <AB05> { [  U0cb5, U0cb4	] };+    key <AB06> { [  U0cb2, U0cb3	] };+    key <AB07> { [  U0cb8, U0cb6	] };+    key <AB08> { [  comma     , U0cb7	] };+    key <AB09> { [  period    				] };+    key <AB10> { [  U0caf, U0040	] };++    key <RALT> {+	symbols[Group1] = [ Mode_switch, Multi_key ],+	virtualMods = AltGr+    };+    include "rupeesign(4)"+    include "level3(ralt_switch)"+};++// Description : A keymap for Malayalam+// Encoding    : Unicode (http://www.unicode.org)+// Author      : Baiju M <baiju@freeshell.org>+// Date        : Sat Aug  17 21:10:48 IST 2002+// Mapping:++partial alphanumeric_keys +xkb_symbols "mal" {++    name[Group1] = "Malayalam";++    //From grave to backslash (\)+    +    key <TLDE> { [ U0d4a , U0d12           ] };++// svu: +// These lines were in former "mal" variant - +// but the digits are replaced with the ones from 'mal_plusnum' -+// for the integrity of all Indian layouts+//+//    key <AE01> { [1           ,     exclam           ] }; +//    key <AE02> { [2           ,         at           ] };+//    key <AE03> { [3           , numbersign           ] };+//    key <AE04> { [4           ,     dollar           ] };+//    key <AE05> { [5           ,    percent           ] };+//    key <AE06> { [6           ,asciicircum           ] };+//    key <AE07> { [7           ,  ampersand           ] };+//    key <AE08> { [8           , asterisk           ] };+//    key <AE09> { [9           ,  parenleft           ] };+//    key <AE10> { [0           , parenright           ] };++      key <AE01> { [ U0d67 ,      exclam ] };+      key <AE02> { [ U0d68 ,          at ] };+      key <AE03> { [ U0d69 ,  numbersign ] };+      key <AE04> { [ U0d6a ,      dollar ] };+      key <AE05> { [ U0d6b ,     percent ] };+      key <AE06> { [ U0d6c , asciicircum ] };+      key <AE07> { [ U0d6d ,   ampersand ] };+      key <AE08> { [ U0d6e ,  asterisk ] };+      key <AE09> { [ U0d6f ,   parenleft ] };+      key <AE10> { [ U0d66 ,  parenright ] };++    key <AE11> { [ minus      , U0d03           ] };+    key <AE12> { [ U0d43 , U0d0b           ] };+    key <BKSL>  { [U0200c, U05C ]};//bksl: ZWNJ ++  +    // From 'q' to right bracket (])+    +    key <AD01> { [ U0d4c , U0d14 ] };+    key <AD02> { [ U0d48 , U0d10 ] };+    key <AD03> { [ U0d3e , U0d06 ] };+    key <AD04> { [ U0d40 , U0d08 ] };+    key <AD05> { [ U0d42 , U0d0a ] };+    key <AD06> { [ U0d2c , U0d2d ] };+    key <AD07> { [ U0d39 , U0d19 ] };+    key <AD08> { [ U0d17 , U0d18 ] };+    key <AD09> { [ U0d26 , U0d27 ] };+    key <AD10> { [ U0d1c , U0d1d ] };+    key <AD11> { [ U0d21 , U0d22 ] };+    key <AD12> { [ U0200d , U0d1e ] };++    // From 'a' to apostrophe (')+    +    key <AC01> { [ U0d4b , U0d13 ] };+    key <AC02> { [ U0d47 , U0d0f ] };+    key <AC03> { [ U0d4d , U0d05 ] };+    key <AC04> { [ U0d3f , U0d07 ] };+    key <AC05> { [ U0d41 , U0d09 ] };+    key <AC06> { [ U0d2a , U0d2b ] };+    key <AC07> { [ U0d30 , U0d31 ] };+    key <AC08> { [ U0d15 , U0d16 ] };+    key <AC09> { [ U0d24 , U0d25 ] };+    key <AC10> { [ U0d1a , U0d1b ] };+    key <AC11> { [ U0d1f , U0d20 ] };+    +    // From 'z' to slash (/)+    +    key <AB01> { [ U0d46 , U0d0e ] };+    key <AB02> { [ U0d02 , U200b ] };//X:ZWSP+    key <AB03> { [ U0d2e , U0d23 ] };+    key <AB04> { [ U0d28 ] };+    key <AB05> { [ U0d35 , U0d34 ] };+    key <AB06> { [ U0d32 , U0d33 ] };+    key <AB07> { [ U0d38 , U0d36 ] };+    key <AB08> { [ comma      , U0d37 ] };+    key <AB09> { [ period     , U0200d ] };+    key <AB10> { [ U0d2f , question   ] };++    include "rupeesign(4)"+    include "level3(ralt_switch)"++};++//Name		:	Lalitha+//Description	:	A transliteration keyboard layout for Malayalam+//Original Author :	Noah Levitt<nlevitt at columbia.edu>+//Current Main  : 	Jinesh K.J<jinesh.k@gmail.com>, Swathantra Malayalam Computing (SMC)<smc-discuss@googlegroups.com>++partial alphanumeric_keys+xkb_symbols "mal_lalitha" {+     name[Group1] = "Malayalam (Lalitha)";+     key.type="FOUR_LEVEL";+    //Top Alphanumeric row+    // Roman digits+    key <TLDE>  { [   U0D4D,	U0D02,		apostrophe, 	asciitilde ] }; // apostrophe: virama(chandrakala),anusvara+    key <AE01>  { [   1,	exclam,	U0D67,		exclam	   ] };+    key <AE02>  { [   2,	at,		U0D68,		at	   ] };+    key <AE03>  { [   3,    	numbersign, 	U0D69,		numbersign ] };+    key <AE04>  { [   4,	dollar,		U0D6A			     ] };+    key <AE05>  { [   5,	percent,	U0D6B,		percent    ] };+    key <AE06>  { [   6,	asciicircum,	U0D6C,		asciicircum ] };+    key <AE07>  { [   7,	ampersand,	U0D6D,		ampersand  ] };+    key <AE08>  { [   8,	asterisk,	U0D6E,		asterisk   ] };+    key <AE09>  { [   9,	parenleft,	U0D6F,		parenleft  ] };+    key <AE10>  { [   0,	parenright,	U0D66,		parenright ] };+    key <AE11>	{ [   minus,	underscore	     ] };+    key <AE12>	{ [   equal,	plus		     ] };+    key <BKSL>  { [   U005C,	U007C,		U200C	] };//backslash:pipe,backslash,ZWNJ ++    //Q Row	+    key <AD01>   { [   U0D48,	U0D4C,	U0D10,	U0D14  ] }; // Q: ai and au matras +    key <AD02>   { [   U0D35	] };  // W: wa, OM+    key <AD03>   { [   U0D46,   U0D47,	U0D0E,	U0D0F   ] };  // E: e,ee matras+    key <AD04>   { [   U0D30,	U0D31,	U0D43,	U0D0B  	] };  // R: ra,rra, vocalic Ri+    key <AD05>   { [   U0D24,   U0D25,	U0D1F,	U0D20   ] };  // T: tha, ttha,ta,tta+    key <AD06>   { [   U0D2f    ] };  // Y: ya+    key <AD07>   { [   U0D41,   U0D42,	U0D09,	U0D0A   ] };  // U: u, uu matras+    key <AD08>   { [   U0D3F,   U0D40,	U0D07,	U0D08   ] };  // I: i, ii matras+    key <AD09>   { [   U0D4A,   U0D4B,	U0D12,	U0D13   ] };  // O: o, oo matras+    key <AD10>   { [   U0D2A   ] };  // P: pa+    key <AD11>   { [   bracketleft,   braceleft   ] };//braceleft:   +    key <AD12>	 { [   bracketright, braceright   ] };//braceright:+    +    //A Row+    key <AC01>   { [   U0D3E,	 U0D05,	U0D06,	U0D05  ] };   // A: a,aa+    key <AC02>   { [   U0D38,    U0D37   ] };  // S: sa, ssa+    key <AC03>   { [   U0D26,    U0D27,	U0D21,	U0D22   ] };  // D: soft da,soft dda,hard da,hard dda,+    key <AC04>   { [   U0D2B     ] };  // F: pha+    key <AC05>   { [   U0D17,    U0D18   ] };  // G: ga, gha+    key <AC06>   { [   U0D39,    U0D03   ] };  // H: ha, visarg +    key <AC07>   { [   U0D1C,    U0D1D   ] };  // J: ja, jha+    key <AC08>   { [   U0D15,    U0D16   ] };  // K: ka, kha+    key <AC09>   { [   U0D32,	 U0D33   ] };  // L: la, vocalic L or lru matra`+    key <AC10>   { [   semicolon, colon  ] }; +    key <AC11>   { [apostrophe, quotedbl ] };++    //Z Row+    key <AB01>   { [   U0D34,	 U0D36 	 ] };  // Z: sha,zha+    key <AB02>   { [   U0D4D,	 U200B  ] };  // X: chandrakala,ZWSP+    key <AB03>   { [   U0D1A,    U0D1B   ] };  // C: ca, cha+    key <AB04>   { [   U0D35,	 U200D  ] };  // V: va,ZWJ+    key <AB05>   { [   U0D2C,    U0D2D   ] };  // B: ba, bha+    key <AB06>   { [   U0D28,    U0D23,	U0D19,	U0D1E   ] };  // N: na, hard na,nga,nha+    key <AB07>   { [   U0D2E,	 U0D02  ] };  // M: ma+    key <AB08>   { [   comma,    U003C ] };// comma: comma+    key <AB09>   { [   period, 	 U003E ] };  // period: period+    key <AB10>	 { [   slash,   question ] };++   // begin modifier mappings+//    modifier_map Shift  { Shift_L };+//    modifier_map Lock   { Caps_Lock };+//    modifier_map Control{ Control_L };+//    modifier_map Mod3   { Mode_switch };+    include "level3(ralt_switch)"+    include "rupeesign(4)"+};+++partial alphanumeric_keys +xkb_symbols "ori" {+    // Inscript layout for Oriya  +    // Author: G Karunakar <karunakar@freedomink.org>+    // Date: Wed Nov 13 18:16:19 IST 2002++    name[Group1]= "Oriya";+    +    key <AE01> { [  U0b67			] };+    key <AE02> { [  U0b68			] };+    key <AE03> { [  U0b69			] };+    key <AE04> { [  U0b6a			] };+    key <AE05> { [  U0b6b			] };+    key <AE06> { [  U0b6c			] };+    key <AE07> { [  U0b6d			] };+    key <AE08> { [  U0b6e			] };+    key <AE09> { [  U0b6f			] };+    key <AE10> { [  U0b66			] };+    key <AE11> { [  U0b03			] };+    key <AE12> { [  U0b43, U0b0b	] };++    key <AD01> { [  U0b4c, U0b14	] };+    key <AD02> { [  U0b48, U0b10	] };+    key <AD03> { [  U0b3e, U0b06	] };+    key <AD04> { [  U0b40, U0b08	] };+    key <AD05> { [  U0b42, U0b0a	] };+    key <AD06> { [  U0b2c, U0b2d	] };+    key <AD07> { [  U0b39, U0b19	] };+    key <AD08> { [  U0b17, U0b18	] };+    key <AD09> { [  U0b26, U0b27	] };+    key <AD10> { [  U0b1c, U0b1d	] };+    key <AD11> { [  U0b21, U0b22	] };+    key <AD12> { [  U0b3c, U0b1e	] };+ +    key <AC01> { [  U0b4b, U0b13	] };+    key <AC02> { [  U0b47, U0b0f	] };+    key <AC03> { [  U0b4d, U0b05	] };+    key <AC04> { [  U0b3f, U0b07	] };+    key <AC05> { [  U0b41, U0b09	] };+    key <AC06> { [  U0b2a, U0b2b	] };+    key <AC07> { [  U0b30			] };+    key <AC08> { [  U0b15, U0b16	] };+    key <AC09> { [  U0b24, U0b25	] };+    key <AC10> { [  U0b1a, U0b1b	] };+    key <AC11> { [  U0b1f, U0b20	] };+ +    key <AB02> { [  U0b02, U0b01	] };+    key <AB03> { [  U0b2e, U0b23	] };+    key <AB04> { [  U0b28			] };+    key <AB05> { [  U0b35			] };+    key <AB06> { [  U0b32, U0b33	] };+    key <AB07> { [  U0b38, U0b36	] };+    key <AB08> { [  comma     , U0b37	] };+    key <AB09> { [  period    				] };+    key <AB10> { [  U0b2f, U0040	] };++    key <RALT> {+	symbols[Group1] = [ Mode_switch, Multi_key ],+	virtualMods = AltGr+    };+    include "rupeesign(4)"+    include "level3(ralt_switch)"+};++// based on a keyboard map from an 'xkb/symbols/tml' file+// INSCRIPT+partial alphanumeric_keys +xkb_symbols "tam" {+      name[Group1]= "Tamil";++      key <TLDE> { [      U0BCA, U0B92	]	};++      // Mainly numbers.+      key <AE01> { [      U0BE7 		]	};+      key <AE02> { [      U0BE8 		]	};+      key <AE03> { [      U0BE9 		]	};+      key <AE04> { [      U0BEA 		]	};+      key <AE05> { [      U0BEB 		]	};+      key <AE06> { [      U0BEC 		]	};+      key <AE07> { [      U0BED        	]	};+      key <AE08> { [      U0BEE 		]	};+      key <AE09> { [      U0BEF, parenleft	]	};+      key <AE10> { [      U0BF0, parenright	]	};+      key <AE11> { [      U0BF1, U0B83  ]	};+      key <AE12> { [      U0BF2, plus	] 	};++// Mainly long vowels++      key <AD01> { [      U0BCC,  U0B94 ]	};+      key <AD02> { [      U0BC8,  U0B90 ]	};+      key <AD03> { [      U0BBE,  U0B86 ]	};+      key <AD04> { [      U0BC0,  U0B88 ]	};+      key <AD05> { [      U0BC2,  U0B8A ]	};++// Mainly voiced consonants++      key <AD07> { [      U0BB9, U0B99	]	};+      key <AD10> { [      U0B9c 	]	}; +      key <AD12> { [      U0B9E				]	};++// Mainly short vowels+      key <AC01> { [      U0BCB,  U0B93 ]	};+      key <AC02> { [      U0BC7,  U0B8F ]	};+      key <AC03> { [      U0BCD,  U0B85 ]	};+      key <AC04> { [      U0BBF,  U0B87 ]	};+      key <AC05> { [      U0BC1,  U0B89 ]	};++// Mainly unvoiced consonants++      key <AC06> { [      U0BAA 		]	};+      key <AC07> { [      U0BB0,  U0BB1 ]	};+      key <AC08> { [      U0B95 		]	};+      key <AC09> { [      U0BA4 		]	};+      key <AC10> { [      U0B9A 		]	};+      key <AC11> { [      U0B9F 		]	};+      key <BKSL> { [      U005C, U007C	]	};//backslash-bar  - Changed to Unicode++      key <AB01> { [      U0BC6,  U0B8E	]	};+      key <AB02> { [      U0B82   		]       };+      key <AB03> { [      U0BAE,  U0BA3 ]       };+      key <AB04> { [      U0BA8,  U0BA9 ]       };+      key <AB05> { [      U0BB5,  U0BB4 ]       };+      key <AB06> { [      U0BB2,  U0BB3 ]       };+      key <AB07> { [      U0BB8,  U0BB6	]       };+      key <AB08> { [      comma,      U0BB7 ]       };+      key <AB09> { [      period,     U0964 ]       };+      key <AB10> { [      U0BAF,  question  ]       };++      include "level3(ralt_switch)"+      include "rupeesign(4)"+};++partial alphanumeric_keys +xkb_symbols "tam_unicode" {++// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: Unicode (http://www.unicode.org)+// Author: Thuraiappah Vaseeharan <vasee@ieee.org>+// Modifed by: Malathi S <malathiramya@gmail.com>+// Secondary contact: Sri Ramadoss M <amachu@au-kbc.org>+// Date  : Fri Sep 4 11:32:00 CST 2009+// Mapping:+  +    name[Group1]= "Tamil (Unicode)";++    // granthas+    key <TLDE> {  [ apostrophe, asciitilde ] };+    key <AE01> {  [ U0031, exclam ] } ;+    key <AE02> {  [ U0032, at ] } ;+    key <AE03> {  [ U0033, numbersign ] } ;+    key <AE04> {  [ U0034, U0BF9 ] } ;+    key <AE05> {  [ U0035, percent ] } ;+    key <AE06> {  [ U0036, asciicircum ] } ;+    key <AE07> {  [ U0037, ampersand ] } ;+    key <AE08> {  [ U0038, asterisk ] } ;+    key <AE09> {  [ U0039, parenleft ] } ;+    key <AE10> {  [ U0030, parenright ] } ;+    key <AE11> {  [ minus, underscore ] };+    key <AE12> {  [ equal, plus	] };+++    // Qrow+    key <AD01> {  [ U0B9E, U0BB6 ] };+    key <AD02> {  [ U0BB1, U0BB7 ] };+    key <AD03> {  [ U0BA8, U0BB8 ] };+    key <AD04> {  [ U0B9A, U0BB9 ] };+    key <AD05> {  [ U0BB5, U0B9C ] };+    key <AD06> {  [ U0BB2 ] };+    key <AD07> {  [ U0BB0 ] };+    key <AD08> {  [ U0BC8, U0B90 ] };+    key <AD09> {  [ U0BCA, U0BCB ] };+    key <AD10> {  [ U0BBF, U0BC0 ] };+    key <AD11> {  [ U0BC1, U0BC2 ] };++    // Arow+    key <AC01> { [ U0BAF ] };+    key <AC02> { [ U0BB3 ] };+    key <AC03> { [ U0BA9 ] };+    key <AC04> { [ U0B95 ] };+    key <AC05> { [ U0BAA ] };+    key <AC06> { [ U0BBE, U0BB4 ] };+    key <AC07> { [ U0BA4 ] };+    key <AC08> { [ U0BAE ] };+    key <AC09> { [ U0B9F ] };+    key <AC10> { [ U0BCD, U0B83 ] };+    key <AC11> { [ U0B99 ] };+    +    // Zrow+    key <AB01> { [ U0BA3 ]  };+    key <AB02> { [ U0B92, U0B93 ]  };+    key <AB03> { [ U0B89, U0B8A ]  };+    key <AB04> { [ U0B8E, U0B8F ]  };+    key <AB05> { [ U0BC6, U0BC7 ]  };+    key <AB06> { [ U0B94, U0BCC ]  };+    key <AB07> { [ U0B85, U0B86 ]  };+    key <AB08> { [ U0B87, U0B88 ]  };+};++partial alphanumeric_keys+xkb_symbols "tam_keyboard_with_numerals" {++// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: Unicode (http://www.unicode.org)+// Author: Malathi S <malathiramya@gmail.com>+// Secondary contact: Sri Ramadoss M <amachu@au-kbc.org>+// Date  : Fri Sep 4 11:33:00 CST 2009+// Mapping:++      name[Group1]= "Tamil (keyboard with numerals)";++      // Mainly numbers.+      key <TLDE> { [ apostrophe, asciitilde ] };+      key <AE01> { [ U0BE7, exclam ] };+      key <AE02> { [ U0BE8, at ] };+      key <AE03> { [ U0BE9, numbersign ] };+      key <AE04> { [ U0BEA, U0BF9 ] };+      key <AE05> { [ U0BEB, percent ] };+      key <AE06> { [ U0BEC, asciicircum ] };+      key <AE07> { [ U0BED, ampersand ] };+      key <AE08> { [ U0BEE, asterisk ] };+      key <AE09> { [ U0BEF, parenleft ] };+      key <AE10> { [ U0BE6, parenright ] };+      key <AE11> { [ minus, underscore ] };+      key <AE12> { [ equal, plus ] };+++    // Qrow+    key <AD01> {  [ U0B9E, U0BB6 ] };+    key <AD02> {  [ U0BB1, U0BB7 ] };+    key <AD03> {  [ U0BA8, U0BB8 ] };+    key <AD04> {  [ U0B9a, U0BB9 ] };+    key <AD05> {  [ U0BB5, U0B9c ] };+    key <AD06> {  [ U0BB2 ] };+    key <AD07> {  [ U0BB0 ] };+    key <AD08> {  [ U0BC8, U0B90 ] };+    key <AD09> {  [ U0BCA, U0BCB ] };+    key <AD10> {  [ U0BBF, U0BC0 ] };+    key <AD11> {  [ U0BC1, U0BC2 ] };++    // Arow+    key <AC01> { [ U0BAF ] };+    key <AC02> { [ U0BB3 ] };+    key <AC03> { [ U0BA9 ] };+    key <AC04> { [ U0B95 ] };+    key <AC05> { [ U0BAA ] };+    key <AC06> { [ U0BBE, U0BB4 ] };+    key <AC07> { [ U0BA4 ] };+    key <AC08> { [ U0BAE ] };+    key <AC09> { [ U0B9F ] };+    key <AC10> { [ U0BCD, U0B83 ] };+    key <AC11> { [ U0B99 ] };++    // Zrow+    key <AB01> { [ U0BA3 ]  };+    key <AB02> { [ U0B92, U0B93 ]  };+    key <AB03> { [ U0B89, U0B8A ]  };+    key <AB04> { [ U0B8E, U0B8F ]  };+    key <AB05> { [ U0BC6, U0BC7 ]  };+    key <AB06> { [ U0B94, U0BCC ]  };+    key <AB07> { [ U0B85, U0B86 ]  };+    key <AB08> { [ U0B87, U0B88 ]  };+};++partial alphanumeric_keys +xkb_symbols "tam_TSCII" {++// Description	: A Tamil typewrite-style keymap +//		  loosely based on TamilNet'99 reommendations +// Encoding	: TSCII (http://www.tscii.org)+// Author	: Thuraiappah Vaseeharan <vasee@ieee.org>+// Last Modified: Sat Jan  5 17:11:26 CST 2002++    name[Group1]= "Tamil (TSCII typewriter)";++    key <AE01> {  [ 0x10000b7, 0x10000a4 ] }; // aytham+    key <AE02> {  [ 0x1000082, 0x10000a5 ] }; // shri+    key <AE03> {  [ 0x1000083, 0x1000088 ] }; // ja+    key <AE04> {  [ 0x1000084, 0x1000089 ] }; // sha+    key <AE05> {  [ 0x1000085, 0x100008a ] }; // sa+    key <AE06> {  [ 0x1000086, 0x100008b ] }; // ha+    key <AE07> {  [ 0x1000087, 0x100008c ] }; // ksha+	+    // Qrow+    key <AD01> {  [ 0x10000bb, 0x100009a ] }; // nja+    key <AD02> {  [ 0x10000c8, 0x10000da ] }; // Ra+    key <AD03> {  [ 0x10000bf, 0x10000d1 ] }; // NNa+    key <AD04> {  [ 0x10000ba, 0x10000cd ] }; // ca+    key <AD05> {  [ 0x10000c5, 0x10000d7 ] }; // va+    key <AD06> {  [ 0x10000c4, 0x10000d6 ] }; // la+    key <AD07> {  [ 0x10000c3, 0x10000d5 ] }; // ra+    key <AD08> {  [ 0x10000a8, 0x10000b3 ] }; // sangili, ai+    key <AD09> {  [ 0x10000ca, 0x10000cb ] }; // di, dI+    key <AD10> {  [ 0x10000a2, 0x10000a3 ] }; // visiri+    key <AD11> {  [ dead_acute, 0x10000a3 ] }; // Ukaaram++    // Arow+    key <AC01> { [ 0x10000c2, 0x10000d4 ] }; // ya+    key <AC02> { [ 0x10000c7, 0x10000d9 ] }; // La+    key <AC03> { [ 0x10000c9, 0x10000db ] }; // na+    key <AC04> { [ 0x10000b8, 0x10000cc ] }; // ka+    key <AC05> { [ 0x10000c0, 0x10000d2 ] }; // pa+    key <AC06> { [ dead_grave,0x10000a1 ] }; // pulli,aravu+    key <AC07> { [ 0x10000be, 0x10000d0 ] }; // tha+    key <AC08> { [ 0x10000c1, 0x10000d3 ] }; // ma+    key <AC09> { [ 0x10000bc, 0x10000ce ] }; // da+    key <AC10> { [ 0x10000c6, 0x10000d8 ] }; // zha+    key <AC11> { [ 0x10000b9, 0x1000099 ] }; // nga+    +    // Zrow+    key <AB01> { [ 0x10000bd, 0x10000cf ] }; // Na+    key <AB02> { [ 0x10000b4, 0x10000b5 ] }; // o, O+    key <AB03> { [ 0x10000af, 0x10000b0 ] }; // u, U+    key <AB04> { [ 0x10000b1, 0x10000b2 ] }; // e, E+    key <AB05> { [ 0x10000a6, 0x10000a7 ] }; // kombus+    key <AB06> { [ 0x10000b6, 0x10000aa ] }; // au+    key <AB07> { [ 0x10000ab, 0x10000ac ] }; // a, A+    key <AB08> { [ 0x10000fe, 0x10000ae ] }; // i, I++};++partial alphanumeric_keys +xkb_symbols "tam_TAB" {++// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: TAB (http://www.tamilnet99.org)+// Author: Thuraiappah Vaseeharan <t_vasee@yahoo.com>+// Date  : Sun Aug 12 02:23:00 CDT 2001++    name[Group1]= "Tamil (TAB typewriter)";++    // numeral row+    key <AE01> {  [ 0x10000e7, 0x10000a7 ] } ;+    key <AE02> {  [ 0x10000fa, 0x10000a8 ] } ;+    key <AE03> {  [ 0x10000fb ] } ;+    key <AE04> {  [ 0x10000fc ] } ;+    key <AE05> {  [ 0x10000fd ] } ;+    key <AE06> {  [ 0x10000fe ] } ;+    key <AE07> {  [ 0x10000ff ] } ;+	+    // q-row+    key <AD01> {  [ 0x10000eb, 0x10000b3 ] };+    key <AD02> {  [ 0x10000f8, 0x10000c1 ] };+    key <AD03> {  [ 0x10000ef, 0x10000b8 ] };+    key <AD04> {  [ 0x10000ea, 0x10000b2 ] };+    key <AD05> {  [ 0x10000f5, 0x10000be ] };+    key <AD06> {  [ 0x10000f4, 0x10000bd ] };+    key <AD07> {  [ 0x10000f3, 0x10000bc ] };+    key <AD08> {  [ 0x10000ac, 0x10000e4 ] };+    key <AD09> {  [ 0x10000ae, 0x10000af ] };+    key <AD10> {  [ 0x10000a4, 0x10000a6 ] };+    key <AD11> {  [ dead_circumflex, 0x10000a6 ] }; // Ukaaram++    // a-row+    key <AC01> {  [ 0x10000f2, 0x10000bb ] };+    key <AC02> {  [ 0x10000f7, 0x10000c0 ] };+    key <AC03> {  [ 0x10000f9, 0x10000c2 ] };+    key <AC04> {  [ 0x10000e8, 0x10000b0 ] };+    key <AC05> {  [ 0x10000f0, 0x10000b9 ] };+    key <AC06> {  [ 0x10000a2, 0x10000a3 ] };+    key <AC07> {  [ 0x10000ee, 0x10000b6 ] };+    key <AC08> {  [ 0x10000f1, 0x10000ba ] };+    key <AC09> {  [ 0x10000ec, 0x10000b4 ] };+    key <AC10> {  [ 0x10000f6, 0x10000bf ] };+    key <AC11> {  [ 0x10000e9, 0x10000b1 ] };+    +    // z-row+    key <AB01> {  [ 0x10000ed, 0x10000b5 ] };+    key <AB02> {  [ 0x10000e5, 0x10000e6 ] };+    key <AB03> {  [ 0x10000e0, 0x10000e1 ] };+    key <AB04> {  [ 0x10000e2, 0x10000e3 ] };+    key <AB05> {  [ 0x10000aa, 0x10000ab ] };+    key <AB06> {  [ 0x10000ac, 0x10000a3 ] };+    key <AB07> {  [ 0x10000dc, 0x10000dd ] };+    key <AB08> {  [ 0x10000de, 0x10000df ] };+};++partial alphanumeric_keys +xkb_symbols "tel" {++    // Inscript layout for Telugu using Unicode +    // Author: G Karunakar <karunakar@freedomink.org>+    // Date:+    // See layout at http://www.indlinux.org/keymap/telugu.php++    name[Group1]= "Telugu";++    key <TLDE> { [  U0c4a, U0c12	] };+    key <AE01> { [  U0c67			] };+    key <AE02> { [  U0c68			] };+    key <AE03> { [  U0c69, numbersign	] };+    key <AE04> { [  U0c6a, dollar		] };+    key <AE05> { [  U0c6b, percent		] };+    key <AE06> { [  U0c6c, asciicircum	] };+    key <AE07> { [  U0c6d, ampersand	] };+    key <AE08> { [  U0c6e, asterisk	] };+    key <AE09> { [  U0c6f, parenleft	] };+    key <AE10> { [  U0c66, parenright	] };+    key <AE11> { [  U0c03, underscore	] };+    key <AE12> { [  U0c43, U0c0b	] };+    key <BKSP> { [  BackSpace			] };    + +    key <AD01> { [  U0c4c, U0c14	] };+    key <AD02> { [  U0c48, U0c10	] };+    key <AD03> { [  U0c3e, U0c06	] };+    key <AD04> { [  U0c40, U0c08	] };+    key <AD05> { [  U0c42, U0c0a	] };+    key <AD06> { [  U0c2c, U0c2d	] };+    key <AD07> { [  U0c39, U0c19	] };+    key <AD08> { [  U0c17, U0c18	] };+    key <AD09> { [  U0c26, U0c27	] };+    key <AD10> { [  U0c1c, U0c1d	] };+    key <AD11> { [  U0c21, U0c22	] };+    key <AD12> { [  U0c1e			] };+  +    key <AC01> { [  U0c4b, U0c13	] };+    key <AC02> { [  U0c47, U0c0f	] };+    key <AC03> { [  U0c4d, U0c05	] };+    key <AC04> { [  U0c3f, U0c07	] };+    key <AC05> { [  U0c41, U0c09	] };+    key <AC06> { [  U0c2a, U0c2b	] };+    key <AC07> { [  U0c30, U0c31	] };+    key <AC08> { [  U0c15, U0c16	] };+    key <AC09> { [  U0c24, U0c25	] };+    key <AC10> { [  U0c1a, U0c1b	] };+    key <AC11> { [  U0c1f, U0c20	] };+ +    key <AB01> { [  U0c46, U0c0e	] };+    key <AB02> { [  U0c02, U0c01	] };+    key <AB03> { [  U0c2e, U0c23	] };+    key <AB04> { [  U0c28			] };+    key <AB05> { [  U0c35			] };+    key <AB06> { [  U0c32, U0c33	] };+    key <AB07> { [  U0c38, U0c36	] };+    key <AB08> { [  comma     , U0c37	] };+    key <AB09> { [  period    				] };+    key <AB10> { [  U0c2f, U0040	] };++    key <RALT> {        +        symbols[Group1] = [ Mode_switch, Multi_key ],+        virtualMods = AltGr+    };+    include "rupeesign(4)"+    include "level3(ralt_switch)"+};++partial alphanumeric_keys +xkb_symbols "urd-phonetic" {+    include "pk(urd-phonetic)"+    name[Group1]= "Urdu (phonetic)";+};++partial alphanumeric_keys +xkb_symbols "urd-phonetic3" {+    include "pk(urd-crulp)"+    name[Group1]= "Urdu (alternative phonetic)";+};++partial alphanumeric_keys +xkb_symbols "urd-winkeys" {+    include "pk(urd-nla)"+    name[Group1]= "Urdu (WinKeys)";+};++// based on a keyboard map from an 'xkb/symbols/gur' file++partial alphanumeric_keys+xkb_symbols "guru" {+      name[Group1]= "Punjabi (Gurmukhi)";++      // Mainly numbers.+      key <AE01> { [      U0A67 		]	};+      key <AE02> { [      U0A68		]	};+      key <AE03> { [      U0A69, U0A71	]	};+      key <AE04> { [      U0A6A, U0A74	 	]	};+      key <AE05> { [      U0A6B, U262C		]	};+      key <AE06> { [      U0A6C  	 	]	};+      key <AE07> { [      U0A6D 		]	};+      key <AE08> { [      U0A6e  	 	]	};+      key <AE09> { [      U0A6F, parenleft 	]	};+      key <AE10> { [      U0A66, parenright ]	};+      key <AE11> { [      gur_visarga 	 	]	};+      key <AE12> { [      equal,	plus 	]	};++// Mainly long vowels++      key <AD01> { [      U0A4C, U0A14  ]	};+      key <AD02> { [      U0A48, U0A10  ]	};+      key <AD03> { [      U0A3E, U0A06  ]	};+      key <AD04> { [      U0A40, U0A08  ]	};+      key <AD05> { [      U0A42, U0A0A  ]	};++// Mainly voiced consonants++      key <AD06> { [      U0A2C, U0A2D 	]	};+      key <AD07> { [      U0A39, U0A19 	]	};+      key <AD08> { [      U0A17, U0A18 	]	};+      key <AD09> { [      U0A26, U0A27 	]	};+      key <AD10> { [      U0A1C, U0A1D 	]	};+      key <AD11> { [      U0A21, U0A22 	]	};+      key <AD12> { [      U0A3C, U0A1E 	]	};++// Mainly short vowels+      key <AC01> { [      U0A4B, U0A13  ]	};+      key <AC02> { [      U0A47, U0A0F  ]	};+      key <AC03> { [      U0A4D, U0A05  ]	};+      key <AC04> { [      U0A3F, U0A07  ]	};+      key <AC05> { [      U0A41, U0A09  ]	};++// Mainly unvoiced consonants++      key <AC06> { [      U0A2A, U0A2B 	]	};+      key <AC07> { [      U0A30, U0A5C 	]	};+      key <AC08> { [      U0A15, U0A16 	]	};+      key <AC09> { [      U0A24, U0A25 	]	};+      key <AC10> { [      U0A1A, U0A1B 	]	};+      key <AC11> { [      U0A1F, U0A20 	]	};+      key <BKSL> { [      U005C, U007C	]	};++      key <AB01> { [      z, 	 U0A01	]       };+      key <AB02> { [      U0A02, U0A70, U0A71  ]       };+      key <AB03> { [      U0A2E, U0A23  ]       };+      key <AB04> { [      U0A28, U0A28  ]       };+      key <AB05> { [      U0A35, U0A35  ]       };+      key <AB06> { [      U0A32, U0A33  ]       };+      key <AB07> { [      U0A38, U0A36  ]       };+      key <AB08> { [      comma,     less       ]       };+      key <AB09> { [      period,    U0964  ]       };+      key <AB10> { [      U0A2F, question   ]       };++    include "rupeesign(4)"+    include "level3(ralt_switch)"+};++//Name		:	Jhelum (Refind Inscript)+//Description	:	A Jhelum keyboard layout for Gurmukhi (Punjabi)+//			http://www.satluj.org/Jhelum.html+//Modified for Inscript to make+//Original Author :	Amanpreet Singh Alam <apreet.alam@gmail.com+ +partial alphanumeric_keys+xkb_symbols "jhelum" {+      name[Group1] = "Punjabi (Gurmukhi Jhelum)";+          key.type="FOUR_LEVEL";+     //Top Alphanumeric row+     // Roman digits+     key <TLDE>  { [  apostrophe, asciitilde, U0A02,U0A01 ] }; // apostrophe: anusvara, candrabindu+     key <AE01>  { [   1,exclam,	U0A67,	exclam	   ] };+     key <AE02>  { [   2,at,	U0A68,	at	   ] };+     key <AE03>  { [   3,numbersign, U0A69,	numbersign ] };+     key <AE04>  { [   4,dollar,	U0A6A		 ] };+     key <AE05>  { [   5,percent,U0A6B,	percent    ] };+     key <AE06>  { [   6,U0A73, U0A6C,asciicircum ] };+     key <AE07>  { [   7,U0A72,U0A6D,ampersand  ] };+     key <AE08>  { [   8,asterisk,U0A6E,	asterisk   ] };+     key <AE09>  { [   9,parenleft,U0A6F,parenleft  ] };+     key <AE10>  { [   0,parenright,U0A66,parenright ] };+     key <AE11>	{ [   minus,underscore] };+     key <AE12>	{ [   equal,plus] };+     key <BKSL>  { [   U0964,U0965,U007C,U005C] }; //pipe : danda, double danda+ +     //Q Row	+     key <AD01>   { [   U0A4C, 	U0A14   ] };  // Q: oo, ooh+     key <AD02>   { [   U0A48,  	U0A10	] };  // W: ee, ae+     key <AD03>   { [   U0A3E,   U0A06  ] };  // E: a, aa+     key <AD04>   { [   U0A40,	U0A08, U20B9  	] };  // R: ee, ai, rupeesign+     key <AD05>   { [   U0A42,   U0A0A   ] };  // T: u, uu+     key <AD06>   { [   U0A30,	U0A5C   ] };  // Y: ra, raa+     key <AD07>   { [   U0A26,   U0A27   ] };  // U: tha, thha+     key <AD08>   { [   U0A17,   U0A18, U0A5A   ] };  // I:ga, gha+     key <AD09>   { [   U0A24,   U0A1F   ] };  // O: ta, tha+     key <AD10>   { [   U0A2A,   U0A5E, VoidSymbol,U0A5E  ] };  // P: pa, pha+     key <AD11>   { [   U0A21,   U0A22,   bracketleft,   braceleft   ] };  +     key <AD12>	 { [   U0A19,   U0A1E,   bracketright, braceright   ] };+     +     //A Row+     key <AC01>   { [   U0A4B,	 U0A13  ] };   // A: o, oo+     key <AC02>   { [   U0A47,    U0A0F   ] };  // S: e, ee+     key <AC03>   { [   U0A4D,    U0A05   ] };  // D: halant, aa+     key <AC04>   { [   U0A3F,    U0A07   ] };  // F: i, aa+     key <AC05>   { [   U0A41,    U0A09   ] };  // G: u, uh+     key <AC06>   { [   U0A39,    U0A20   ] };  // H: ha, thha+     key <AC07>   { [   U0A1C,    U0A1D, U0A5B   ] };  // J: ja, jha+     key <AC08>   { [   U0A15,    U0A16,VoidSymbol ,U0A59   ] };  // K: ka, kha+     key <AC09>   { [   U0A32,	 U0A25, U0A33   ] };  // L: la, tha+     key <AC10>   { [   U0A38,   colon, U0A36  ] }; //; sa+     key <AC11>   { [apostrophe, quotedbl ] };+ +     //Z Row+     key <AB01>   { [   U0A71,	 U0A3C 	 ] };  // Z: addak, par bindi+     key <AB02>   { [   U0A02,    U0A70	 ] };  // X: bindi, tippi+     key <AB03>   { [   U0A1A,    U0A1B   ] };  // C: ca, cha+     key <AB04>   { [   U0A35,    U0A2F   ] };  // V: va, ya+     key <AB05>   { [   U0A2C,    U0A2D   ] };  // B: ba, bha+     key <AB06>   { [   U0A28,    U0A23   ] };  // N: na, nha+     key <AB07>   { [   U0A2E, U0A2E       ] };  // M: ma+     key <AB08>   { [   comma,    U262C	 ] };// comma: comma, dev abbreviation sign+     key <AB09>   { [   period,   U0A74 	 ] };  // period: period, nukta+     key <AB10>	 { [   slash,   question ] };+ +// begin modifier mappings+//    modifier_map Shift  { Shift_L };+//    modifier_map Lock   { Caps_Lock };+//    modifier_map Control{ Control_L };+//    modifier_map Mod3   { Mode_switch };+    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "olpc" {++// Contact: Walter Bender <walter@laptop.org>++  include "in(deva)"+  key <TLDE> { [	U094A,	U0912 ] }; // DEVANAGARI VOWEL SIGN SHORT O; DEVANAGARI LETTER SHORT O+  key <AE01> { [	U0967,	U090D ] }; // DEVANAGARI DIGIT ONE; DEVANAGARI LETTER CANDRA E+  key <AE02> { [	U0968,	U0945 ] }; // DEVANAGARI DIGIT TWO; DEVANAGARI VOWEL SIGN CANDRA E+  key <AE03> { [	U0969	 ] }; // DEVANAGARI DIGIT THREE; +  key <AE04> { [	U096A	 ] }; // DEVANAGARI DIGIT FOUR; +  key <AE05> { [	U096B	 ] }; // DEVANAGARI DIGIT FIVE; +  key <AE06> { [	U096C	 ] }; // DEVANAGARI DIGIT SIX; +  key <AE07> { [	U096D	 ] }; // DEVANAGARI DIGIT SEVEN; +  key <AE08> { [	U096E	 ] }; // DEVANAGARI DIGIT EIGHT; +  key <AE09> { [	U096F,	parenleft ] }; // DEVANAGARI DIGIT NINE; +  key <AE10> { [	U0966,	parenright ] }; // DEVANAGARI DIGIT ZERO; +  key <AE11> { [	minus,		U0903 ] }; // DEVANAGARI SIGN VISARGA; +  key <AE12> { [	U0943,	U090B ] }; // DEVANAGARI VOWEL SIGN VOCALIC R; DEVANAGARI LETTER VOCALIC R++  key <AD01> { [	U094C,	U0914 ] }; // DEVANAGARI VOWEL SIGN AU; DEVANAGARI LETTER AU+  key <AD02> { [	U0948,	U0910 ] }; // DEVANAGARI VOWEL SIGN AI; DEVANAGARI LETTER AI+  key <AD03> { [	U093E,	U0906 ] }; // DEVANAGARI VOWEL SIGN AA; DEVANAGARI LETTER AA+  key <AD04> { [	U0940,	U0908 ] }; // DEVANAGARI VOWEL SIGN II; DEVANAGARI LETTER II+  key <AD05> { [	U0942,	U090A ] }; // DEVANAGARI VOWEL SIGN UU; DEVANAGARI LETTER UU+  key <AD06> { [	U092C,	U092D ] }; // DEVANAGARI LETTER BA; DEVANAGARI LETTER BHA+  key <AD07> { [	U0939,	U0919 ] }; // DEVANAGARI LETTER HA; DEVANAGARI LETTER NGA+  key <AD08> { [	U0917,	U0918 ] }; // DEVANAGARI LETTER GA; DEVANAGARI LETTER GHA+  key <AD09> { [	U0926,	U0927 ] }; // DEVANAGARI LETTER DA; DEVANAGARI LETTER DHA+  key <AD10> { [	U091C,	U091D ] }; // DEVANAGARI LETTER JA; DEVANAGARI LETTER JHA+  key <AD11> { [	U0921,	U0922 ] }; // DEVANAGARI LETTER DDA; DEVANAGARI LETTER DDHA+  key <AD12> { [	U093C,	U091E ] }; // DEVANAGARI SIGN NUKTA; DEVANAGARI LETTER NYA++  key <BKSL> { [	U0949,	U0911 ] }; // DEVANAGARI VOWEL SIGN CANDRA O; DEVANAGARI LETTER CANDRA O++  key <AC01> { [	U094B,	U0913 ] }; // DEVANAGARI VOWEL SIGN O; DEVANAGARI LETTER O+  key <AC02> { [	U0947,	U090F ] }; // DEVANAGARI VOWEL SIGN E; DEVANAGARI LETTER E+  key <AC03> { [	U094D,	U0905 ] }; // DEVANAGARI SIGN VIRAMA; DEVANAGARI LETTER A+  key <AC04> { [	U093F,	U0907 ] }; // DEVANAGARI VOWEL SIGN I; DEVANAGARI LETTER I+  key <AC05> { [	U0941,	U0909 ] }; // DEVANAGARI VOWEL SIGN U; DEVANAGARI LETTER U+  key <AC06> { [	U092A,	U092B ] }; // DEVANAGARI LETTER PA; DEVANAGARI LETTER PHA+  key <AC07> { [	U0930,	U0931 ] }; // DEVANAGARI LETTER RA; DEVANAGARI LETTER RRA+  key <AC08> { [	U0915,	U0916 ] }; // DEVANAGARI LETTER KA; DEVANAGARI LETTER KHA+  key <AC09> { [	U0924,	U0925 ] }; // DEVANAGARI LETTER TA; DEVANAGARI LETTER THA+  key <AC10> { [	U091A,	U091B ] }; // DEVANAGARI LETTER CA; DEVANAGARI LETTER CHA+  key <AC11> { [	U091F,	U0920 ] }; // DEVANAGARI LETTER TTA; DEVANAGARI LETTER TTHA++  key <AB01> { [	U0946,	U090E ] }; // DEVANAGARI VOWEL SIGN SHORT E; DEVANAGARI LETTER SHORT E+  key <AB02> { [	U0902,	U0901 ] }; // DEVANAGARI SIGN ANUSVARA; DEVANAGARI SIGN CANDRABINDU+  key <AB03> { [	U092E,	U0923 ] }; // DEVANAGARI LETTER MA; DEVANAGARI LETTER NNA+  key <AB04> { [	U0928,	U0929 ] }; // DEVANAGARI LETTER NA; DEVANAGARI LETTER NNNA+  key <AB05> { [	U0935,	U0934 ] }; // DEVANAGARI LETTER VA; DEVANAGARI LETTER LLLA+  key <AB06> { [	U0932,	U0933 ] }; // DEVANAGARI LETTER LA; DEVANAGARI LETTER LLA+  key <AB07> { [	U0938,	U0936 ] }; // DEVANAGARI LETTER SA; DEVANAGARI LETTER SHA+  key <AB08> { [	comma,		U0937 ] }; // DEVANAGARI LETTER SSA+  key <AB09> { [	period,		U0964 ] }; // DEVANAGARI DANDA+  key <AB10> { [	U092F,	U095F ] }; // DEVANAGARI LETTER YA; DEVANAGARI LETTER YYA++  // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ):+  include "nbsp(zwnj3zwj4)"++  include "group(olpc)"+  include "rupeesign(4)"+  include "level3(ralt_switch)"+};++partial alphanumeric_keys +xkb_symbols "hin-wx" {++    name[Group1]= "Hindi (Wx)";++      key <TLDE> {	 [     grave, asciitilde, 2, 3    ]	};++      key <AE01> {	 [      0x1000967, exclam 		]	};+      key <AE02> {	 [      0x1000968, at 		]	};+      key <AE03> {	 [      0x1000969 , numbersign	 		]	};+      key <AE04> {	 [      0x100096A , dollar		]	};+      key <AE05> {	 [      0x100096B , percent 	 		]	};+      key <AE06> {	 [      0x100096C , asciicircum	 		]	};+      key <AE07> {	 [      0x100096D , ampersand                       ]	};+      key <AE08> {	 [      0x100096e , asterisk 	 		]	};+      key <AE09> {	 [      0x100096F, parenleft 		]	};+      key <AE10> {	 [      0x1000966, parenright 		]	};+      key <AE11> {	 [      minus, underscore 	 		]	};+      key <AE12> {	 [      equal, plus 		]	};+++      key <AD01> {	 [      0x1000943,  0x1000944, 0x100090B, 0x1000960]	};+      key <AD02> {	 [      0x1000924,  0x1000925       	]	};+      key <AD03> {	 [      0x1000947,  0x1000948, 0x100090F, 0x1000910]	};+      key <AD04> {	 [      0x1000930,  0x1000937       	]	};+      key <AD05> {	 [      0x100091F,  0x1000920       	]	};+++      key <AD06> {	 [      0x100092F 		]	};+      key <AD07> {	 [      0x1000941,  0x1000942, 0x1000909, 0x100090A ]	};+      key <AD08> {	 [      0x100093F,  0x1000940, 0x1000907, 0x1000908 ]	};+      key <AD09> {	 [      0x100094B,  0x100094C, 0x1000913, 0x1000914]	};+      key <AD10> {	 [      0x100092A,  0x100092B 		]	};+      key <AD11> {	 [      bracketleft, braceleft  		]	};+      key <AD12> {	 [      bracketright, braceright  		]	};+      key <BKSL> {       [      backslash, bar, 0x1000964, 0x1000965 ] };++      key <AC01> {	 [      0x100094D,  0x100093E, 0x1000905,0x1000906 ] 	};+      key <AC02> {	 [      0x1000938,  0x1000936       	]	};+      key <AC03> {	 [      0x1000921,  0x1000922       	]	};+      key <AC04> {	 [      0x1000919,  0x100091E       	]	};+      key <AC05> {	 [      0x1000917,  0x1000918       	]	};+++      key <AC06> {	 [      0x1000939,  0x1000903 		]	};+      key <AC07> {	 [      0x100091C,  0x100091D 		]	};+      key <AC08> {	 [      0x1000915,  0x1000916 		]	};+      key <AC09> {	 [      0x1000932,  0x1000962, 0x1000933, 0x100090C]	};+      key <AC10> {	 [      semicolon, colon  		]	};+      key <AC11> {	 [      quoteright, quotedbl 		]	};++      key <AB01> {	 [      0x1000901,   0x100093C, 0x100093D, 0x1000950]   };+      key <AB02> {       [      0x1000926,   0x1000927      ]       };+      key <AB03> {       [      0x100091A,   0x100091B         ]       };+      key <AB04> {       [      0x1000935,   dead_V        ]       };+      key <AB05> {       [      0x100092C,   0x100092D        ]       };+      key <AB06> {       [      0x1000928,   0x1000923         ]       };+      key <AB07> {       [      0x100092E,   0x1000902         ]       };+      key <AB08> {       [      comma,       less         ]       };+      key <AB09> {       [      period,      greater       ]       };+      key <AB10> {       [      slash,      question        ]       };++    include "level3(ralt_switch)"+    include "rupeesign(4)"+};++partial alphanumeric_keys+xkb_symbols "eng" {++    name[Group1]= "English (India, with RupeeSign)";++    include "us(basic)"++    include "rupeesign(4)"++    include "level3(ralt_switch)"+};+++// Description : Enhanced INSCRIPT keymap for Malayalam+// Encoding    : Unicode (http://www.unicode.org)+// Author      : Mahesh T Pai <paivakil@gmail.com>+// Date        : March, 2011+// Source      : http://www.nongnu.org/smc/docs/images/ml_inscript_layout.jpg+// Comment     : Based on the Inscript Keyboard created by M Baiju+// Mapping:++partial alphanumeric_keys +xkb_symbols "mal_enhanced" {++    name[Group1] = "Malayalam (enhanced Inscript with Rupee Sign)";++   //From grave to backslash (\)+    +      key <TLDE> { [ U0d4a ,       U0d12 ] };+      key <AE01> { [ U0d67 ,      exclam ] };+      key <AE02> { [ U0d68 ,          at ] };+      key <AE03> { [ U0d69 ,  numbersign ] };+      key <AE04> { [ U0d6a ,      dollar ] };+      key <AE05> { [ U0d6b ,     percent ] };+      key <AE06> { [ U0d6c , asciicircum ] };+      key <AE07> { [ U0d6d ,   ampersand ] };+      key <AE08> { [ U0d6e ,       U0d7e ] };+      key <AE09> { [ U0d6f ,   parenleft ] };+      key <AE10> { [ U0d66 ,  parenright ] };++      key <AE11> { [ minus , U0d03       ] };+      key <AE12> { [ U0d43 , U0d0b       ] };+      key <BKSL> { [ U0d7c , U05C        ] }; //bksl: chillu RR +++  // From 'q' to right bracket (])+    +    key <AD01> { [ U0d57 , U0d14 ] };+    key <AD02> { [ U0d48 , U0d10 ] };+    key <AD03> { [ U0d3e , U0d06 ] };+    key <AD04> { [ U0d40 , U0d08 ] };+    key <AD05> { [ U0d42 , U0d0a ] };+    key <AD06> { [ U0d2c , U0d2d ] };+    key <AD07> { [ U0d39 , U0d19 ] };+    key <AD08> { [ U0d17 , U0d18 ] };+    key <AD09> { [ U0d26 , U0d27 ] };+    key <AD10> { [ U0d1c , U0d1d ] };+    key <AD11> { [ U0d21 , U0d22 ] };+    key <AD12> { [ U0200d , U0d1e ] };++    // From 'a' to apostrophe (')+    +    key <AC01> { [ U0d4b , U0d13 ] };+    key <AC02> { [ U0d47 , U0d0f ] };+    key <AC03> { [ U0d4d , U0d05 ] };+    key <AC04> { [ U0d3f , U0d07 ] };+    key <AC05> { [ U0d41 , U0d09 ] };+    key <AC06> { [ U0d2a , U0d2b ] };+    key <AC07> { [ U0d30 , U0d31 ] };+    key <AC08> { [ U0d15 , U0d16 ] };+    key <AC09> { [ U0d24 , U0d25 ] };+    key <AC10> { [ U0d1a , U0d1b ] };+    key <AC11> { [ U0d1f , U0d20 ] };+    +    // From 'z' to slash (/)+    +    key <AB01> { [ U0d46 , U0d0e ] };+    key <AB02> { [ U0d02 , U0d7a ] };+    key <AB03> { [ U0d2e , U0d23 ] };+    key <AB04> { [ U0d28 , U0d7b ] };+    key <AB05> { [ U0d35 , U0d34 ] };+    key <AB06> { [ U0d32 , U0d33 ] };+    key <AB07> { [ U0d38 , U0d36 ] };+    key <AB08> { [ comma , U0d37 ] };+    key <AB09> { [ period , U0d7d ] }; //chillu l+    key <AB10> { [ U0d2f , question ] };++    // hope this includes the rupee sign at alt + 4++    include "rupeesign(4)"+    include "level3(ralt_switch)"++};+
+ data/symbols/inet view
@@ -0,0 +1,1875 @@+// EAK (Easy Access, Internet, Multimedia, PDA) keyboards+// Copyright (C) 2002 Stanislav Brabec <sbrabec@suse.cz>+//+// Based on LinEAK project+// LinEAK - Linux support for Easy Access and Internet Keyboards      +// Copyright (C) 2001, 2002 Mark Smulders <Mark@PIRnet.nl>++// Usage in XF86Config:+// Option "XkbLayout"	"my_kb_layout"+// Option "XkbVariant"	"my_kb_variant"+// Option "XkbModel"	"my_eak_type"+// Option "XkbRules"	"xfree86"+// Simple command line usage:+// setxkbmap 'my_kb_layout' -variant 'my_kb_variant' -model 'my_eak_type'++// All keyboards listed here should be also mentioned in+// rules/base, base.lst and base.xml.++// Very common set of media keys+partial hidden alphanumeric_keys+xkb_symbols "media_common" {+    key <I01>   {       [ XF86AudioMedia        ] }; +    key <I10>   {       [ XF86AudioPrev         ] };+    key <I19>   {       [ XF86AudioNext         ] };+    key <I20>   {       [ XF86AudioMute         ] };+    key <I22>   {       [ XF86AudioPlay, XF86AudioPause ] };+    key <I24>   {       [ XF86AudioStop, XF86Eject ] };+    key <I2E>   {       [ XF86AudioLowerVolume  ] };	+    key <I30>   {       [ XF86AudioRaiseVolume  ] };+    key <K5A>   {       [ XF86Eject             ] };+    key <K6C>   {       [ XF86Eject             ] };+};++// popular web navigation combination+partial hidden alphanumeric_keys+xkb_symbols "nav_common" {+    key <I21>   {       [ XF86Calculator        ] }; +    key <I32>   {       [ XF86WWW               ] };+    key <I65>   {       [ XF86Search            ] };+    key <I66>   {       [ XF86Favorites         ] };+    key <I67>   {       [ XF86Reload            ] };+    key <I68>   {       [ XF86Stop              ] };+    key <I69>   {       [ XF86Forward           ] };+    key <I6A>   {       [ XF86Back              ] };+    key <I6B>   {       [ XF86MyComputer        ] };+    key <I6C>   {       [ XF86Mail              ] };+    key <I6D>   {       [ XF86AudioMedia        ] }; +};++// ACPI Standard+partial hidden alphanumeric_keys+xkb_symbols "acpi_common" {+    key <I5E>	{	[ XF86PowerOff		]	};+    key <I5F>	{	[ XF86Standby		]	};+    key <I63>	{	[ XF86WakeUp		]	};+    key <I74>	{	[ XF86Battery		]	};+    key <I76>	{	[ XF86WLAN		]	};+    key <I16>	{	[ XF86Sleep		]	};+};++// Combined sections, for simplicity+partial hidden alphanumeric_keys+xkb_symbols "media_nav_common" {+    include "inet(media_common)"+    include "inet(nav_common)"+};++partial hidden alphanumeric_keys+xkb_symbols "media_nav_acpi_common" {+    include "inet(media_common)"+    include "inet(nav_common)"+    include "inet(acpi_common)"+};++partial hidden alphanumeric_keys+xkb_symbols "nav_acpi_common" {+    include "inet(nav_common)"+    include "inet(acpi_common)"+};++partial hidden alphanumeric_keys+xkb_symbols "media_acpi_common" {+    include "inet(media_common)"+    include "inet(acpi_common)"+};++// Evdev Standardized Keycodes+partial alphanumeric_keys+xkb_symbols "evdev" {+    key <MUTE>   {      [ XF86AudioMute         ]       };+    key <VOL->   {      [ XF86AudioLowerVolume  ]       };+    key <VOL+>   {      [ XF86AudioRaiseVolume  ]       };+    key <POWR>   {      [ XF86PowerOff          ]       };+    key <STOP>   {      [ Cancel                ]       };+    key <AGAI>   {      [ Redo                  ]       };+    key <PROP>   {      [ SunProps              ]       };+    key <UNDO>   {      [ Undo                  ]       };+    key <FRNT>   {      [ SunFront              ]       };+    key <COPY>   {      [ XF86Copy              ]       };+    key <OPEN>   {      [ XF86Open              ]       };+    key <PAST>   {      [ XF86Paste             ]       };+    key <FIND>   {      [ Find                  ]       };+    key <CUT>    {      [ XF86Cut               ]       };+    key <HELP>   {      [ Help                  ]       };+    key <LNFD>   {      [ Linefeed              ]       };++// Commented out because HZTG has same keycode as TLDE+//    key <HZTG>   {      [ Zenkaku_Hankaku       ]       };++    key <HKTG>   {      [ Hiragana_Katakana     ]       };+    key <HENK>   {      [ Henkan                ]       };+    key <MUHE>   {      [ Muhenkan              ]       };+    key <KATA>   {      [ Katakana              ]       };+    key <HIRA>   {      [ Hiragana              ]       };+    key <RO>     {      [ Romaji                ]       };++    key <HNGL>   {      [ Hangul                ]       };+    key <HJCV>   {      [ Hangul_Hanja          ]       };+    key <FK21>   {      [ XF86TouchpadToggle    ]       };+    key <FK22>   {      [ XF86TouchpadOn        ]       };+    key <FK23>   {      [ XF86TouchpadOff       ]       };++    key <FK20>   {      [ XF86AudioMicMute      ]       };++//  key <I120>   {      [ ]       }; // KEY_MACRO +    key <I126>   {      [ plusminus             ]       };+    key <I128>   {      [ XF86LaunchA           ]       };+    key <I147>   {      [ XF86MenuKB            ]       };+    key <I148>   {      [ XF86Calculator        ]       };+//  key <I149>   {      [ ]       }; // KEY_SETUP+    key <I150>   {      [ XF86Sleep             ]       };+    key <I151>   {      [ XF86WakeUp            ]       };+    key <I152>   {      [ XF86Explorer          ]       };+    key <I153>   {      [ XF86Send              ]       };+//  key <I154>   {      [ ]       }; // KEY_DELETEFILE+    key <I155>   {      [ XF86Xfer              ]       };+    key <I156>   {      [ XF86Launch1           ]       };+    key <I157>   {      [ XF86Launch2           ]       };+    key <I158>   {      [ XF86WWW               ]       };+    key <I159>   {      [ XF86DOS               ]       };+    key <I160>   {      [ XF86ScreenSaver       ]       };+//  key <I161>   {      [ ]       }; // KEY_DIRECTION+    key <I162>   {      [ XF86RotateWindows     ]       };+    key <I163>   {      [ XF86Mail              ]       };+    key <I164>   {      [ XF86Favorites         ]       };+    key <I165>   {      [ XF86MyComputer        ]       };+    key <I166>   {      [ XF86Back              ]       };+    key <I167>   {      [ XF86Forward           ]       };+//  key <I168>   {      [ ]       }; // KEY_CLOSECD (opposite of eject)+    key <I169>   {      [ XF86Eject             ]       };+    key <I170>   {      [ XF86Eject, XF86Eject  ]       };+    key <I171>   {      [ XF86AudioNext         ]       };+    key <I172>   {      [ XF86AudioPlay, XF86AudioPause ] };+    key <I173>   {      [ XF86AudioPrev         ]       };+    key <I174>   {      [ XF86AudioStop, XF86Eject ]    };+    key <I175>   {      [ XF86AudioRecord       ]       };+    key <I176>   {      [ XF86AudioRewind       ]       };+    key <I177>   {      [ XF86Phone             ]       };+//  key <I178>   {      [ ]       }; // KEY_ISO+    key <I179>   {      [ XF86Tools             ]       };+    key <I180>   {      [ XF86HomePage          ]       };+    key <I181>   {      [ XF86Reload           ]       };+    key <I182>   {      [ XF86Close             ]       };+//  key <I183>   {      [ ]       }; // KEY_MOVE+//  key <I184>   {      [ ]       }; // KEY_EDIT+    key <I185>   {      [ XF86ScrollUp          ]       };+    key <I186>   {      [ XF86ScrollDown        ]       };+    key <I187>   {      [ parenleft             ]       };+    key <I188>   {      [ parenright            ]       };+    key <I189>   {      [ XF86New               ]       };+    key <I190>   {      [ Redo                  ]       };+    key <I192>   {      [ XF86LaunchA           ]       };+    key <I193>   {      [ XF86LaunchC           ]       };+    key <I194>   {      [ XF86LaunchD           ]       };+    key <I195>   {      [ XF86LaunchE           ]       };+    key <I196>   {      [ XF86LaunchF           ]       };+    key <I208>   {      [ XF86AudioPlay         ]       };+    key <I209>   {      [ XF86AudioPause        ]       };+    key <I210>   {      [ XF86Launch3           ]       };+    key <I211>   {      [ XF86Launch4           ]       };+    key <I212>   {      [ XF86LaunchB           ]       };+    key <I213>   {      [ XF86Suspend           ]       };+    key <I214>   {      [ XF86Close             ]       };+    key <I215>   {      [ XF86AudioPlay         ]       };+    key <I216>   {      [ XF86AudioForward      ]       };+//  key <I217>   {      [ ]       }; // KEY_BASSBOOST+    key <I218>   {      [ Print                 ]       };+//  key <I219>   {      [ ]       }; // KEY_HP+    key <I220>   {      [ XF86WebCam            ]       };+//  key <I221>   {      [ ]       }; // KEY_SOUND+//  key <I222>   {      [ ]       }; // KEY_QUESTION+    key <I223>   {      [ XF86Mail              ]       };+    key <I224>   {      [ XF86Messenger         ]       }; // KEY_CHAT+    key <I225>   {      [ XF86Search            ]       };+    key <I226>   {      [ XF86Go                ]       }; // KEY_CONNECT+    key <I227>   {      [ XF86Finance           ]       };+    key <I228>   {      [ XF86Game              ]       }; // KEY_SPORT+    key <I229>   {      [ XF86Shop              ]       };+//  key <I230>   {      [ ]       }; // KEY_ALTERASE+    key <I231>   {      [ Cancel                ]       };+    key <I232>   {      [ XF86MonBrightnessDown ]       };+    key <I233>   {      [ XF86MonBrightnessUp   ]       };+    key <I234>   {      [ XF86AudioMedia        ]       };+    key <I235>   {      [ XF86Display           ]       };+    key <I236>   {      [ XF86KbdLightOnOff     ]       }; // KEY_KBDILLUMTOGGLE+    key <I237>   {      [ XF86KbdBrightnessDown ]       }; // KEY_KBDILLUMDOWN+    key <I238>   {      [ XF86KbdBrightnessUp   ]       }; // KEY_KBDILLUMUP+    key <I239>   {      [ XF86Send              ]       };+    key <I240>   {      [ XF86Reply             ]       };+    key <I241>   {      [ XF86MailForward       ]       };+    key <I242>   {      [ XF86Save              ]       };+    key <I243>   {      [ XF86Documents         ]       };+    key <I244>   {      [ XF86Battery           ]       };+    key <I245>   {      [ XF86Bluetooth         ]       };+    key <I246>   {      [ XF86WLAN              ]       };+//  key <I249>   {      [ ]       }; // KEY_VIDEO_NEXT  --  drive next video source+//  key <I250>   {      [ ]       }; // KEY_VIDEO_PREV  --  drive previous video source+//  key <I251>   {      [ ]       }; // KEY_BRIGHTNESS_CYCLE  --  bright up, max++ == min+//  key <I252>   {      [ ]       }; // KEY_BRIGHTNESS_ZERO  --  brightness off+//  key <I253>   {      [ ]       }; // KEY_DISPLAY_OFF  --  turn off display+//  key <I254>   {      [ ]       }; // KEY_WIMAX+    key <I255>   {      [ XF86Hibernate         ]       }; // KEY_HIBERNATE+ +    key <FK13>   {      [ XF86Tools         ]       };+    key <FK14>   {      [ XF86Launch5       ]       };+    key <FK15>   {      [ XF86Launch6       ]       };+    key <FK16>   {      [ XF86Launch7       ]       };+    key <FK17>   {      [ XF86Launch8       ]       };+    key <FK18>   {      [ XF86Launch9       ]       };+};+++// Acer AirKey V+partial alphanumeric_keys+xkb_symbols "airkey" {+    include "inet(acpi_common)"+    key <I13>	{	[ XF86AudioNext		]	};+    key <I15>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I16>	{	[ XF86Mail		]	};+    key <I18>	{	[ XF86AudioPrev		]	};+    key <I19>	{	[ XF86AudioMute		]	};+    key <I24>	{	[ XF86WWW		]	};+    key <I26>	{	[ XF86AudioLowerVolume	]	};+    key <I2D>	{	[ XF86AudioRaiseVolume	]	};+    key <I2F>	{	[ XF86Terminal		]	};+    key <I31>	{	[ XF86AudioStop, XF86Eject ]	};+};++// Acer C300 Laptop+partial alphanumeric_keys+xkb_symbols "acer_c300" {+    include "inet(nav_common)"+    key <I17>   {       [ F14                   ]       };+    key <I1F>   {       [ F13                   ]       };+    key <I20>   {       [ XF86AudioMute         ]       };+    key <I2E>   {       [ XF86AudioLowerVolume  ]       };+    key <I30>   {       [ XF86AudioRaiseVolume  ]       };+    key <I5E>   {       [ XF86Launch2           ]       };+    key <I75>   {       [ Help                  ]       };+    key <XFER>  {       [ XF86Launch1           ]       };+};++// Acer Ferrari 4000 Keyboard+// From Alex Dubov <oakad@yahoo.com>+partial alphanumeric_keys+xkb_symbols "acer_ferrari4k" {+    include "inet(media_nav_common)"+    key <I24>   {       [ dollar                ]       };+    key <I25>   {       [ EuroSign              ]       };+    key <I26>   {       [ XF86Display           ]       };+    // Missing keycodes - set-up with setkeycodes+    key <I70>   {       [ Help                  ]       };+    key <I71>   {       [ XF86Launch1           ]       };+    key <I72>   {       [ XF86Launch2           ]       };+    key <I73>   {       [ XF86Launch3           ]       };+    key <I74>   {       [ XF86Launch4           ]       };+};++// Acer Laptop (Generic layout for Acer laptops from 2004 onwards)+// From Carlos Corbacho <cathectic@gmail.com>+// Keys marked (HAL) require HAL 0.5.10 (or newer) to be set up correctly+// (Your laptop must also be added to hal-info)+// (Not all these keys will be available on every Acer laptop)+partial alphanumeric_keys+xkb_symbols "acer_laptop" {+    include "inet(media_nav_acpi_common)"+    key <I17>   {       [ XF86Launch2           ]        }; // "P" or "P2" (HAL)+    key <I1F>   {       [ XF86Launch1           ]        }; // "e" or "P1" (HAL)++    // Hotkeys (Function)+    // Launch Keys+    // Device keys+    key <I56>   {       [ XF86Display           ]        }; // Fn+F5 (HAL)+    key <I71>   {       [ XF86Launch4           ]        }; // Fn+F3 (HAL)+    key <I72>   {       [ XF86LaunchB           ]        }; // Bluetooth (HAL)+    key <I73>   {       [ XF86LaunchA           ]        }; // Wireless (HAL)+    key <I75>   {       [ Help                  ]        }; // Fn+F1 (HAL)+    key <I79>   {       [ XF86Launch5           ]        }; // Fn+F7 (HAL)+    key <K66>   {       [ XF86Launch3           ]        }; // Fn+F2 (HAL)++    // Special Characters+    // To avoid setting a precedent/ standard that will be broken in later+    // versions of HAL, these keys are commented out for now. When they are no+    // longer marked 'FIXME' and have saner keycodes, these two entries can be+    // fixed and permanently uncommented. In the meantime, just uncomment these+    // to make the keys work+//  key <K5D>   {       [ EuroSign              ]        }; // Euro (HAL)+//  key <K5E>   {       [ dollar                ]        }; // Dollar (HAL)+};++// Azona++// Azona RF2300 wireless Internet Keyboard+partial alphanumeric_keys+xkb_symbols "azonaRF2300" {+    // From Radics Laszlo <garaboncias@mailbox.hu>+    include "inet(nav_acpi_common)"+    key <I02>   {       [ XF86HomePage          ]       };+    key <I17>   {       [ XF86AudioStop         ]       };+    key <I1E>   {       [ XF86AudioRaiseVolume  ]       };+    key <I1F>   {       [ XF86AudioPlay, XF86AudioPause ] };+    key <I22>   {       [ XF86AudioNext         ]       };+    key <I24>   {       [ XF86AudioPrev         ]       };+    key <I25>   {       [ XF86AudioLowerVolume  ]       };+    key <I26>   {       [ XF86AudioMute         ]       };+    key <I3C>   {       [ XF86Copy              ]       };+    key <I78>   {       [ XF86Cut               ]       };+//  key <RCTL>  {       [ XF86Paste             ]       };+};+++// Brother++// Brother Internet Keyboard+partial alphanumeric_keys+xkb_symbols "brother" {+    include "inet(acpi_common)"+    key <I10>	{	[ XF86ScrollUp		]	};+    key <I12>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I17>	{	[ XF86AudioPrev		]	};+    key <I18>	{	[ XF86ScrollDown	]	};+    key <I19>	{	[ XF86ZoomOut		]	};+    key <I1E>	{	[ XF86AudioMute		]	};+    key <I21>	{	[ XF86WWW		]	};+    key <I22>	{	[ Menu			]	};+    key <I23>	{	[ XF86AudioStop		]	};+    key <I24>	{	[ XF86Calculator	]	};+    key <I25>	{	[ XF86Xfer		]	};+    key <I26>	{	[ XF86Mail		]	};+    key <I2E>	{	[ XF86AudioNext		]	};+    key <I30>	{	[ XF86AudioRaiseVolume	]	};+    key <I32>	{	[ XF86ZoomIn		]	};+    key <I68>	{	[ XF86AudioLowerVolume	]	};+};+++// BTC++// BTC 5113RF Multimedia+partial alphanumeric_keys+xkb_symbols "btc5113rf" {+    include "inet(acpi_common)"+    key <I10>	{	[ XF86AudioStop		]	};+    key <I12>	{	[ XF86AudioMute		]	};+    key <I19>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I1E>	{	[ XF86AudioRaiseVolume	]	};+    key <I20>	{	[ XF86Favorites		]	};+    key <I21>	{	[ XF86Eject		]	};+    key <I22>	{	[ XF86AudioPrev		]	};+    key <I24>	{	[ XF86AudioNext		]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86Back		]	};+    key <I30>	{	[ XF86WWW		]	};+    key <I32>	{	[ XF86Search		]	};+};+++// BTC 9000+partial alphanumeric_keys+xkb_symbols "btc9000" {+    include "inet(acpi_common)"+    key <I10>	{	[ XF86AudioStop		]	};+    key <I12>	{	[ XF86AudioMute		]	};+    key <I19>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I1E>	{	[ XF86AudioRaiseVolume	]	};+    key <I20>	{	[ XF86Favorites		]	};+    key <I21>	{	[ XF86AudioMedia	]	};+    key <I22>	{	[ XF86AudioPrev		]	};+    key <I24>	{	[ XF86AudioNext		]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86Reload		]	};+    key <I2E>	{	[ XF86Mail		]	};+    key <I30>	{	[ XF86HomePage		]	};+    key <I32>	{	[ XF86Search		]	};+};++// BTC 9000A+partial alphanumeric_keys+xkb_symbols "btc9000a" {+    include "inet(acpi_common)"+    key <I10>	{	[ XF86AudioStop		]	};+    key <I12>	{	[ XF86AudioMute		]	};+    key <I19>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I1E>	{	[ XF86AudioRaiseVolume	]	};+    key <I20>	{	[ XF86Favorites		]	};+    key <I21>	{	[ XF86Eject		]	};+    key <I22>	{	[ XF86AudioPrev		]	};+    key <I24>	{	[ XF86AudioNext		]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86HomePage		]	};+    key <I2E>	{	[ Help			]	};+    key <I30>	{	[ XF86WWW		]	};+    key <I32>	{	[ XF86Search		]	};+};++// BTC 9001AH+xkb_symbols "btc9001ah" {+    include "inet(acpi_common)"+    key <I02>   {       [ XF86HomePage          ]       };+    key <I17>   {       [ XF86AudioStop         ]       };+    key <I1E>   {       [ XF86AudioRaiseVolume  ]       };+    key <I1F>   {       [ XF86AudioPlay, XF86AudioPause ] };+    key <I22>   {       [ XF86AudioNext         ]       };+    key <I24>   {       [ XF86AudioPrev         ]       };+    key <I25>   {       [ XF86AudioLowerVolume  ]       };+    key <I26>   {       [ XF86AudioMute         ]       };+    key <I6C>   {       [ XF86Mail              ]       };+    key <RWIN>  {       [ XF86Eject             ]       };+};++// BTC 5090+partial alphanumeric_keys+xkb_symbols "btc5090" {+    include "inet(media_nav_acpi_common)"+    key <I26>   {       [ XF86Start             ]       };+    key <I33>   {       [ XF86Eject             ]       };+};++// BTC 9019U+partial alphanumeric_keys+xkb_symbols "btc9019u" {+    include "inet(media_nav_acpi_common)"+    key <FK17> {	[ XF86Search		]	};+    key <I02>  {	[ XF86HomePage		]	};+};++// Cherry Blue Line++// Cherry Blue Line CyBo@rd+partial alphanumeric_keys+xkb_symbols "cherryblue" {+    include "inet(nav_common)"+    key <FK16>	{	[ XF86Reload		]	};+    key <I02>	{	[ XF86HomePage		]	};+    key <I17>	{	[ XF86AudioStop		]	};+    key <I1E>	{	[ XF86AudioRaiseVolume	]	};+    key <I1F>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I22>	{	[ XF86AudioNext		]	};+    key <I24>	{	[ XF86AudioPrev		]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86AudioMute		]	};+    key <I63>	{	[ XF86Standby		]	};+    key <PRSC>	{	[ XF86Terminal		]	};+    key <XFER>	{	[ XF86Go		]	};+};++// Cherry CyMotion Master XPress+partial alphanumeric_keys+xkb_symbols "cherryblueb" {+    include "inet(media_nav_common)"+    key <FK16>  {       [ XF86Reload            ]       };+    key <I02>   {       [ XF86HomePage          ]       };+    key <I07>   {       [ XF86Forward           ]       };+    key <I08>   {       [ XF86Back              ]       };+    key <I0A>   {       [ XF86Copy              ]       };+    key <I0B>	{	[ XF86ScrollUp		]	};+    key <I12>   {       [ XF86ScrollDown        ]       };+    key <I17>   {       [ XF86Cut               ]       };+    key <I18>   {       [ XF86Paste             ]       };+    key <I1E>   {       [ XF86AudioRaiseVolume  ]       };+    key <I25>   {       [ XF86AudioLowerVolume  ]       };+    key <I26>   {       [ XF86AudioMute         ]       };+    key <I2C>   {       [ XF86Book              ]       };+    key <I32>   {       [ XF86Finance           ]       };+    key <I63>   {       [ XF86Standby                   ] };+    key <I67>   {       [ XF86AudioRewind       ]       };+    key <I70>   {       [ XF86Eject             ]       };+    key <I71>   {       [ XF86Book              ]       };+    key <I72>   {       [ XF86Book              ]       };+    key <PRSC>  {       [ XF86Terminal          ]       };+    key <XFER>  {       [ XF86Go                ]       };+};++// Cherry Blue Line CyBo@rd (alternate option)+partial alphanumeric_keys+xkb_symbols "cherrybluea" {+    include "inet(media_nav_acpi_common)"+    key <I6D>	{	[ XF86Go		]	};+};++// Cherry CyBo@rd USB-Hub+partial alphanumeric_keys+xkb_symbols "cherrycyboard" {+    include "inet(media_nav_acpi_common)"+    key <FK17>    {   [ XF86Search        ]   };+    key <I02> {   [ XF86HomePage      ]   };+    key <K67> {   [ XF86Terminal      ]   };+    key <XFER>    {   [ XF86AudioMedia    ]   };+};++// Cherry CyMotion Expert+partial alphanumeric_keys +xkb_symbols "cherrycmexpert" {+    include "inet(cherryblueb)"+    include "inet(acpi_common)"+    key <FK15>	{	[ XF86Mail		]	};+};+++// Chicony++// Chicony Internet Keyboard+partial alphanumeric_keys +xkb_symbols "chicony" {+    include "inet(acpi_common)"+    key <I12>	{	[ XF86AudioMute		]	};+    key <I17>	{	[ XF86Mail		]	};+    key <I19>	{	[ XF86AudioLowerVolume	]	};+    key <I1E>	{	[ XF86Forward		]	};+    key <I20>	{	[ XF86AudioNext		]	};+    key <I21>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I22>	{	[ XF86AudioPrev		]	};+    key <I23>	{	[ XF86AudioRaiseVolume	]	};+    key <I24>	{	[ XF86AudioStop		]	};+    key <I25>	{	[ XF86Back		]	};+    key <I26>	{	[ XF86LaunchB		]	};+    key <I2E>	{	[ XF86LaunchC		]	};+    key <I30>	{	[ XF86LaunchA		]	};+    key <I32>	{	[ XF86WWW		]	};+    key <I5F>	{	[ XF86ContrastAdjust	]	};+    key <I63>	{	[ XF86BrightnessAdjust	]	};+};++// Chicony KU-0108+partial alphanumeric_keys +xkb_symbols "chicony0108" {+    include "inet(cherrycyboard)"+};++// Chicony KU-0420 AKA Targus Slim Internet Media USB Keyboard+partial alphanumeric_keys+xkb_symbols "chicony0420" {+    include "inet(media_nav_acpi_common)"+    key <I01>   {       [ XF86AudioMedia        ]       };+    key <K67>   {       [ XF86MyComputer        ]       };+};++// Chicony KB-9885+partial alphanumeric_keys+xkb_symbols "chicony9885" {+    include "inet(acpi_common)"+    key <I12>	{	[ XF86AudioMute		]	};+    key <I17>	{	[ XF86Mail		]	};+    key <I19>	{	[ XF86AudioLowerVolume	]	};+    key <I1E>	{	[ XF86Forward		]	};+    key <I20>	{	[ XF86AudioNext		]	};+    key <I21>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I22>	{	[ XF86AudioPrev		]	};+    key <I23>	{	[ XF86AudioRaiseVolume	]	};+    key <I24>	{	[ XF86AudioStop		]	};+    key <I25>	{	[ XF86Back		]	};+    key <I26>	{	[ XF86LaunchB		]	};+    key <I2E>	{	[ XF86LaunchC		]	};+    key <I30>	{	[ XF86LaunchA		]	};+    key <I32>	{	[ XF86WWW		]	};+};+++// Compaq++// Compaq Easy Access Keyboard+partial alphanumeric_keys+xkb_symbols "compaqeak8" {+    key <I13>	{	[ XF86Community		]	};+    key <I14>	{	[ XF86Market		]	};+    key <I15>	{	[ XF86Meeting		]	};+    key <I1A>	{	[ XF86Search		]	};+    key <I1B>	{	[ XF86News		]	};+    key <I1E>	{	[ XF86Mail		]	};+    key <I1F>	{	[ XF86HomePage		]	};+    key <I23>	{	[ XF86WWW		]	};+};++// Compaq Internet Keyboard (7 keys)+partial alphanumeric_keys +xkb_symbols "compaqik7" {+    key <I12>	{	[ XF86LightBulb		]	};+    key <I1E>	{	[ XF86Mail		]	};+    key <I21>	{	[ XF86Search		]	};+    key <I23>	{	[ Help			]	};+    key <I25>	{	[ XF86VendorHome	]	};+    key <I26>	{	[ XF86HomePage		]	};+    key <I32>	{	[ XF86Shop		]	};+};++// Compaq Internet Keyboard (13 keys)+partial alphanumeric_keys+xkb_symbols "compaqik13" {+    include "inet(media_acpi_common)"+    key <I1E>	{	[ XF86Mail		]	};+    key <I1F>	{	[ XF86Go		]	};+    key <I21>	{	[ XF86Search		]	};+    key <I23>	{	[ XF86WWW		]	};+    key <I32>	{	[ XF86Shop		]	};+};++// Compaq Internet Keyboard (18 keys)+partial alphanumeric_keys+xkb_symbols "compaqik18" {+    include "inet(media_acpi_common)"+    key <I12>	{	[ XF86LightBulb		]	};+    key <I18>	{	[ XF86Eject		]	};+    key <I1E>	{	[ XF86Mail		]	};+    key <I1F>	{	[ XF86Go		]	};+    key <I21>	{	[ XF86Search		]	};+    key <I23>	{	[ XF86WWW		]	};+    key <I25>	{	[ XF86VendorHome	]	};+    key <I26>	{	[ XF86Community		]	};+    key <I32>	{	[ XF86Shop		]	};+    key <I68>	{	[ Print			]	};+};+++// Laptop/notebook Compaq (eg. Armada, Evo) Laptop Keyboard+partial alphanumeric_keys+xkb_symbols "armada" {+    include "inet(media_acpi_common)"+    key <I1A>	{	[ XF86Search		]	};+    key <I1E>	{	[ XF86Mail		]	};+    key <I1F>	{	[ XF86HomePage		]	};+    key <I23>	{	[ XF86WWW		]	};+    key <I59>   {       [ XF86Launch2           ]       }; // Battery Monitor +    key <I6F>	{	[ XF86AudioMedia	]	};+    key <I75>   {       [ XF86Launch0           ]       }; // Info Center +};++// Laptop/notebook Compaq (eg. Presario) Internet Keyboard+partial alphanumeric_keys+xkb_symbols "presario" {+    include "inet(media_acpi_common)"+    key <I14>	{	[ XF86Q			]	};+    key <I18>	{	[ XF86Launch2		]	};+    key <I1E>	{	[ XF86Mail		]	};+    key <I1F>	{	[ XF86Launch1		]	};+    key <I23>	{	[ XF86WWW		]	};+    key <I32>	{	[ XF86Shop		]	};+    key <I75>	{	[ XF86AudioMedia	]	};+};++// Compaq iPaq Keyboard+partial alphanumeric_keys+xkb_symbols "ipaq" {+    key <FK16>	{	[ XF86Shop		]	};+    key <I02>	{	[ XF86Standby		]	};+    key <I65>	{	[ XF86Search		]	};+    key <I66>	{	[ XF86Travel		]	};+    key <I69>	{	[ XF86BackForward	]	};+    key <I6A>	{	[ XF86Q			]	};+    key <I6C>	{	[ XF86Mail		]	};+};+++// Dell++partial alphanumeric_keys+xkb_symbols "dell" {+    include "inet(acpi_common)"+    key <I12>	{	[ XF86Mail		]	};+    key <I1E>	{	[ XF86Search		]	};+    key <I26>	{	[ XF86HomePage		]	};+};++// Dell Precision M65+partial alphanumeric_keys+xkb_symbols "dellm65" {+    include "inet(media_common)"+    key <I04>   {       [ XF86PowerOff          ]       };+    key <LWIN>  {       [ Super_L               ]       };+};++// Laptop/notebook Dell Inspiron 8xxx+partial alphanumeric_keys+xkb_symbols "inspiron" {+    include "inet(media_common)"+    key <I02>   {       [ XF86AudioStop         ]       };+    key <I04>   {       [ XF86AudioNext         ]       };+    key <I21>   {       [ XF86Eject             ]       };+    key <I56>   {       [ XF86Display           ]       };+    key <NFER>  {       [ XF86AudioPrev         ]       };+    key <XFER>  {       [ XF86AudioPlay, XF86AudioPause ] };+};++// DELL USB Multimedia Keyboard (former 8135, generalized, superset of 8125)+partial alphanumeric_keys+xkb_symbols "dellusbmm" {+    // Describes the extra keys on a SK-8135 Multimedia keyboard+    // From Olivier Lahaye <olivier dot lahaye at motorola dot com>+    include "inet(media_nav_acpi_common)"+    key <I02>	{	[ XF86HomePage		]	};+    key <K67>	{	[ XF86MyComputer	]	}; +    key <XFER>	{	[ XF86AudioMedia	]	};  +};+++// Diamond++// Diamond 9801 / 9802 series+partial alphanumeric_keys+xkb_symbols "diamond" {+    include "inet(media_nav_acpi_common)"+    key <I6D>	{	[ XF86Go		]	};+};+++// Ennyah++// Ennyah DKB-1008+partial alphanumeric_keys+xkb_symbols "ennyah_dkb1008" {+    include "inet(media_nav_acpi_common)"+    key <XFER>  {	[ XF86AudioMedia	]	};+};+++// Genius++// Genius Comfy KB-16M / Genius MM Keyboard KWD-910+partial alphanumeric_keys+xkb_symbols "genius" {+    include "inet(media_acpi_common)"+    key <I12>   {	[ XF86AudioRaiseVolume	]	};+    key <I17>   {	[ XF86Calculator	]	};+    key <I19>   {	[ XF86AudioLowerVolume	]	};+    key <I1E>   {	[ XF86Forward		]	};+    key <I21>   {	[ XF86AudioNext		]	};+    key <I23>	{	[ XF86AudioPrev		]	};+    key <I25>   {	[ XF86Back		]	};+    key <I26>   {	[ XF86ScreenSaver	]	};+    key <I2E>   {	[ XF86Mail		]	};+    key <I30>   {	[ XF86Eject		]	};+    key <I32>   {	[ XF86WWW		]	};+};+++// GeniusComfy21e+partial alphanumeric_keys+xkb_symbols "geniuscomfy2" {+    // Describes the extra keys on a Genius Comfy KB-21e-Scroll+    // From Radics Laszlo <garaboncias@mailbox.hu>+    include "inet(media_nav_acpi_common)"+    key <I23>   {       [ Return                ]       };+};++// Gyration++partial alphanumeric_keys+xkb_symbols "gyration" {+    include "inet(nav_common)"+    key <FK16>	{	[ XF86Reload		]	};+    key <I02>	{	[ XF86HomePage		]	};+    key <I17>	{	[ XF86AudioStop		]	};+    key <I1E>	{	[ XF86AudioRaiseVolume	]	};+    key <I1F>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I22>	{	[ XF86AudioNext		]	};+    key <I24>	{	[ XF86AudioPrev		]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86AudioMute		]	};+};+++// Hewlett-Packard++// Hewlett-Packard Internet Keyboard+partial alphanumeric_keys +xkb_symbols "hpi6" {+    include "inet(media_nav_acpi_common)"+    key <I02>   {       [ XF86HomePage          ]       };+    key <I12>	{	[ XF86Search		]	};+    key <I14>	{	[ XF86VendorHome	]	};+    key <I15>	{	[ XF86Community		]	};+    key <I16>	{	[ XF86AudioMedia	]	};+    key <I18>	{	[ XF86Eject		]	};+    key <I1E>	{	[ XF86Shop		]	};+    key <I1F>	{	[ XF86Launch1		]	};+    key <I26>	{	[ Help			]	};+    key <I27>	{	[ XF86Finance		]	};+    key <I39>	{	[ Print			]	};+    key <I75>   {       [ Help                  ]       };+};++// Hewlett-Packard SK-2501, SK-2505 Multimedia Keyboard+partial alphanumeric_keys+xkb_symbols "hp250x" {+    key <I12>	{	[ XF86Tools		]	};+    key <I17>	{	[ XF86Search		]	};+    key <I18>	{	[ XF86Eject		]	};+    key <I1E>	{	[ XF86Mail		]	};+    key <I20>	{	[ XF86AudioMute		]	};+    key <I21>	{	[ XF86Launch5		]	};+    key <I22>	{	[ XF86Launch3		]	};+    key <I23>	{	[ XF86Launch2		]	};+    key <I24>	{	[ XF86Launch4		]	};+    key <I25>	{	[ XF86Standby		]	};+    key <I26>	{	[ Help			]	};+    key <I2E>	{	[ XF86AudioLowerVolume	]	};+    key <I30>	{	[ XF86AudioRaiseVolume	]	};+    key <I32>	{	[ XF86WWW		]	};+};++// Hewlett-Packard Omnibook XE3 GC, GD, GE and Pavilion N5xxx+partial alphanumeric_keys+xkb_symbols "hpxe3gc" {+    // Describes the OneTouch buttons on HP Omnibook XE3 GC and+    // HP Pavilion N52XX models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    include "inet(media_common)"+    key <I71>	{	[ Help			]	};+    key <I72>	{	[ XF86Launch1		]	};+    key <I73>	{	[ XF86WWW		]	};+    key <I74>	{	[ XF86Mail		]	};+};++// Hewlett-Packard Omnibook XE3 GF+partial alphanumeric_keys+xkb_symbols "hpxe3gf" {+    // Describes the OneTouch buttons on HP Omnibook XE3 GF models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    include "inet(media_nav_common)"+    key <I73>	{	[ Help			]	};+    key <I74>	{	[ XF86Launch1		]	};+};++// Hewlett-Packard Omnibook XT1000+partial alphanumeric_keys+xkb_symbols "hpxt1000" {+    // Describes the OneTouch buttons on HP Omnibook XT1000 models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    include "inet(media_nav_common)"+    key <I71>	{	[ XF86Launch3		]	};+    key <I72>	{	[ Help			]	};+    key <I73>	{	[ XF86Launch2		]	};+    key <I74>	{	[ XF86Launch1		]	};+};++// Hewlett-Packard Pavilion ZT11xx+partial alphanumeric_keys+xkb_symbols "hpzt11xx" {+    // Describes the OneTouch buttons on HP Pavilion ZT11xx models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    include "inet(media_nav_common)"+    key <I71>	{	[ XF86Launch3		]	};+    key <I72>	{	[ Help			]	};+    key <I73>	{	[ XF86Launch2		]	};+    key <I74>	{	[ XF86Launch1		]	};+};++// Hewlett-Packard Pavilion dv5+partial alphanumeric_keys+xkb_symbols "hpdv5" {+    // Describes the OneTouch buttons on HP Pavilion dv5 models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    include "inet(media_common)"+    key <I12>  {       [ XF86ScreenSaver       ]       };+    key <I32>  {       [ XF86WWW               ]       };+    key <I75>  {       [ Help                  ]       };+    key <K6D>  {       [ XF86Launch1           ]       };+};++// Hewlett-Packard Omnibook XE4xxx and ZE4xxx+partial alphanumeric_keys+xkb_symbols "hpxe4xxx" {+    // Describes the OneTouch buttons on HP Omnibook XE4xxx and ZE4xxx+    // models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    include "inet(media_nav_common)"+    key <I70>	{	[ Help			]	};+    key <I71>	{	[ XF86Launch2		]	};+    key <I73>	{	[ XF86Launch1		]	};+};++// Hewlett-Packard Omnibook 500 FA+partial alphanumeric_keys+xkb_symbols "hp500fa" {+    // Describes the OneTouch buttons on HP Omnibook 500 FA models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    key <I73>	{	[ Help			]	};+    key <I74>	{	[ XF86Launch1		]	};+};++// Hewlett-Packard Omnibook 5xx+partial alphanumeric_keys+xkb_symbols "hp5xx" {+    // Describes the OneTouch buttons on HP Omnibook 5xx models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    include "inet(media_common)"+    key <I73>	{	[ Help			]	};+    key <I74>	{	[ XF86Launch1		]	};+};+++// Honeywell++// Honeywell Euroboard+partial alphanumeric_keys+xkb_symbols "honeywell_euroboard" {+    // January 2002+    // Scott Penrose <scottp@dd.com.au>+    // http://linux.dd.com.au/quest/linux/keyboard/honeywell/+    key <I10>	{	[ XF86Game		]	};+    key <I12>	{	[ XF86AudioPrev		]	};+    key <I17>	{	[ XF86Eject		]	};+    key <I18>	{	[ XF86Launch2		]	};+    key <I19>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I1E>	{	[ XF86Launch1		]	};+    key <I20>	{	[ XF86AudioMute		]	};+    key <I22>	{	[ XF86AudioNext		]	};+    key <I23>	{	[ XF86AudioStop		]	};+    key <I24>	{	[ XF86Mail		]	};+    key <I25>	{	[ XF86ScreenSaver	]	};+    key <I26>	{	[ XF86Calculator	]	};+    key <I2E>	{	[ XF86AudioLowerVolume	]	};+    key <I30>	{	[ XF86AudioRaiseVolume	]	};+    key <I32>	{	[ XF86WWW		]	};+};+++// IBM+++// IBM Rapid Access+partial alphanumeric_keys +xkb_symbols "rapidaccess" {+    key <I12>	{	[ XF86AudioMute		]	};+    key <I17>	{	[ XF86Launch2		]	};+    key <I1E>	{	[ XF86AudioLowerVolume	]	};+    key <I20>	{	[ XF86AudioRaiseVolume	]	};+    key <I21>	{	[ XF86AudioNext		]	};+    key <I22>	{	[ XF86AudioPause	]	};+    key <I22>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I23>	{	[ XF86AudioPrev		]	};+    key <I24>	{	[ XF86AudioStop		]	};+    key <I25>	{	[ XF86Standby		]	};+    key <I26>	{	[ Help			]	};+    key <I2E>	{	[ XF86Launch4		]	};+    key <I30>	{	[ XF86Launch3		]	};+    key <I32>	{	[ XF86Launch1		]	};+};++// IBM Rapid Access II+partial alphanumeric_keys +xkb_symbols "rapidaccess2" {+    include "inet(acpi_common)"+    key <I12>	{	[ XF86AudioNext		]	};+    key <I17>	{	[ XF86Favorites		]	};+    key <I1E>	{	[ XF86AudioMute		]	};+    key <I20>	{	[ XF86AudioStop		]	};+    key <I21>	{	[ XF86AudioLowerVolume	]	};+    key <I22>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I23>	{	[ XF86AudioRaiseVolume	]	};+    key <I24>	{	[ XF86AudioPrev		]	};+    key <I25>	{	[ XF86HomePage		]	};+    key <I26>	{	[ XF86Shop		]	};+    key <I2E>	{	[ XF86Search		]	};+    key <I30>	{	[ XF86MyComputer	]	};+    key <I32>	{	[ XF86VendorHome	]	};+};++// IBM ThinkPad 60 series+partial alphanumeric_keys+xkb_symbols "thinkpad60" {+    include "inet(media_nav_common)"+    key <I1F> { [ XF86VendorHome ] };+};++// IBM Space Saver+partial alphanumeric_keys+xkb_symbols "ibm_spacesaver" {+    key <NMLK>  {+        type="ONE_LEVEL",+        symbols[Group1]= [ Num_Lock ]+    };+};++// Logitech++// Logitech common definitions+partial hidden alphanumeric_keys+xkb_symbols "logitech_base" {+    include "inet(media_nav_acpi_common)"+    key <I02> { [ XF86HomePage ] };+    key <I15> { [ XF86Community ] };+    key <I16> { [ XF86ScrollClick ] };+    key <I21> {	[ XF86VendorHome ] };+    key <I3B> { [ XF86New ] };+    key <I3C> { [ XF86Reply ] };+    key <I43> { [ XF86MyComputer ] };+    key <I44> { [ XF86Documents ] };+    key <I57> { [ XF86Pictures ] };+    key <I58> { [ XF86Music ] };+};++// Logitech second set of common keys+partial hidden alphanumeric_keys+xkb_symbols "logitech_set3" {+    key <I17>	{	[ XF86AudioStop		]	};+    key <I1E>	{	[ XF86AudioRaiseVolume	]	};+    key <I1F>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I22>	{	[ XF86AudioNext		]	};+    key <I24>	{	[ XF86AudioPrev		]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86AudioMute		]	};+    key <I44>   {       [ XF86New               ]       };      // F1+    key <I45>   {       [ XF86Reply             ]       };      // F2+    key <I4A>   {       [ XF86Send              ]       };      // F4+    key <I54>   {       [ Print                 ]       };      // F7+    key <I55>   {       [ XF86Save              ]       };      // F8+    key <I56>   {       [ XF86Documents         ]       };      // F10+    key <I69>   {       [ XF86Go                ]       };+    key <XFER>  {       [ XF86AudioMedia        ]       };+};++// Logitech Access Keyboard+partial alphanumeric_keys+xkb_symbols "logiaccess" {+    include "inet(logitech_base)"+    key <FK13>	{	[ XF86MailForward	]	}; +    key <FK14>	{	[ XF86Send		]	}; +    key <I11>	{	[ XF86Messenger		]	};+    key <I12>	{	[ XF86WebCam		]	};+};++// Logitech Cordless Desktop (alternate option)+partial alphanumeric_keys+xkb_symbols "logicda" {+    include "inet(logitech_base)"+    include "inet(logitech_set3)"+};++// Logitech Internet Navigator Keyboard+partial alphanumeric_keys+xkb_symbols "logicink" {+    include "inet(logitech_base)"+    key <I11>	{	[ XF86Shop		]	};+    key <I12>	{	[ XF86VendorHome	]	};+    key <I13>	{	[ XF86Finance		]	};+    key <I14>	{	[ XF86Start		]	};+};++// Logitech Cordless Desktop EX110+partial alphanumeric_keys+xkb_symbols "logiex110" {+    include "inet(logitech_base)"+    key <I2F>   {       [ XF86Close             ]       };      // Close++// Extended function keys+// In the Console before starting X+// Using setkeycodes e03b 212 e03c 213 e03d 214 e03e 215 e03f 216 e040 217 +//       setkeycodes e041 218 e042 219 e043 220 e044 221 e057 222 e058 223 6d 206+// *=keys that are there but need different symbol names.+    key <I3B>   {       [ Help                  ]       };      // F1+    key <FK13>  {       [ XF86Word              ]       };      // F2+    key <FK14>  {       [ XF86Excel             ]       };      // F3+    key <FK15>  {       [ XF86Pictures          ]       };      // F4+    key <FK16>  {       [ Undo                  ]       };      // F5+    key <I65>   {       [ Redo                  ]       };      // F6 *+    key <I42>   {       [ Print                 ]       };      // F7+    key <I43>   {       [ XF86Save              ]       };      // F8+    key <I44>   {       [ XF86Launch1           ]       };      // F9 *+    key <I45>   {       [ XF86Launch2           ]       };      // F10+    key <I14>   {       [ XF86Launch3           ]       };      // F11+    key <I4A>   {       [ XF86Launch4           ]       };      // F12+};++// Logitech iTouch Internet Navigator Keyboard SE+partial alphanumeric_keys+xkb_symbols "logiinkse" {+    include "inet(logitech_base)"+    key <FK13>	{	[ XF86MailForward	]	};	// F3+    key <FK14>	{	[ XF86Send		]	};	// F4+    key <FK15>	{	[ Undo			]	};	// F5+    key <FK16>	{	[ Redo			]	};	// F6+    key <FK17>	{	[ Print			]	};	// F7+    key <I11>	{	[ XF86Messenger		]	};+    key <I12>	{	[ XF86WebCam		]	};+    key <I13>	{	[ XF86VendorHome	]	};+    key <I14>	{	[ XF86Shop		]	};+    key <I42>	{	[ XF86Save		]	};	// F8+};++// Logitech iTouch Internet Navigator Keyboard SE (USB)+partial alphanumeric_keys+xkb_symbols "logiinkseusb" {+    include "inet(logitech_base)"+    include "inet(logitech_set3)"+};++// Logitech iTouch Cordless Keyboard (model Y-RB6)+partial alphanumeric_keys+xkb_symbols "logiitc" {+    include "inet(logitech_base)"+    key <I2F> {	[ XF86AudioRaiseVolume ] };++    // Just to override RaiseVolume from logitech_base,+    // since no keysym can have two keycodes, see+    // https://bugs.freedesktop.org/show_bug.cgi?id=7095+    key <I30> {	[ XF86Launch1 ] };+};++// Logitech Internet Keyboard+partial alphanumeric_keys+xkb_symbols "logiik" {+    include "inet(logitech_base)"+    key <I12>	{	[ Find			]	};+    key <I17>	{	[ Print			]	};+    key <I18>	{	[ XF86Favorites		]	};+    key <I19>	{	[ XF86Reload		]	};+    key <I1E>	{	[ XF86Search		]	};+    key <I20>	{	[ XF86HotLinks		]	};+    key <I22>	{	[ XF86Forward		]	};+    key <I23>	{	[ XF86HomePage		]	};+    key <I24>	{	[ XF86Stop		]	};+    key <I25>	{	[ XF86OpenURL		]	};+    key <I26>	{	[ XF86AddFavorite	]	};+    key <I32>	{	[ XF86History		]	};+    key <I7A>	{	[ XF86WWW		]	};+};++// Logitech iTouch+partial alphanumeric_keys+xkb_symbols "itouch" {+    include "inet(logitech_base)"+    key <I1F>	{	[ XF86AudioMute		]	};+    key <I2B>	{	[ XF86AudioLowerVolume	]	};+    key <I2D>	{	[ XF86AudioRaiseVolume	]	};+};++// Logitech UltraX Cordless Media Desktop+partial alphanumeric_keys+xkb_symbols "logiultraxc" {+    key <FK16>  {       [ XF86AudioMute ]       };+    key <FK17>  {       [ XF86AudioLowerVolume  ]       };+    key <I2B>   {       [ XF86AudioNext ]       };+    key <I2D>   {       [ XF86AudioPrev ]       };+    key <I2C>   {       [ XF86AudioPlay, XF86AudioPause ]       };+    key <KPDC>  {       [ XF86AudioRaiseVolume  ]       };+};++partial alphanumeric_keys +xkb_symbols "logidinovo" {+    include "inet(media_nav_common)"+    key <I02>	{	[ XF86HomePage		]	};+    key <I12>	{	[ XF86Standby		]	};+    key <I17>	{	[ XF86Search		]	};+    key <I21>	{	[ XF86AudioRaiseVolume	]	};+    key <K66>	{	[ XF86AudioLowerVolume	]	};+    key <KPDC>	{	[ XF86AudioMute		]	};+    key <XFER>	{	[ XF86AudioMedia	]	};+};++partial alphanumeric_keys +xkb_symbols "logidinovoedge" {+    include "inet(media_acpi_common)"+    key <I02>	{	[ XF86HomePage		]	};+    key <I6C>	{	[ XF86Mail		]	};+    key <FK17>  {       [ XF86Search            ]       };+    key <XFER>	{	[ XF86AudioMedia	]	};+};++partial alphanumeric_keys+xkb_symbols "logitech_g15" {+    include "inet(media_nav_acpi_common)"+    key <AE13> {         [   XF86Messenger ] };+    key <HKTG> {         [     XF86Launch7 ] };+    key  <I02> {         [     XF86Launch9 ] };+    key  <I04> {         [       XF86Phone ] };+    key  <I08> {         [     XF86LaunchD ] };+    key  <I09> {         [     XF86Support ] };+    key  <I0F> {         [     XF86LaunchF ] };+    key  <I16> {         [      XF86LogOff ] };+    key  <I18> {         [     XF86Launch5 ] };+    key  <I21> {         [      XF86Travel ] };+    key  <I23> {         [       XF86Spell ] };+    key  <I31> {         [     XF86Launch4 ] };+    key  <I3C> {         [       XF86Music ] };+    key  <I42> {         [     XF86Forward ] };+    key  <I43> {         [        XF86Send ] };+    key  <I57> {         [        XF86Save ] };+    key  <I64> {         [    XF86Pictures ] };+    key  <I67> {         [     XF86LaunchA ] };+    key  <I76> {         [      XF86iTouch ] };+    key  <I77> {         [     XF86Launch3 ] };+    key  <I79> {         [    XF86ToDoList ] };+    key  <I7B> {         [  XF86Calculator ] };+    key  <K5A> {         [  XF86VendorHome ] };+    key  <K5D> {         [        XF86Away ] };+    key  <K5E> {         [      XF86WebCam ] };+    key  <K5F> {         [     XF86Launch0 ] };+    key  <K63> {         [     XF86Launch6 ] };+    key  <K6D> {         [    XF86Calendar ] };+    key  <K71> {         [     XF86LaunchB ] };+    key  <K72> {         [     XF86LaunchC ] };+    key  <K74> {         [         XF86WWW ] };+    key  <K75> {         [     XF86LaunchE ] };+    key <II5D> {         [     XF86Launch1 ] };+    key <NFER> {         [     XF86Launch2 ] };+    key <XFER> {         [     XF86Launch8 ] };+};+++// Memorex++// Memorex MX1998+partial alphanumeric_keys+xkb_symbols "mx1998" {+    include "inet(media_acpi_common)"+    key <DOWN>	{	[ XF86ScrollDown	]	};+    key <I12>	{	[ XF86AudioRewind	]	};+    key <I17>	{	[ XF86Close		]	};+    key <I18>	{	[ XF86Xfer		]	};+    key <I1E>	{	[ XF86AudioRecord	]	};+    key <I21>	{	[ XF86Documents		]	};+    key <I23>	{	[ XF86Game		]	};+    key <I25>	{	[ XF86Calculator	]	};+    key <I26>	{	[ Menu			]	};+    key <I32>	{	[ XF86WWW		]	};+    key <I57>	{	[ XF86WakeUp		]	};+    key <I68>	{	[ XF86DOS		]	};+    key <I7A>	{	[ XF86ScreenSaver	]	};+    key <UP>	{	[ XF86ScrollUp		]	};+};++// Memorex MX2500 EZ-Access Keyboard+partial alphanumeric_keys+xkb_symbols "mx2500" {+    include "inet(media_nav_acpi_common)"+    key <I12>	{	[ XF86Clear		]	};+    key <I13>	{	[ XF86Phone		]	};+    key <I14>	{	[ XF86DOS		]	};+    key <I17>	{	[ XF86Close		]	};+    key <I18>	{	[ XF86Xfer		]	};+    key <I1E>	{	[ XF86Eject		]	};+    key <I1F>	{	[ XF86Documents		]	};+    key <I26>	{	[ XF86News		]	};+    key <I6B>	{	[ XF86WakeUp		]	};+    key <I6D>	{	[ XF86RotateWindows	]	};+};++// Memorex MX2750+partial alphanumeric_keys+xkb_symbols "mx2750" {+    include "inet(media_nav_acpi_common)"+    key <I32>	{	[ XF86Launch0		]	};+};+++// Microsoft++// Microsoft Natural Wireless Ergonomic Keyboard 4000+partial alphanumeric_keys+xkb_symbols "microsoft4000" {+    include "inet(media_nav_common)"+    key <I192>  {       [ XF86Launch1           ]       };+    key <I193>  {       [ XF86Launch2           ]       };+    key <I194>  {       [ XF86Launch3           ]       };+    key <I195>  {       [ XF86Launch4           ]       };+    key <I196>  {       [ XF86Launch5           ]       };+//  Missing because of lack of support from kbd driver: Zoom in and+//  slider.+};++// Microsoft Natural Wireless Ergonomic Keyboard 7000+partial alphanumeric_keys+xkb_symbols "microsoft7000" {+    include "inet(media_nav_common)"+    key <I07>	{	[ Undo			]	};+    key <I09>	{	[ XF86New		]	};+    key <I0A>	{	[ Redo			]	};+    key <I0E>	{	[ XF86MailForward	]	};+    key <I2F>	{	[ XF86Close		]	};+    key <I39>	{	[ Print			]	};+    key <I55>	{	[ XF86Save		]	};+    key <I5A>	{	[ XF86Send		]	};+    key <I62>	{	[ Help			]	};+    key <I64>	{	[ XF86Reply		]	};+    key <I76>	{	[ parenleft		]	};+    key <I7B>	{	[ parenright		]	};+    key <K59>	{	[ KP_Equal		]	};+    key <K64>	{	[ XF86Open		]	};+//  Missing because of lack of support from kbd driver: Spell, Launch,+//  and Zoom in and out buttons.+};++// Microsoft Internet Keyboard+partial alphanumeric_keys+xkb_symbols "microsoftinet" {+    include "inet(nav_acpi_common)"+    key <I68>	{	[ XF86AudioStop		]	};+};++// Microsoft Natural Keyboard Pro USB  +partial alphanumeric_keys  + xkb_symbols "microsoftprousb" {  +    include "inet(nav_common)"+     key <FK16>   {   [ XF86Reload      ]   };  +     key <I01>   {   [ XF86AudioMedia   ]   };  +     key <I02>   {   [ XF86HomePage      ]   };  +     key <I17>   {   [ XF86AudioStop      ]   };  +     key <I1E>   {   [ XF86AudioRaiseVolume   ]   };  +     key <I1F>   {   [ XF86AudioPlay, XF86AudioPause ] };  +     key <I22>   {   [ XF86AudioNext      ]   };  +     key <I24>   {   [ XF86AudioPrev      ]   };  +     key <I25>   {   [ XF86AudioLowerVolume   ]   };  +     key <I26>   {   [ XF86AudioMute      ]   };  +     key <I63>   {   [ XF86Standby      ]   };  + //   Internet Section -- Left Side  + //   Multimedia Section -- Right Side  + //   My Computer Section -- Far Right  + //  My computer maps to printscreen, so leaving commented out for now   + //  key <PRSC>   {   [ XF86MyComputer   ]   };  +}; ++// Microsoft Natural Keyboard Pro OEM +partial alphanumeric_keys  +xkb_symbols "microsoftprooem" { +    include "inet(media_nav_common)"+    key <FK17>	{	[ XF86Search		]	}; +    key <I02>	{	[ XF86HomePage		]	}; +    key <I63>	{	[ XF86Standby		]	}; +    key <K67>	{	[ XF86MyComputer	]	}; +//   Internet Section -- Left Side +//   Multimedia Section -- Right Side +//   My Computer Section -- Far Right +};++// Microsoft Internet Keyboard Pro, Swedish+partial alphanumeric_keys+xkb_symbols "microsoftprose" {+    include "inet(nav_common)"+    key <FK16>	{	[ XF86Reload		]	};+    key <I02>	{	[ XF86HomePage		]	};+    key <I17>	{	[ XF86AudioStop		]	};+    key <I1E>	{	[ XF86AudioRaiseVolume	]	};+    key <I1F>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I22>	{	[ XF86AudioNext		]	};+    key <I24>	{	[ XF86AudioPrev		]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86AudioMute		]	};+    key <I63>	{	[ XF86Standby		]	};+    key <I68>	{	[ XF86AudioStop		]	};+    key <PRSC>	{	[ XF86MyComputer	]	};+    key <XFER>	{	[ XF86AudioMedia	]	};+};++// Microsoft Office Keyboard+partial alphanumeric_keys+xkb_symbols "microsoftoffice" {+    include "inet(nav_acpi_common)"+    key <BRK>	{	[ XF86Calendar		]	};+    key <END>	{	[ Undo			]	};+    key <I02>	{	[ XF86HomePage		]	};+    key <I1E>	{	[ XF86AudioLowerVolume	]	};+    key <I25>	{	[ XF86AudioRaiseVolume	]	};+    key <I26>	{	[ XF86AudioMute		]	};+    key <I3C>	{	[ XF86Cut		]	};+    key <I4A>	{	[ XF86LogOff		]	};+    key <I54>	{	[ XF86ApplicationLeft	]	};+    key <I55>	{	[ XF86TaskPane		]	};+    key <I56>	{	[ XF86Spell		]	};+    key <I57>	{	[ XF86WWW		]	};+    key <I58>	{	[ XF86New		]	};+    key <I59>	{	[ XF86Open		]	};+    key <I5A>	{	[ XF86Close		]	};+    key <I62>	{	[ Help			]	};+    key <I64>	{	[ XF86Save		]	};+    key <I67>	{	[ Print			]	};+    key <I6D>	{	[ XF86OfficeHome	]	};+    key <I70>	{	[ Redo			]	};+    key <I71>	{	[ XF86Reply		]	};+    key <I72>	{	[ XF86MailForward	]	};+    key <I73>	{	[ XF86Send		]	};+    key <I78>	{	[ XF86Copy		]	};+    key <MOAR>	{	[ XF86ApplicationRight	]	};+    key <RCTL>	{	[ XF86Paste		]	};+};++// Microsoft Wireless Multimedia Keyboard 1.0A +partial alphanumeric_keys +xkb_symbols "microsoftmult" { +    include "inet(media_nav_acpi_common)"+    key <AE13>  {       [ XF86Messenger         ]       }; +    key <FK14>	{	[ XF86New		]	}; +    key <FK15>	{	[ XF86Open		]	}; +    key <FK16>	{	[ XF86Close		]	}; +    key <FK17>	{	[ XF86Reply		]	}; +    key <I07>	{	[ Redo			]	}; +    key <I08>	{	[ Undo			]	}; +    key <I16>   {       [ XF86LogOff            ]       }; +    key <I23>	{	[ XF86Spell		]	}; +    key <I3B>	{	[ Help			]	}; +    key <I3C>   {       [ XF86Music     ]       }; +    key <I42>	{	[ XF86Forward		]	}; +    key <I43>	{	[ XF86Send		]	}; +    key <I57>	{	[ XF86Save		]	}; +    key <I58>	{	[ Print			]	}; +    key <I64>   {       [ XF86Pictures  ]       }; +    key <I80>   {       [ XF86Documents ]       }; +}; +++// Oretec++// Oretec MCK-800 MM/Internet keyboard+partial alphanumeric_keys+xkb_symbols "oretec" {+    include "inet(acpi_common)"+    key <I10>	{	[ XF86ScrollUp		]	};+    key <I12>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I17>	{	[ XF86AudioPrev		]	};+    key <I18>	{	[ XF86ScrollDown	]	};+    key <I19>	{	[ XF86ZoomOut		]	};+    key <I1E>	{	[ XF86AudioMute		]	};+    key <I21>	{	[ XF86WWW		]	};+    key <I22>	{	[ Menu			]	};+    key <I23>	{	[ XF86AudioStop		]	};+    key <I24>	{	[ XF86Calculator	]	};+    key <I25>	{	[ XF86Xfer		]	};+    key <I26>	{	[ XF86Mail		]	};+    key <I2E>	{	[ XF86AudioNext		]	};+    key <I30>	{	[ XF86AudioRaiseVolume	]	};+    key <I32>	{	[ XF86ZoomIn		]	};+    key <I68>	{	[ XF86AudioLowerVolume	]	};+};+++// Propeller++// Propeller Voyager (KTEZ-1000)+partial alphanumeric_keys+xkb_symbols "propeller" {+    include "inet(media_common)"+    key <I12>	{	[ XF86AudioRewind	]	};+    key <I17>	{	[ XF86Close		]	};+    key <I18>	{	[ XF86Xfer		]	};+    key <I1E>	{	[ XF86AudioRecord	]	};+    key <I21>	{	[ XF86Documents		]	};+    key <I23>	{	[ XF86Game		]	};+    key <I25>	{	[ XF86Calculator	]	};+    key <I26>	{	[ Menu			]	};+    key <I32>	{	[ XF86WWW		]	};+    key <I68>	{	[ XF86DOS		]	};+    key <I7A>	{	[ XF86Standby		]	};+};+++// QTronix++// QTronix Scorpius 98N++partial alphanumeric_keys+xkb_symbols "qtronix" {+    key <I10>	{	[ XF86ScrollDown	]	};+    key <I12>	{	[ XF86Forward		]	};+    key <I13>	{	[ XF86WakeUp		]	};+    key <I17>	{	[ XF86Search		]	};+    key <I18>	{	[ XF86Standby		]	};+    key <I19>	{	[ XF86ScrollUp		]	};+    key <I1E>	{	[ XF86Back		]	};+    key <I1F>	{	[ XF86Reload		]	};+    key <I20>	{	[ XF86AudioRaiseVolume	]	};+    key <I21>	{	[ XF86AudioPrev		]	};+    key <I22>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I23>	{	[ XF86AudioNext		]	};+    key <I24>	{	[ XF86AudioStop		]	};+    key <I25>	{	[ XF86HomePage		]	};+    key <I26>	{	[ XF86AudioMute		]	};+    key <I2E>	{	[ XF86AudioLowerVolume	]	};+    key <I30>	{	[ XF86AudioRecord	]	};+    key <I31>	{	[ XF86PowerOff		]	};+    key <I32>	{	[ XF86Stop		]	};+    key <I68>	{	[ XF86Calculator	]	};+};+++// Samsung++// Samsung SDM 4500P+partial alphanumeric_keys+xkb_symbols "samsung4500" {+    include "inet(media_nav_acpi_common)"+    key <AE13>	{	[ XF86Launch4		]	};+    key <I02>	{	[ XF86Launch1		]	};+    key <I04>	{	[ XF86Launch3		]	};+    key <I06>	{	[ XF86Launch5		]	};+    key <I09>	{	[ XF86Close		]	};+    key <I0A>	{	[ XF86Book		]	};+    key <I18>	{	[ XF86Eject		]	};+    key <I26>	{	[ Help			]	};+    key <I59>	{	[ XF86Explorer		]	};+    key <NFER>	{	[ XF86Launch2		]	};+};++// Samsung SDM 4510P+partial alphanumeric_keys+xkb_symbols "samsung4510" {+    include "inet(media_acpi_common)"+    key <I02>	{	[ XF86Launch1		]	};+    key <I04>	{	[ XF86Launch3		]	};+    key <I18>	{	[ XF86Eject		]	};+    key <NFER>	{	[ XF86Launch2		]	};+};+++// SK++// SK-1300+partial alphanumeric_keys+xkb_symbols "sk1300" {+    include "inet(media_common)"+    key <I12>	{	[ XF86Eject		]	};+    key <I1E>	{	[ XF86Forward		]	};+    key <I20>	{	[ XF86WWW		]	};+    key <I25>	{	[ XF86Standby		]	};+    key <I26>	{	[ XF86Back		]	};+    key <I32>	{	[ XF86Stop		]	};+};++// SK-2500+partial alphanumeric_keys+xkb_symbols "sk2500" {+    include "inet(media_nav_common)"+    key <I12>	{	[ XF86AudioRewind	]	};+    key <I17>	{	[ XF86Close		]	};+    key <I18>	{	[ XF86Eject		]	};+    key <I18>	{	[ XF86Eject		]	};+    key <I19>	{	[ XF86Forward		]	};+    key <I1E>	{	[ XF86AudioRecord	]	};+    key <I23>	{	[ XF86Xfer		]	};+    key <I25>	{	[ XF86PowerOff		]	};+    key <I26>	{	[ Menu			]	};+    key <I7A>	{	[ XF86ScreenSaver	]	};+};++// SK-6200+partial alphanumeric_keys+xkb_symbols "sk6200" {+    include "inet(acpi_common)"+    key <I12>	{	[ XF86Favorites		]	};+    key <I14>	{	[ XF86AudioLowerVolume	]	};+    key <I16>	{	[ XF86AudioRaiseVolume	]	};+    key <I17>	{	[ XF86Back		]	};+    key <I19>	{	[ XF86Forward		]	};+    key <I1E>	{	[ XF86WWW		]	};+    key <I20>	{	[ XF86AudioMute		]	};+    key <I21>	{	[ XF86AudioNext		]	};+    key <I22>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I23>	{	[ XF86AudioPrev		]	};+    key <I24>	{	[ XF86AudioStop		]	};+    key <I32>	{	[ XF86Mail		]	};+};++// SK-7100+partial alphanumeric_keys+xkb_symbols "sk7100" {+    include "inet(media_common)"+    key <I12>	{	[ XF86AudioPause	]	};+    key <I17>	{	[ XF86Close		]	};+    key <I18>	{	[ XF86Video		]	};+    key <I1E>	{	[ XF86Eject		]	};+    key <I25>	{	[ XF86CD		]	};+    key <I26>	{	[ XF86Display		]	};+    key <I32>	{	[ XF86WWW		]	};+};+++// Sven++// SVEN Ergonomic 2500+partial alphanumeric_keys+xkb_symbols "sven" {+    include "inet(acpi_common)"+    key <I10>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I12>	{	[ XF86Forward		]	};+    key <I17>	{	[ XF86AudioRaiseVolume	]	};+    key <I18>	{	[ XF86ZoomOut		]	};+    key <I19>	{	[ XF86AudioPrev		]	};+    key <I1A>	{	[ XF86AudioStop		]	};+    key <I1E>	{	[ XF86HomePage		]	};+    key <I20>	{	[ XF86Mail		]	};+    key <I21>	{	[ XF86ZoomIn		]	};+    key <I22>	{	[ XF86MyComputer	]	};+    key <I23>	{	[ XF86Stop		]	};+    key <I24>	{	[ XF86ScreenSaver	]	};+    key <I25>	{	[ XF86AudioLowerVolume	]	};+    key <I26>	{	[ XF86AudioMute		]	};+    key <I28>	{	[ XF86Calculator	]	};+    key <I29>	{	[ XF86Reload		]	};+    key <I2E>	{	[ XF86Search		]	};+    key <I30>	{	[ XF86Favorites		]	};+    key <I31>	{	[ XF86ScrollUp		]	};+    key <I32>	{	[ XF86ScrollDown	]	};+    key <I62>	{	[ XF86AudioNext		]	};+    key <I68>	{	[ XF86Back		]	};+};++// SVEN Slim 303+partial alphanumeric_keys+xkb_symbols "sven303" {+    key <I11>	{	[ XF86PowerOff		]	};+    key <I12>	{	[ XF86Sleep		]	};+    key <I16>	{	[ XF86WakeUp		]	};+};+++// Symplon++// Symplon PaceBook (tablet PC)+partial alphanumeric_keys+xkb_symbols "symplon" {+    include "inet(nav_acpi_common)"+    key <HOME>	{	[ XF86RotationPB	]	};+    key <I13>	{	[ XF86SplitScreen	]	};+    key <I14>	{	[ XF86Support		]	};+    key <I17>	{	[ XF86New		]	};+    key <I21>	{	[ XF86User2KB		]	};+    key <I25>	{	[ XF86RotationKB	]	};+    key <I26>	{	[ XF86MenuKB		]	};+    key <I6B>	{	[ XF86User1KB		]	};+    key <PAUS>	{	[ XF86UserPB		]	};+    key <UP>	{	[ XF86MenuPB		]	};+};++// Toshiba++// Toshiba Satellite S3000+partial alphanumeric_keys+xkb_symbols "toshiba_s3000" {+    include "inet(media_common)"+    // Describes the Special buttons on Toshiba Satellite 3000 models.+    // See http://sourceforge.net/projects/omke for details on enabling+    // these keys+    key <I06>	{	[ XF86Launch1		]	};+    key <I13>	{	[ XF86Launch2		]	};+    key <I71>	{	[ XF86WWW		]	};+    key <I73>	{	[ XF86Mail		]	};+    key <I75>	{	[ XF86AudioRaiseVolume	]	};+    key <I76>	{	[ XF86AudioLowerVolume	]	};+};++// Trust++// Trust Wireless Keyboard Classic+partial alphanumeric_keys+xkb_symbols "trust" {+    include "inet(media_nav_acpi_common)"+    key <I11>	{	[ XF86ScreenSaver	]	};+    key <I1E>	{	[ XF86Eject		]	};+};+++// Trust Direct Access Keyboard+partial alphanumeric_keys+xkb_symbols "trustda" {+    include "inet(media_common)"+    key <I12>	{	[ XF86AudioRewind	]	};+    key <I17>	{	[ XF86Close		]	};+    key <I18>	{	[ XF86Eject		]	};+    key <I1E>	{	[ XF86AudioRecord	]	};+    key <I23>	{	[ XF86Xfer		]	};+    key <I25>	{	[ XF86Standby		]	};+    key <I26>	{	[ Help			]	};+    key <I32>	{	[ XF86WWW		]	};+    key <I7A>	{	[ XF86Away		]	};+};+++// YaHoo!++// Yahoo! Internet Keyboard+partial alphanumeric_keys+xkb_symbols "yahoo" {+    include "inet(acpi_common)"+    key <I11>	{	[ XF86AudioPrev		]	};+    key <I12>	{	[ XF86AudioPlay, XF86AudioPause ] };+    key <I1E>	{	[ XF86AudioStop		]	};+    key <I1F>	{	[ XF86AudioNext		]	};+    key <I20>	{	[ XF86AudioRecord	]	};+    key <I21>	{	[ XF86AudioLowerVolume	]	};+    key <I22>	{	[ XF86AudioRaiseVolume	]	};+    key <I23>	{	[ XF86AudioMute		]	};+    key <I24>	{	[ XF86Close		]	};+    key <I25>	{	[ XF86Calculator	]	};+    key <I26>	{	[ Help			]	};+    key <I27>	{	[ XF86Mail		]	};+    key <I28>	{	[ XF86WWW		]	};+};++// Apple keyboards (macbooks, powerbooks, powermac G5, etc)+partial alphanumeric_keys+xkb_symbols "apple" {+// Really brightness up/down+    key <II65>  {       [ XF86BrightnessAdjust  ]       };+    key <I54>   {       [ XF86BrightnessAdjust  ]       };+    key <I20>	{	[ XF86AudioMute		]	};+    key <I2E>	{	[ XF86AudioLowerVolume	]	};+    key <I30>	{	[ XF86AudioRaiseVolume	]	};+    key <I56>   {       [ XF86RotateWindows	]	};+// Really keyboard backlight off/up/down+    key <I57>   {       [ XF86Launch0		]	};+    key <I58>	{	[ XF86Launch1    	]	};+    key <I59>	{	[ XF86Launch2   	]	};+    key <I5E>	{	[ XF86PowerOff          ]       };+    key <K5D>	{	[ F13 ]    };+    key <K5E>	{	[ F14 ]    };+    key <K5F>	{	[ F15 ]    };+    key <K6C>	{	[ XF86Eject ]    };+    key <II5D>	{	[ F16 ]    };+    key <KPEQ>  {       [ KP_Equal ] };+};++partial alphanumeric_keys+xkb_symbols "cymotionlinux" {+    include "inet(media_nav_acpi_common)"+    key <I07>	{	[	Undo			]	};+    key <I0A>	{	[	Redo			]	};+    key <I0F>	{	[	XF86ScrollDown		]	};+    key <I17>	{	[	XF86Launch2		]	};+    key <I1F>	{	[	XF86Launch1		]	};+    key <I28>	{	[	XF86MenuKB		]	};+    key <I2B>	{	[	XF86Launch3		]	};+    key <I3C>	{	[	XF86Cut			]	};+    key <I78>	{	[	XF86Copy		]	};+    key <K65>	{	[	XF86Paste		]	};+    key <K75>	{	[	XF86ScrollUp		]	};+    key <XFER>	{	[	XF86AudioMedia		]	};+};++partial alphanumeric_keys +xkb_symbols "silvercrest" {+    include "inet(media_nav_acpi_common)"+    key <I02>	{	[ XF86HomePage		]	};    +    key <I21>	{	[ XF86Launch2		]	};+    key <K67>	{	[ XF86Launch1		]	};+};++// eMachines++partial alphanumeric_keys+xkb_symbols "emachines" {+    include "inet(media_nav_acpi_common)"+    key <I32>  {  [ XF86iTouch                    ]  };+    key <KP0>  {  [ KP_0                          ]  };+    key <KP1>  {  [ KP_1                          ]  };+    key <KP2>  {  [ KP_2                          ]  };+    key <KP3>  {  [ KP_3                          ]  };+    key <KP4>  {  [ KP_4                          ]  };+    key <KP5>  {  [ KP_5                          ]  };+    key <KP6>  {  [ KP_6                          ]  };+    key <KP7>  {  [ KP_7                          ]  };+    key <KP8>  {  [ KP_8                          ]  };+    key <KP9>  {  [ KP_9                          ]  };+    key <KPAD> {  [ KP_Add                        ]  };+    key <KPDL> {  [ KP_Decimal                    ]  };+    key <KPDV> {  [ KP_Divide                     ]  };+    key <KPMU> {  [ KP_Multiply                   ]  };+    key <KPSU> {  [ KP_Subtract                   ]  };+};++// BenQ++//+// BenQ X*+// (X730, X500, X800)+//+// to make the FN_LOCK and CONFIG key work on the BenQ X500 , use ...+// setkeycodes e074 130 # KEY_PROPS  from /usr/include/linux/input.h+// setkeycodes e075 171 # KEY_CONFIG from /usr/include/linux/input.h+partial alphanumeric_keys+xkb_symbols "benqx" {+    include "inet(media_nav_acpi_common)"+    key <I02> { [ XF86ModeLock ] };+    key <I21> { [ XF86WWW      ]  };+    key <I2B> { [ XF86Go ] };+    key <I31> { [ XF86Calendar ] };+};++// Intel++// Intel Classmate+partial alphanumeric_keys+xkb_symbols "classmate" {+    key <I2E>   {       [ XF86AudioLowerVolume  ] };	+    key <I30>   {       [ XF86AudioRaiseVolume  ] };+};++// Unitek++partial alphanumeric_keys+xkb_symbols "unitekkb1925" {+    include "inet(media_nav_common)"+    key <I0C> { [ XF86AudioMute ] };+    key <I11> { [ XF86PowerOff ] };+    key <I12> { [ XF86Sleep ] };+    key <I16> { [ XF86WakeUp ] };+    key <I18> { [ XF86Search ] };+    key <I1A> { [ XF86Reload ] };+};++// Creative++// Creative Desktop Wireless 7000+partial alphanumeric_keys+xkb_symbols "creativedw7000" {+    include "inet(media_nav_acpi_common)"+    key <I66>   {       [ XF86Pictures ]       };+};++// Compal++// Compal FL90+partial alphanumeric_keys+xkb_symbols "compalfl90" {+    include "inet(media_nav_acpi_common)"+    key <I54>   {       [ XF86MonBrightnessUp   ]       };+    key <II65>  {       [ XF86MonBrightnessDown ]       };+};++partial alphanumeric_keys+xkb_symbols "pc105" {+    include "inet(media_nav_acpi_common)"+};++// HTC Dream+partial alphanumeric_keys+xkb_symbols "htcdream" {+	key <BKSP> { [ BackSpace ] };+	key <RTRN> { [ Return ] };++        //first row+        key <AE01> { [ 1, 1, exclam, exclam ] };+        key <AE02> { [ 2, 2, at, at ] };+        key <AE03> { [ 3, 3, numbersign, numbersign ] };+        key <AE04> { [ 4, 4, dollar, dollar ] };+        key <AE05> { [ 5, 5, percent, percent ] };+        key <AE06> { [ 6, 6, dead_circumflex, dead_circumflex ] };+        key <AE07> { [ 7, 7, ampersand, ampersand ] };+        key <AE08> { [ 8, 8, asterisk, asterisk ] };+        key <AE09> { [ 9, 9, parenleft, parenleft ] };+        key <AE10> { [ 0, 0, parenright, parenright ] };++	//fifth row+	key <LFSH> { [ Shift_L ] };+	key <SPCE> { [ space ] };+	key <AB09> { [ period, period, slash, slash ] };+	key <RTSH> { [ Shift_R ] };++	//modifiers+	modifier_map Shift { <LFSH>, <RTSH> };+};
+ data/symbols/keypad view
@@ -0,0 +1,632 @@+partial hidden keypad_keys+xkb_symbols "overlay" {+    include "keypad(overlay1)"+};++partial hidden keypad_keys+xkb_symbols "overlay1" {++    // Begin "Keypad" section++    key  <KP7> {	[  KP_Home	],	overlay1=<KO7>	};+    key  <KP8> {	[  KP_Up	],	overlay1=<KO8>	};+    key  <KP9> {	[  KP_Prior	],	overlay1=<KO9>	};++    key  <KP4> {	[  KP_Left	],	overlay1=<KO4>	};+    key  <KP5> {	[  KP_Begin	],	overlay1=<KO5>	};+    key  <KP6> {	[  KP_Right	],	overlay1=<KO6>	};++    key  <KP1> {	[  KP_End	],	overlay1=<KO1>	};+    key  <KP2> {	[  KP_Down	],	overlay1=<KO2>	};+    key  <KP3> {	[  KP_Next	],	overlay1=<KO3>	};++    key  <KP0> {	[  KP_Insert	],	overlay1=<KO0>	};+    key <KPDL> {  	[  KP_Delete	],	overlay1=<KODL>	};++    key  <KO7> {	[  KP_7	]	};+    key  <KO8> {	[  KP_8	]	};+    key  <KO9> {	[  KP_9	]	};++    key  <KO4> {	[  KP_4	]	};+    key  <KO5> {	[  KP_5	]	};+    key  <KO6> {	[  KP_6	]	};++    key  <KO1> {	[  KP_1	]	};+    key  <KO2> {	[  KP_2	]	};+    key  <KO3> {	[  KP_3	]	};++    key  <KO0> {	[  KP_0	]	};+    key <KODL> {  	[  KP_Decimal ]	};++    // End "Keypad" section+};++partial hidden keypad_keys+xkb_symbols "overlay2" {++    // Begin "Keypad" section++    key  <KP7> {	[  KP_Home	],	overlay2=<KO7>	};+    key  <KP8> {	[  KP_Up	],	overlay2=<KO8>	};+    key  <KP9> {	[  KP_Prior	],	overlay2=<KO9>	};++    key  <KP4> {	[  KP_Left	],	overlay2=<KO4>	};+    key  <KP5> {	[  KP_Begin	],	overlay2=<KO5>	};+    key  <KP6> {	[  KP_Right	],	overlay2=<KO6>	};++    key  <KP1> {	[  KP_End	],	overlay2=<KO1>	};+    key  <KP2> {	[  KP_Down	],	overlay2=<KO2>	};+    key  <KP3> {	[  KP_Next	],	overlay2=<KO3>	};++    key  <KP0> {	[  KP_Insert	],	overlay2=<KO0>	};+    key <KPDL> {  	[  KP_Delete	],	overlay2=<KODL>	};++    key  <KO7> {	[  KP_7	]	};+    key  <KO8> {	[  KP_8	]	};+    key  <KO9> {	[  KP_9	]	};++    key  <KO4> {	[  KP_4	]	};+    key  <KO5> {	[  KP_5	]	};+    key  <KO6> {	[  KP_6	]	};++    key  <KO1> {	[  KP_1	]	};+    key  <KO2> {	[  KP_2	]	};+    key  <KO3> {	[  KP_3	]	};++    key  <KO0> {	[  KP_0	]	};+    key <KODL> {  	[  KP_Decimal ]	};++    // End "Keypad" section+};++partial hidden default keypad_keys+xkb_symbols "x11" {+// Ungrab cancels server/keyboard/pointer grabs+    key <KPDV> {+        type="CTRL+ALT",+        symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]+    };++// ClsGrb kills whichever client has a grab in effect+    key <KPMU> {+        type="CTRL+ALT",+        symbols[Group1]= [ KP_Multiply,	KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]+    };++// -VMode switches to the previous video mode+    key <KPSU> {+        type="CTRL+ALT",+        symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]+    };++    key  <KP7> {	[  KP_Home,	KP_7	]	};+    key  <KP8> {	[  KP_Up,	KP_8	]	};+    key  <KP9> {	[  KP_Prior,	KP_9	]	};++// +VMode switches to the next video mode+    key <KPAD> {+        type="CTRL+ALT",+        symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]+    };++    key  <KP4> {	[  KP_Left,	KP_4	]	};+    key  <KP5> {	[  KP_Begin,	KP_5	]	};+    key  <KP6> {	[  KP_Right,	KP_6	]	};++    key  <KP1> {	[  KP_End,	KP_1	]	};+    key  <KP2> {	[  KP_Down,	KP_2	]	};+    key  <KP3> {	[  KP_Next,	KP_3	]	};+    key <KPEN> {	[  	KP_Enter	]	};+    key <KPEQ> {	[  	KP_Equal	]	};++    key  <KP0> {	[  KP_Insert,	KP_0	]	};+    key <KPDL> {  	[  KP_Delete,	KP_Decimal ]	};+    key <KPPT> {  	[  KP_Decimal,	KP_Decimal ]	};+};+++// Legacy PC keypad definition+// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+keypad_keys+xkb_symbols "legacy" {++    include "keypad(core)"+    include "keypad(legacymath)"+    include "keypad(legacynumber)"+    include "kpdl(dot)"+};+++// Legacy Wang 725-3771-ae and 725-3771-uk keypad definition+// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+keypad_keys+xkb_symbols "legacy_wang" {++    include "keypad(core)"+    include "keypad(legacymath)"+    include "keypad(legacynumber_wang)"+    include "kpdl(dot)"+};+++// Complete new keypad definition+// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+keypad_keys+xkb_symbols "oss" {++    include "keypad(core)"+    include "keypad(ossmath)"+    include "keypad(ossnumber)"+    include "kpdl(dotoss)"+};+++// Latin9 restriction of new keypad definition+// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+keypad_keys+xkb_symbols "oss_latin9" {++    include "keypad(core)"+    include "keypad(ossmath_latin9)"+    include "keypad(legacynumber)"+    include "kpdl(dotoss_latin9)"+};+++// Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad+// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+keypad_keys+xkb_symbols "oss_wang" {++    include "keypad(core)"+    include "keypad(ossmath)"+    include "keypad(ossnumber_wang)"+    include "kpdl(dotoss)"+};+++// Forward-looking keypad definition+// Won't work with applications that make ASCII assumptions+// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+keypad_keys+xkb_symbols "future" {++    include "keypad(core)"+    include "keypad(futuremath)"+    include "keypad(ossnumber)"+    include "kpdl(commaoss)"+};+++// Forward-looking keypad definition+// Won't work with applications that make ASCII assumptions+// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+keypad_keys+xkb_symbols "future_wang" {++    include "keypad(core)"+    include "keypad(futuremath)"+    include "keypad(ossnumber_wang)"+    include "kpdl(commaoss)"+};+++// Keypad keys nobody changes+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+partial keypad_keys+xkb_symbols "core" {++    modifier_map Mod2 { Num_Lock };++    key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };+    key <KPEN> { [ KP_Enter                     ] };+    key <KPEQ> { [ KP_Equal                     ] };+};+++// Legacy keypad math area+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+//+// ┏━━━━━┱─────┬─────┬─────┐+// ┃Num  ┃ ₁   │ ₂   │ ₃   │ ₁ <XF86_Ungrab>+// ┃Lock⇭┃ /   │ *   │ -   │ ₂ <XF86_ClearGrab>+// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>+//                   │ ₄   │ ₄ <XF86_Next_VMode>+//                   │     │+//                   ┤     │ 1 None+//                   │     │ 2 Ctrl+Alt+//                   │ +   │+//                   ╆━━━━━┪+partial keypad_keys+xkb_symbols "legacymath" {++    key.type[Group1]="CTRL+ALT" ;++    key <KPDV> { [   KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / <XF86_Ungrab>+    key <KPMU> { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * <XF86_ClearGrab>+    key <KPSU> { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>++    key <KPAD> { [      KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + <XF86_Next_VMode>++};+++// Keypad math area with non-CS operators+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+//+// ┏━━━━━┱─────┬─────┬─────┐+// ┃Num  ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁ <XF86_Ungrab>+// ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂ <XF86_ClearGrab>+// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>+//                   │ + ₄ │ ₄ <XF86_Next_VMode>+//                   │     │+//                   ┤     │ 1 None+//                   │     │ 2 Level3 ⇮+//                   │ + + │ 3 Shift+Level3 ⇧⇮+//                   ╆━━━━━┪ 4 Ctrl+Alt+partial keypad_keys+xkb_symbols "ossmath" {++    key.type[Group1]="CTRL+ALT" ;++    key <KPDV> { [   KP_Divide, 0x1002215, 0x10000F7, VoidSymbol,     XF86_Ungrab ] }; // / ∕ ÷     <XF86_Ungrab>+    key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol,  XF86_ClearGrab ] }; // * ⋅ ×  <XF86_ClearGrab>+    key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - − − <XF86_Prev_VMode>+    key <KPAD> { [      KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>++};+++// Keypad math area with non-CS operators in first levels+// As demanded by users not interested in legacy pre-unicode junk+// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+//+// ┏━━━━━┱─────┬─────┬─────┐+// ┃Num  ┃ / ₁ │ * ₂ │ - ₃ │ ₁ <XF86_Ungrab>+// ┃Lock⇭┃ ∕ ÷ │ . × │ − − │ ₂ <XF86_ClearGrab>+// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>+//                   │ + ₄ │ ₄ <XF86_Next_VMode>+//                   │     │+//                   ┤     │ 1 None+//                   │     │ 2 Level3 ⇮+//                   │ + + │ 3 Shift+Level3 ⇧⇮+//                   ╆━━━━━┪ 4 Ctrl+Alt+partial keypad_keys+xkb_symbols "futuremath" {++    key.type[Group1]="FOUR_LEVEL_X" ;++    key <KPDV> { [ 0x1002215,   KP_Divide, 0x10000F7,     XF86_Ungrab ] }; // ∕ / ÷     <XF86_Ungrab>+    key <KPMU> { [ 0x10022C5, KP_Multiply, 0x10000D7,  XF86_ClearGrab ] }; // ⋅ * ×  <XF86_ClearGrab>+    key <KPSU> { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // − - − <XF86_Prev_VMode>++    key <KPAD> { [ 0x100002B,      KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>+};+++// Keypad math area with non-CS operators, restricted to latin9+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+//+// ┏━━━━━┱─────┬─────┬─────┐+// ┃Num  ┃ / ₁ │ · ₂ │ - ₃ │ ₁ <XF86_Ungrab>+// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ <XF86_ClearGrab>+// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>+//                   │ + ₄ │ ₄ <XF86_Next_VMode>+//                   │     │+//                   ┤     │ 1 None+//                   │     │ 2 Level3 ⇮+//                   │ + + │ 3 Shift+Level3 ⇧⇮+//                   ╆━━━━━┪ 4 Ctrl+Alt+partial keypad_keys+xkb_symbols "ossmath_latin9" {++    key.type[Group1]="FOUR_LEVEL_X";++    key <KPDV> { [   KP_Divide,          slash, division,     XF86_Ungrab ] }; // / / ÷     <XF86_Ungrab>+    key <KPMU> { [ KP_Multiply, periodcentered, multiply,  XF86_ClearGrab ] }; // * · ×  <XF86_ClearGrab>+    key <KPSU> { [ KP_Subtract,          minus,    minus, XF86_Prev_VMode ] }; // - - - <XF86_Prev_VMode>++    key <KPAD> { [      KP_Add,           plus,     plus, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>+};+++// Legacy keypad number area+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+//+// ┏━━━━━┱                   ⇱ Home+// ┃Num  ┃                   ⇲ End+// ┃Lock⇭┃                   ⇞ Page up+// ┡━━━━━╃─────┼─────┼       ⇟ Page down+// │ 7   │ 8   │ 9   │       ⇞ Page up+// │ ⇱   │ ⇧   │ ⇞   │       ⎀ Insert+// ├─────┼─────┼─────┤       ␥ Delete+// │ 4   │ 5   │ 6   │       ⇦⇧⇨⇩ Directions+// │ ⇦   │     │ ⇨   │+// ├─────┼─────┼─────╆+// │ 1   │ 2   │ 3   ┃+// │ ⇲   │ ⇩   │ ⇟   ┃        1 None+// ├─────┴─────┼─────┨        2 Num Lock ⇭+// │ 0         │+// │ ⎀         │+// └───────────┴+partial keypad_keys+xkb_symbols "legacynumber" {++    key.type[Group1]="KEYPAD" ;++    key <KP7>  { [   KP_Home,       KP_7 ] }; //   <home> 7+    key <KP8>  { [     KP_Up,       KP_8 ] }; //     <up> 8+    key <KP9>  { [  KP_Prior,       KP_9 ] }; //  <prior> 9+ +    key <KP4>  { [   KP_Left,       KP_4 ] }; //   <left> 4+    key <KP5>  { [  KP_Begin,       KP_5 ] }; //  <begin> 5+    key <KP6>  { [  KP_Right,       KP_6 ] }; //  <right> 6++    key <KP1>  { [    KP_End,       KP_1 ] }; //    <end> 1+    key <KP2>  { [   KP_Down,       KP_2 ] }; //   <down> 2+    key <KP3>  { [   KP_Next,       KP_3 ] }; //   <next> 3++    key <KP0>  { [ KP_Insert,       KP_0 ] }; // <insert> 0+};+++// Legacy Wang 725-3771-ae and 725-3771-uk keypad number area+// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+// This is actually a three-level keypad, declared as four-level+// to avoid defining a new type+//+// ┏━━━━━┱                   ⇱ Home+// ┃Num  ┃                   ⇲ End+// ┃Lock⇭┃                   ⇞ Page up+// ┡━━━━━╃─────┼─────┼       ⇟ Page down+// │ 7   │ 8   │ 9   │       ⇞ Page up+// │ ⇱ < │ ⇧ > │ ⇞ ^ │       ⎀ Insert+// ├─────┼─────┼─────┤       ␥ Delete+// │ 4   │ 5   │ 6   │       ⇦⇧⇨⇩ Directions+// │ ⇦ [ │   ] │ ⇨ $ │+// ├─────┼─────┼─────╆+// │ 1   │ 2   │ 3   ┃+// │ ⇲ & │ ⇩ @ │ ⇟ # ┃       1 None+// ├─────┴─────┼─────┨       2 Num Lock ⇭+// │ 0         │             3 Level3 ⇮+// │ ⎀         │+// └───────────┴+partial keypad_keys+xkb_symbols "legacynumber_wang" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KP7>  { [   KP_Home,   KP_7,         less ] }; //   <home> 7 <+    key <KP8>  { [     KP_Up,   KP_8,      greater ] }; //     <up> 8 >+    key <KP9>  { [  KP_Prior,   KP_9,  asciicircum ] }; //  <prior> 9 ^+ +    key <KP4>  { [   KP_Left,   KP_4,  bracketleft ] }; //   <left> 4 [+    key <KP5>  { [  KP_Begin,   KP_5, bracketright ] }; //  <begin> 5 ]+    key <KP6>  { [  KP_Right,   KP_6,       dollar ] }; //  <right> 6 $++    key <KP1>  { [    KP_End,   KP_1,    ampersand ] }; //    <end> 1 &+    key <KP2>  { [   KP_Down,   KP_2,           at ] }; //   <down> 2 @+    key <KP3>  { [   KP_Next,   KP_3,   numbersign ] }; //   <next> 3 #++    key <KP0>  { [ KP_Insert,   KP_0,   apostrophe ] }; // <insert> 0 '+};+++// Keypad number area with arrow symbols+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+//+// ┏━━━━━┱                   ⇱ Home+// ┃Num  ┃                   ⇲ End+// ┃Lock⇭┃                   ⇞ Page up+// ┡━━━━━╃─────┼─────┼       ⇟ Page down+// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │       ⇞ Page up+// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │       ⎀ Insert+// ├─────┼─────┼─────┤       ␥ Delete+// │ 4 ⇐ │ 5 ⇔ │ 6 ⇗ │       ⇦⇧⇨⇩ Directions+// │ ⇦ ← │   ↔ │ ⇨ ↗ │       ⍽ narrow no-break space+// ├─────┼─────┼─────╆+// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃+// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃       1 None+// ├─────┴─────┼─────┨       2 Num Lock ⇭+// │ 0       ⇕ │             3 Level3 ⇮+// │ ⎀       ↕ │             4 Shift+Level3 ⇧⇮+// └───────────┴+partial keypad_keys+xkb_symbols "ossnumber" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KP7>  { [   KP_Home,   KP_7, 0x1002196, 0x10021D6 ] }; //   <home> 7 ↖ ⇖+    key <KP8>  { [     KP_Up,   KP_8, 0x1002191, 0x10021D1 ] }; //     <up> 8 ↑ ⇑+    key <KP9>  { [  KP_Prior,   KP_9, 0x1002197, 0x10021D7 ] }; //  <prior> 9 ↗ ⇗+ +    key <KP4>  { [   KP_Left,   KP_4, 0x1002190, 0x10021D0 ] }; //   <left> 4 ← ⇐+    key <KP5>  { [  KP_Begin,   KP_5, 0x1002194, 0x10021D4 ] }; //  <begin> 5 ↔ ⇔+    key <KP6>  { [  KP_Right,   KP_6, 0x1002192, 0x10021D2 ] }; //  <right> 6 → ⇒++    key <KP1>  { [    KP_End,   KP_1, 0x1002199, 0x10021D9 ] }; //    <end> 1 ↙ ⇙+    key <KP2>  { [   KP_Down,   KP_2, 0x1002193, 0x10021D3 ] }; //   <down> 2 ↓ ⇓+    key <KP3>  { [   KP_Next,   KP_3, 0x1002198, 0x10021D8 ] }; //   <next> 3 ↘ ⇘++    key <KP0>  { [ KP_Insert,   KP_0, 0x1002195, 0x10021D5 ] }; // <insert> 0 ↕ ⇕+};+++// Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols+// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+//+// ┏━━━━━┱                   ⇱ Home+// ┃Num  ┃                   ⇲ End+// ┃Lock⇭┃                   ⇞ Page up+// ┡━━━━━╃─────┼─────┼       ⇟ Page down+// │ 7 ↖ │ 8 ↑ │ 9 ↗ │       ⇞ Page up+// │ ⇱ < │ ⇧ > │ ⇞ ^ │       ⎀ Insert+// ├─────┼─────┼─────┤       ␥ Delete+// │ 4 ← │ 5 ↔ │ 6 → │       ⇦⇧⇨⇩ Directions+// │ ⇦ [ │   ] │ ⇨ $ │       ⍽ narrow no-break space+// ├─────┼─────┼─────╆+// │ 1 ↙ │ 2 ↓ │ 3 ↘ ┃+// │ ⇲ & │ ⇩ @ │ ⇟ # ┃       1 None+// ├─────┴─────┼─────┨       2 Num Lock ⇭+// │ 0       ↕ │             3 Level3 ⇮+// │ ⎀       ' │             4 Shift+Level3 ⇧⇮+// └───────────┴+partial keypad_keys+xkb_symbols "ossnumber_wang" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KP7>  { [   KP_Home,   KP_7,         less, 0x1002196 ] }; //   <home> 7 < ↖+    key <KP8>  { [     KP_Up,   KP_8,      greater, 0x1002191 ] }; //     <up> 8 > ↑+    key <KP9>  { [  KP_Prior,   KP_9,  asciicircum, 0x1002197 ] }; //  <prior> 9 ^ ↗+ +    key <KP4>  { [   KP_Left,   KP_4,  bracketleft, 0x1002190 ] }; //   <left> 4 [ ←+    key <KP5>  { [  KP_Begin,   KP_5, bracketright, 0x1002194 ] }; //  <begin> 5 ] ↔+    key <KP6>  { [  KP_Right,   KP_6,       dollar, 0x1002192 ] }; //  <right> 6 $ →++    key <KP1>  { [    KP_End,   KP_1,    ampersand, 0x1002199 ] }; //    <end> 1 & ↙+    key <KP2>  { [   KP_Down,   KP_2,           at, 0x1002193 ] }; //   <down> 2 @ ↓+    key <KP3>  { [   KP_Next,   KP_3,   numbersign, 0x1002198 ] }; //   <next> 3 # ↘++    key <KP0>  { [ KP_Insert,   KP_0,   apostrophe, 0x1002195 ] }; // <insert> 0 ' ↕+};++// Standard base "pc" layout only contains cursor keys, and then gets+// augmented with the digits later. If you define your own layout for+// the numpad you can inherit the cursors, but you'll have to define+// the digits yourself. This module can be included in the rules to+// define math operators; these are the variants used in computer+// languages that are based on ASCII. NoSymbol doesn't mean that+// nothing is bound to the key but that no assignment is done here.+// srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to+// be of type CTRL+ALT in order to assign server control events to+// them, but it uses the second level which is overwritten if we have+// more than one definition (shift state) for the key. Instead, here+// the commands are put at the fourth level.+partial keypad_keys+xkb_symbols "ops" {+    key <KPDV> { [ NoSymbol,  slash,     NoSymbol,  XF86_Ungrab     ] };+    key <KPMU> { [ NoSymbol,  asterisk,  NoSymbol,  XF86_ClearGrab  ] };+    key <KPSU> { [ NoSymbol,  minus,     NoSymbol,  XF86_Prev_VMode ] };+    key <KPAD> { [ NoSymbol,  plus,      NoSymbol,  XF86_Next_VMode ] };+    key <KPEQ> { [ NoSymbol,  equal      ] };+};++// Hexadecimal Numpad, by Roland Kaufmann <rlndkfmn at gmail dot com>+// License: BSD (also covers variant with ATM digit order)+// Third-level gives the letters used in hexadecimal numbers, or+// columns in small spreadsheets. As a bonus, having 'e' available at+// the center of the keyboard makes it easy to enter floating point+// numbers in scientific notation.+// Equal is added to start formulas (most numpads on PCs don't have+// their own equal key), comma as a list separator (as most+// programming languages wants period as a decimal separator) and+// colon to enter times and ranges. Someone also may want to represent+// multiplication and division in prose using x and colon.+// Two first levels are specified as NoSymbol to not override any+// previous specification. Combine this with another keypad specifier,+// e.g. "legacy".+partial keypad_keys+xkb_symbols "hex" {+    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    //             None       NumLock      AltGr+    // symbol row+    key <KPDV> { [ NoSymbol,  NoSymbol,  parenleft  ] };+    key <KPMU> { [ NoSymbol,  NoSymbol,  parenright ] };+    key <KPSU> { [ NoSymbol,  NoSymbol,  dollar     ] };++    // upper row+    key <KP7>  { [ NoSymbol,  NoSymbol,  a          ] };+    key <KP8>  { [ NoSymbol,  NoSymbol,  b          ] };+    key <KP9>  { [ NoSymbol,  NoSymbol,  c          ] };+ +    // home row+    key <KP4>  { [ NoSymbol,  NoSymbol,  d          ] };+    key <KP5>  { [ NoSymbol,  NoSymbol,  e          ] };+    key <KP6>  { [ NoSymbol,  NoSymbol,  f          ] };+    key <KPAD> { [ NoSymbol,  NoSymbol,  comma      ] };++    // lower row+    key <KP1>  { [ NoSymbol,  NoSymbol,  equal      ] };+    key <KP2>  { [ NoSymbol,  NoSymbol,  x          ] };+    key <KP3>  { [ NoSymbol,  NoSymbol,  colon      ] };++    // decimal row+    key <KP0>  { [ NoSymbol,  NoSymbol,  backslash  ] };+};++// Main numbers follows the traditions from ATMs and phones with+// numbers increasing downwards to the right. (It is easier to+// change the keyboard layout than to reprogram your local ATM;+// also cell-phones are becoming more common while calculators are+// becoming more rare).+// First level is left unspecified, so it may be combined with another+// layout, e.g. "legacy".+partial keypad_keys+xkb_symbols "atm" {+    // upper row+    key <KP7>  { [ NoSymbol,  KP_1 ] };+    key <KP8>  { [ NoSymbol,  KP_2 ] };+    key <KP9>  { [ NoSymbol,  KP_3 ] };++    // lower row+    key <KP1>  { [ NoSymbol,  KP_7 ] };+    key <KP2>  { [ NoSymbol,  KP_8 ] };+    key <KP3>  { [ NoSymbol,  KP_9 ] };+};+++partial modifier_keys+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, KP_Multiply, KP_Multiply, 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, KP_Subtract, KP_Subtract, 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, KP_Add, KP_Add, 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, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]+    };+};
+ data/symbols/kpdl view
@@ -0,0 +1,102 @@+// The <KPDL> key is a mess.+// It was probably originally meant to be a decimal separator.+// Except since it was declared by USA people it didn't use the original+// SI separator "," but a "." (since then the USA managed to f-up the SI+// by making "." an accepted alternative, but standards still use "," as+// default)+// As a result users of SI-abiding countries expect either a "." or a ","+// or a "decimal_separator" which may or may not be translated in one of the+// above depending on applications.+// It's not possible to define a default per-country since user expectations+// depend on the conflicting choices of their most-used applications,+// operating system, etc. Therefore it needs to be a configuration setting+// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>+++// Legacy <KPDL> #1+// This assumes KP_Decimal will be translated in a dot+partial keypad_keys+xkb_symbols "dot" {++    key.type[Group1]="KEYPAD" ;++    key <KPDL> { [ KP_Delete, KP_Decimal ] }; // <delete> <separator>+};+++// Legacy <KPDL> #2+// This assumes KP_Separator will be translated in a comma+partial keypad_keys+xkb_symbols "comma" {++    key.type[Group1]="KEYPAD" ;++    key <KPDL> { [ KP_Delete, KP_Separator ] }; // <delete> <separator>+};+++// Period <KPDL>, usual keyboard serigraphy in most countries+partial keypad_keys+xkb_symbols "dotoss" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space)+};+++// Period <KPDL>, usual keyboard serigraphy in most countries, latin-9 restriction+partial keypad_keys+xkb_symbols "dotoss_latin9" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KPDL> { [ KP_Delete, period, comma, nobreakspace ] }; // <delete> . , ⍽ (no-break space)+};+++// Comma <KPDL>, what most non anglo-saxon people consider the real separator+partial keypad_keys+xkb_symbols "commaoss" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KPDL> { [ KP_Delete, comma, period, 0x100202F ] }; // <delete> , . ⍽ (narrow no-break space)+};+++// Momayyez <KPDL>: Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE+partial keypad_keys+xkb_symbols "momayyezoss" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KPDL> { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // <delete> ? , ⍽ (narrow no-break space)+};+++// Abstracted <KPDL>, pray everything will work out (it usually does not)+partial keypad_keys+xkb_symbols "kposs" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KPDL> { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // <delete> ? ? ⍽ (narrow no-break space)+};++// Spreadsheets may be configured to use the dot as decimal+// punctuation, comma as a thousands separator and then semi-colon as+// the list separator. Of these, dot and semi-colon is most important+// when entering data by the keyboard; the comma can then be inferred+// and added to the presentation afterwards. Using semi-colon as a+// general separator may in fact be preferred to avoid ambiguities+// in data files. Most times a decimal separator is hard-coded, it+// seems to be period, probably since this is the syntax used in+// (most) programming languages.+partial keypad_keys+xkb_symbols "semi" {++    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;++    key <KPDL> { [ NoSymbol, NoSymbol, semicolon ] };+};
+ data/symbols/latin view
@@ -0,0 +1,256 @@+// Common Latin alphabet layout++default partial+xkb_symbols "basic" {++    key <AE01>	{ [         1,     exclam,  onesuperior,   exclamdown ]	};+    key <AE02>	{ [         2,         at,  twosuperior,    oneeighth ]	};+    key <AE03>	{ [         3, numbersign, threesuperior,    sterling ]	};+    key <AE04>	{ [         4,     dollar,   onequarter,       dollar ]	};+    key <AE05>	{ [         5,    percent,      onehalf, threeeighths ]	};+    key <AE06>	{ [         6, asciicircum, threequarters, fiveeighths ] };+    key <AE07>	{ [         7,  ampersand,    braceleft, seveneighths ]	};+    key <AE08>	{ [         8,   asterisk,  bracketleft,    trademark ]	};+    key <AE09>	{ [         9,  parenleft, bracketright,    plusminus ]	};+    key <AE10>	{ [         0, parenright,   braceright,       degree ]	};+    key <AE11>	{ [     minus, underscore,    backslash, questiondown ]	};+    key <AE12>	{ [     equal,       plus, dead_cedilla,  dead_ogonek ]	};++    key <AD01>	{ [         q,          Q,           at,  Greek_OMEGA ]	};+    key <AD02>	{ [         w,          W,      lstroke,      Lstroke ]	};+    key <AD03>	{ [         e,          E,            e,            E ]	};+    key <AD04>	{ [         r,          R,    paragraph,   registered ]	};+    key <AD05>	{ [         t,          T,       tslash,       Tslash ]	};+    key <AD06>	{ [         y,          Y,    leftarrow,          yen ]	};+    key <AD07>	{ [         u,          U,    downarrow,      uparrow ]	};+    key <AD08>	{ [         i,          I,   rightarrow,     idotless ]	};+    key <AD09>	{ [         o,          O,       oslash,     Ooblique ]	};+    key <AD10>	{ [         p,          P,        thorn,        THORN ]	};+    key <AD11>	{ [bracketleft,  braceleft, dead_diaeresis, dead_abovering ] };+    key <AD12>	{ [bracketright, braceright, dead_tilde,  dead_macron ]	};++    key <AC01>	{ [         a,          A,           ae,           AE ]	};+    key <AC02>	{ [         s,          S,       ssharp,      section ]	};+    key <AC03>	{ [         d,          D,          eth,          ETH ]	};+    key <AC04>	{ [         f,          F,      dstroke,  ordfeminine ]	};+    key <AC05>	{ [         g,          G,          eng,          ENG ]	};+    key <AC06>	{ [         h,          H,      hstroke,      Hstroke ]	};+    key <AC07>	{ [         j,          J,    dead_hook,    dead_horn ] };+    key <AC08>	{ [         k,          K,          kra,    ampersand ]	};+    key <AC09>	{ [         l,          L,      lstroke,      Lstroke ]	};+    key <AC10>	{ [ semicolon,    colon, dead_acute, dead_doubleacute ]	};+    key <AC11>	{ [apostrophe, quotedbl, dead_circumflex,  dead_caron ]	};+    key <TLDE>	{ [     grave, asciitilde,      notsign,      notsign ]	};++    key <BKSL>	{ [ backslash,        bar,   dead_grave,   dead_breve ]	};+    key <AB01>	{ [         z,          Z, guillemotleft,        less ]	};+    key <AB02>	{ [         x,          X, guillemotright,    greater ]	};+    key <AB03>	{ [         c,          C,         cent,    copyright ]	};+    key <AB04>	{ [         v,          V, leftdoublequotemark, leftsinglequotemark ]	};+    key <AB05>	{ [         b,          B, rightdoublequotemark, rightsinglequotemark ] };+    key <AB06>	{ [         n,          N,            n,            N ]	};+    key <AB07>	{ [         m,          M,           mu,    masculine ]	};+    key <AB08>	{ [     comma,       less, horizconnector,   multiply ]	};+    key <AB09>	{ [    period,    greater, periodcentered,   division ]	};+    key <AB10>	{ [     slash,   question, dead_belowdot, dead_abovedot ] };++};++// Northern Europe ( Danish, Finnish, Norwegian, Swedish) common layout++partial+xkb_symbols "type2" {++    include "latin"++    key <AE01>	{ [         1,     exclam,   exclamdown,  onesuperior ]	};+    key <AE02>	{ [         2,   quotedbl,           at,  twosuperior ]	};+    key <AE03>	{ [         3, numbersign,     sterling, threesuperior]	};+    key <AE04>	{ [         4,   currency,       dollar,   onequarter ]	};+    key <AE05>	{ [         5,    percent,      onehalf,         cent ]	};+    key <AE06>	{ [         6,  ampersand,          yen,  fiveeighths ]	};+    key <AE07>	{ [         7,      slash,    braceleft,     division ]	};+    key <AE08>	{ [         8,  parenleft,  bracketleft, guillemotleft]	};+    key <AE09>	{ [         9, parenright, bracketright, guillemotright] };+    key <AE10>	{ [         0,      equal,   braceright,       degree ]	};++    key <AD03>	{ [         e,          E,     EuroSign,         cent ]	};+    key <AD04>	{ [         r,          R,   registered,   registered ]	};+    key <AD05>	{ [         t,          T,        thorn,        THORN ]	};+    key <AD09>	{ [         o,          O,           oe,           OE ]	};+    key <AD11>	{ [     aring,  Aring, dead_diaeresis, dead_abovering ]	};+    key <AD12>	{ [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] };++    key <AC01>	{ [         a,          A,  ordfeminine,    masculine ]	};++    key <AB03>	{ [         c,          C,    copyright,    copyright ]	};+    key <AB08>	{ [     comma,  semicolon, dead_cedilla,  dead_ogonek ]	};+    key <AB09>	{ [    period,   colon, periodcentered, dead_abovedot ]	};+    key <AB10>	{ [     minus, underscore, dead_belowdot, dead_abovedot ] };+};++// Slavic Latin ( Albanian, Croatian, Polish, Slovene, Yugoslav)+// common layout++partial+xkb_symbols "type3" {++    include "latin"++    key <AD01>	{ [         q,          Q,    backslash,  Greek_OMEGA ]	};+    key <AD02>	{ [         w,          W,          bar,      Lstroke ]	};+    key <AD06>	{ [         z,          Z,    leftarrow,          yen ]	};++    key <AC04>	{ [         f,          F,  bracketleft,  ordfeminine ]	};+    key <AC05>	{ [         g,          G, bracketright,          ENG ]	};+    key <AC08>	{ [         k,          K,      lstroke,    ampersand ]	};++    key <AB01>	{ [         y,          Y, guillemotleft,         less ]	};+    key <AB04>	{ [         v,          V,           at,        grave ]	};+    key <AB05>	{ [         b,          B,    braceleft,   apostrophe ]	};+    key <AB06>	{ [         n,          N,   braceright,   braceright ]	};+    key <AB07>	{ [         m,          M,      section,    masculine ]	};+    key <AB08>	{ [     comma,  semicolon,         less,     multiply ]	};+    key <AB09>	{ [    period,      colon,      greater,     division ]	};+};++// Another one Latin common layout+// (German, Estonian, Spanish, Icelandic, Italian, Latin American, Portuguese)+ +partial+xkb_symbols "type4" {++    include "latin"++    key <AE02>	{ [         2,   quotedbl,           at,    oneeighth ]	};+    key <AE06>	{ [         6,  ampersand,      notsign,  fiveeighths ]	};+    key <AE07>	{ [         7,      slash,    braceleft, seveneighths ]	};+    key <AE08>	{ [         8,  parenleft,  bracketleft,    trademark ]	};+    key <AE09>	{ [         9, parenright, bracketright,    plusminus ]	};+    key <AE10>	{ [         0,      equal,   braceright,       degree ]	};++    key <AD03>	{ [         e,          E,     EuroSign,         cent ]	};++    key <AB08>	{ [   comma,  semicolon, horizconnector,     multiply ]	};+    key <AB09>	{ [  period,      colon, periodcentered,     division ]	};+    key <AB10>	{ [   minus, underscore, dead_belowdot, dead_abovedot ]	};+};++partial+xkb_symbols "nodeadkeys" {++    key <AE12>	{ [     equal,       plus,     cedilla,        ogonek ]	};+    key <AD11>	{ [bracketleft,  braceleft,  diaeresis,        degree ]	};+    key <AD12>	{ [bracketright, braceright, asciitilde,       macron ]	};+    key <AC10>	{ [ semicolon,      colon,       acute,   doubleacute ]	};+    key <AC11>	{ [apostrophe,   quotedbl, asciicircum,         caron ]	};+    key <BKSL>	{ [ backslash,        bar,       grave,         breve ]	};+    key <AB10>	{ [     slash,   question, dead_belowdot,    abovedot ]	};+};++partial+xkb_symbols "type2_nodeadkeys" {+ +    include "latin(nodeadkeys)"++    key <AD11>	{ [     aring,      Aring,   diaeresis,        degree ]	};+    key <AD12>	{ [ diaeresis, asciicircum, asciitilde,         caron ]	};+    key <AB08>	{ [     comma,  semicolon,     cedilla,        ogonek ]	};+    key <AB09>	{ [    period,   colon, periodcentered,      abovedot ]	};+    key <AB10>	{ [   minus, underscore, dead_belowdot,      abovedot ]	};+};++partial+xkb_symbols "type3_nodeadkeys" {+ +    include "latin(nodeadkeys)"+};++partial+xkb_symbols "type4_nodeadkeys" {+ +    include "latin(nodeadkeys)"++    key <AB10>	{ [   minus, underscore, dead_belowdot,      abovedot ]	};+};++// Added 2008.03.05 by Marcin Woliński+// See http://marcinwolinski.pl/keyboard/ for a description.+// Used by pl(intl)+//+// ┌────┐+// │ 2 4│   2 = Shift,  4 = Level3 + Shift+// │ 1 3│   1 = Normal, 3 = Level3+// └────┘+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓+// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ˙ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back  ┃+// │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃  space  ┃+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫+// ┃       ┃ Q   │ W   │ E   │ R   │ T   │ Y   │ U   │ I   │ O   │ P   │ { « │ } » ┃ Enter ┃+// ┃Tab ↹  ┃ q   │ w   │ e   │ r   │ t   │ y   │ u   │ i   │ o   │ p   │ [ ‹ │ ] › ┃   ⏎   ┃+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃+// ┃        ┃ A   │ S   │ D   │ F   │ G   │ H   │ J   │ K   │ L   │ : “ │ " ” │ | ¶ ┃      ┃+// ┃Caps ⇬  ┃ a   │ s   │ d   │ f   │ g   │ h   │ j   │ k   │ l   │ ; ‘ │ ' ’ │ \   ┃      ┃+// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫+// ┃             │ Z   │ X   │ C   │ V   │ B   │ N   │ M   │ < „ │ > · │ ? ¿ ┃             ┃+// ┃Shift ⇧      │ z   │ x   │ c   │ v   │ b   │ n   │ m   │ , ‚ │ . … │ / ⁄ ┃Shift ⇧      ┃+// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛+// ┃       ┃       ┃       ┃ ␣                               ⍽ ┃       ┃       ┃       ┃+// ┃Ctrl   ┃Meta   ┃Alt    ┃ ␣           Space               ⍽ ┃AltGr ⇮┃Menu   ┃Ctrl   ┃+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛+ +partial+xkb_symbols "intl" {++    key <TLDE>	{ [     grave,  asciitilde, dead_grave,       dead_tilde ]	};+    key <AE01>	{ [         1,      exclam, exclamdown,       dead_acute ]	};+    key <AE02>	{ [         2,          at,  copyright,   dead_diaeresis ]	};+    key <AE03>	{ [         3,  numbersign,      U2022, dead_doubleacute ]	}; // U+2022 is bullet (the name bullet doesn't work)+    key <AE04>	{ [         4,      dollar,    section,     dead_cedilla ]	};+    key <AE05>	{ [         5,     percent,   EuroSign,       dead_caron ]	};+    key <AE06>	{ [         6, asciicircum,       cent,  dead_circumflex ]	};+    key <AE07>	{ [         7,   ampersand,      U2212,       dead_breve ]	}; // U+2212 is MINUS SIGN+    key <AE08>	{ [         8,    asterisk,   multiply,    dead_abovedot ]	};+    key <AE09>	{ [         9,   parenleft,   division,    dead_belowdot ]	};+    key <AE10>	{ [         0,  parenright,     degree,   dead_abovering ]	};+    key <AE11>	{ [     minus,  underscore,     endash,      dead_macron ]	};+    key <AE12>	{ [     equal,        plus,     emdash,      dead_ogonek ]	};++    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>	{ [bracketleft,   braceleft,  U2039, guillemotleft ]    };+    key <AD12>	{ [bracketright, braceright, U203A, guillemotright ]	};++    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,      colon,  leftsinglequotemark,  leftdoublequotemark  ]  };+    key <AC11>	{ [apostrophe,   quotedbl, rightsinglequotemark, rightdoublequotemark  ]  };++    key <BKSL>	{ [ backslash,        bar, 	NoSymbol, paragraph ] };+    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, singlelowquotemark, doublelowquotemark ]	};+    key <AB09>	{ [    period,    greater, ellipsis, periodcentered ]	};+    key <AB10>	{ [     slash,   question, U2044,  questiondown ]     };  // U+2044 is FRACTION SLASH++};
+ data/symbols/level3 view
@@ -0,0 +1,208 @@+// these variants assign various XKB keycodes to ISO_Level3_Shift so that+// the third shift level can be reached+//++// Ensure a mapping to a real modifier for LevelThree+partial modifier_keys+xkb_symbols "modifier_mapping" {+  key.type[Group1] = "ONE_LEVEL";++  replace key <LVL3> {+    symbols[Group1] = [ ISO_Level3_Shift ]+  };+  modifier_map Mod5 { <LVL3> };+};++// the default behavior is for the right Alt key (AltGr) to generate the+// third engraved symbol+default partial modifier_keys+xkb_symbols "ralt_switch" {+  key <RALT> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+    };+  include "level3(modifier_mapping)"+};++// Right Alt key never chooses 3rd level.+// This option attempts to undo the effect of a layout's+// including ralt_switch.  You may also want to select another+// level3 option that maps the level3 shift to some other key.+partial modifier_keys+xkb_symbols "ralt_alt" {+  key <RALT> { +    type[Group1]="TWO_LEVEL",+    type[Group2]="TWO_LEVEL",+    type[Group3]="TWO_LEVEL",+    type[Group4]="TWO_LEVEL",+    symbols[Group1] = [ Alt_R, Meta_R ], +    symbols[Group2] = [ Alt_R, Meta_R ], +    symbols[Group3] = [ Alt_R, Meta_R ], +    symbols[Group4] = [ Alt_R, Meta_R ]+    };+  modifier_map Mod1    { <RALT> };+};++partial modifier_keys+xkb_symbols "ralt_switch_multikey" {+  key <RALT> {+    type[Group1]="TWO_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]+    };+  include "level3(modifier_mapping)"+};++// special case or right Alt switch - for use with grp:alts_toggle+//+partial hidden modifier_keys+xkb_symbols "ralt_switch_for_alts_toggle" {+ virtual_modifiers LAlt, AlGr;+  key <LALT> {+    type[Group1]="PC_RALT_LEVEL2",+    symbols[Group1] = [ Alt_L,  ISO_Prev_Group,  ISO_Prev_Group ],+    virtualMods= LAlt+  };+  key <RALT> {+    type[Group1]="PC_ALT_LEVEL2",+    symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],+    virtualMods= AltGr+  };+  include "level3(modifier_mapping)"+};++// using the level(alt_switch) map, either Alt key temporarily chooses+// the third shift level.  (Mostly be used to imitate Mac OS functionality.)+partial modifier_keys+xkb_symbols "alt_switch" {+  include "level3(lalt_switch)"+  include "level3(ralt_switch)"+};++partial modifier_keys+xkb_symbols "lalt_switch" {+  key <LALT> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+    };+  include "level3(modifier_mapping)"+};++// using the level(switch) map, the right Control key temporarily+// chooses the third shift level (until it is released).+partial modifier_keys+xkb_symbols "switch" {+  key <RCTL> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+    };+  include "level3(modifier_mapping)"+};++// using the level(menu_switch) map, the Menu key temporarily+// chooses the third shift level (until it is released).+partial modifier_keys+xkb_symbols "menu_switch" {+  key <MENU> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+    };+  include "level3(modifier_mapping)"+};++// using the level3(win_switch) map, the either Windows' logo key+// temporarily chooses the third shift level.+partial modifier_keys+xkb_symbols "win_switch" {+  include "level3(lwin_switch)"+  include "level3(rwin_switch)"+};++// using the level3(lwin_switch) map, the left Windows' logo key+// temporarily chooses the third shift level.+partial modifier_keys+xkb_symbols "lwin_switch" {+  key <LWIN> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+    };+  include "level3(modifier_mapping)"+};++// using the level(rwin_switch) map, the right Windows' logo key+// temporarily chooses the third shift level.  If you use this map,+// you should define your keyboard as pc101 or pc102 instead of pc104+// or pc105.+partial modifier_keys+xkb_symbols "rwin_switch" {+  key <RWIN> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+    };+  include "level3(modifier_mapping)"+};++// using the level3(enter_switch) map, the Enter key on the keypad+// temporarily chooses the third shift level.  This is especially+// useful for Mac laptops which miss the right Alt key.+partial modifier_keys+xkb_symbols "enter_switch" {+  key <KPEN> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+    };+  include "level3(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "caps_switch" {+  key <CAPS> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+  };+  include "level3(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "bksl_switch" {+  key <BKSL> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+  };+  include "level3(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "lsgt_switch" {+  key <LSGT> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift ]+  };+  include "level3(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "caps_switch_latch" {+  key <CAPS> {+    type[Group1]="THREE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]+  };+  include "level3(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "bksl_switch_latch" {+  key <BKSL> {+    type[Group1]="THREE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]+  };+  include "level3(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "lsgt_switch_latch" {+  key <LSGT> {+    type[Group1]="THREE_LEVEL",+    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]+  };+  include "level3(modifier_mapping)"+};
+ data/symbols/level5 view
@@ -0,0 +1,153 @@+// these variants assign various XKB keycodes to ISO_Level5_Shift so that+// the third shift level can be reached+//++// Ensure a mapping to a real modifier for LevelFive+partial modifier_keys+xkb_symbols "modifier_mapping" {+  key.type[Group1] = "ONE_LEVEL";++  replace key <MDSW> {+    symbols[Group1] = [ ISO_Level5_Shift ]+  };+  modifier_map Mod3 { <MDSW> };+};++// using the level(switch) map, the right Control key temporarily+// chooses the fifth shift level (until it is released).+partial modifier_keys+xkb_symbols "rctrl_switch" {+  key <RCTL> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level5_Shift ]+    };+  include "level5(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "lsgt_switch" {+  key <LSGT> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level5_Shift ]+    };+  include "level5(modifier_mapping)"+};++partial modifier_keys+xkb_symbols "ralt_switch" {+  key <RALT> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1] = [ ISO_Level5_Shift ]+    };+  include "level5(modifier_mapping)"+};+++// The following modifier keys are used to switch to the third shift and to set a+// corresponding lock, implemented as NumLock.++partial modifier_keys+xkb_symbols "lock" {+  // This adds the definitions needed to create a level5-lock behaviour, using+  // the real modifier NumLock as a lock indicator.+  // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK+  // See also: compat/level5(level5_lock)+  key.type[Group1] = "ONE_LEVEL";++  include "level5(modifier_mapping)"++  replace key <HYPR> {+    vmods = NumLock,+    symbols[Group1] = [ NoSymbol ],+    actions[Group1] = [ SetMods(modifiers=NumLock) ]+  };+  modifier_map Mod2 { <HYPR> };+};++partial modifier_keys+xkb_symbols "lsgt_switch_lock" {++  include "level5(lock)"++  key <LSGT> {+    type[Group1] = "EIGHT_LEVEL",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};++partial modifier_keys+xkb_symbols "lwin_switch_lock" {++  include "level5(lock)"++  key <LWIN> {+    type[Group1] = "EIGHT_LEVEL",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};++partial modifier_keys+xkb_symbols "ralt_switch_lock" {++  include "level5(lock)"++  key <RALT> {+    type[Group1] = "EIGHT_LEVEL",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};++partial modifier_keys+xkb_symbols "rwin_switch_lock" {++  include "level5(lock)"++  key <RWIN> {+    type[Group1] = "EIGHT_LEVEL",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};++partial modifier_keys+xkb_symbols "lsgt_switch_lock_cancel" {++  include "level5(lock)"++  key <LSGT> {+    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};++partial modifier_keys+xkb_symbols "lwin_switch_lock_cancel" {++  include "level5(lock)"++  key <LWIN> {+    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};++partial modifier_keys+xkb_symbols "ralt_switch_lock_cancel" {++  include "level5(lock)"++  key <RALT> {+    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};++partial modifier_keys+xkb_symbols "rwin_switch_lock_cancel" {++  include "level5(lock)"++  key <RWIN> {+    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",+    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]+  };+};
+ data/symbols/nbsp view
@@ -0,0 +1,204 @@+// Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP),+// Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired+// levels.+++////////////////////////////////////////+// Only Space++partial+xkb_symbols "none" {+  key <SPCE> {+    type[Group1]="ONE_LEVEL",+    symbols[Group1]= [ space ]+  };+};+++////////////////////////////////////////+// No-Break Space++partial+xkb_symbols "level2" {+  key <SPCE> {+    type[Group1]="TWO_LEVEL",+    symbols[Group1]= [ space, nobreakspace ]+  };+};+++// level3 & level3ns provide no-breaking spaces starting from level3+// This is good for typographers but experience shows many users accidently+// type no-breaking spaces on the CLI (resulting in errors)+// Used by fr(latin9) and lt(std)+partial+xkb_symbols "level3" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, space, nobreakspace ]+  };+};++// level3s kills fourth level+// Used by ca(multix)+partial+xkb_symbols "level3s" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, space, nobreakspace, NoSymbol ]+  };+};++// for this reason pushing no-breaking spaces to level4 is the safe default nowadays+partial+xkb_symbols "level4" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, space, space, nobreakspace ]+  };+};+++////////////////////////////////////////+// Narrow No-Break Space++// level3n provides narrow no-breaking space in addition to the normal one+partial+xkb_symbols "level3n" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, space, nobreakspace, 0x100202F ]+  };+};++// level4n provides narrow no-breaking space in addition to the normal one+partial+xkb_symbols "level4n" {+ key <SPCE> {+   type[Group1]="EIGHT_LEVEL",+   symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]+ };+};++// level4nl provides narrow no-breaking space in addition to the normal one+// without forcing the use of level5 for mostly four-level layouts+// Used by fr(oss), be(oss)…+partial+xkb_symbols "level4nl" {+ key <SPCE> {+   type[Group1]="LOCAL_EIGHT_LEVEL",+   symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]+ };+};+++////////////////////////////////////////+// Zero-Width Non-Joiner & Zero-Width Joiner+// Author: Behnam Esfahbod <behnam@esfahbod.info>++// ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other+// languages that use PersoArabic script.+++// ZWNJ on level 2+partial+xkb_symbols "zwnj2" {+  key <SPCE> {+    type[Group1]="TWO_LEVEL",+    symbols[Group1]= [ space, 0x100200c ]+  };+};+++// ZWNJ on level 2+// ZWJ on level 3+partial+xkb_symbols "zwnj2zwj3" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, 0x100200c, 0x100200d ]+  };+};+++// ZWNJ on level 2+// ZWJ on level 3+// NBSP on level 4+partial+xkb_symbols "zwnj2zwj3nb4" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ]+  };+};++// ZWNJ on level 2+// NBSP on level 3+// Used by ir(ku_ara), af(basic), af(ps), af(uz), af(olpc-fa), af(olpc-ps), af(olpc-uz)+partial+xkb_symbols "zwnj2nb3" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, 0x100200c, nobreakspace ]+  };+};+++// ZWNJ on level 2+// NBSP on level 3+partial+xkb_symbols "zwnj2nb3s" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ]+  };+};+++// ZWNJ on level 2+// NBSP on level 3+// ZWJ on level 4+partial+xkb_symbols "zwnj2nb3zwj4" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ]+  };+};+++// ZWNJ on level 2+// NBSP on level 3+// NNBSP on level 4+// Used by ir(pes)+partial+xkb_symbols "zwnj2nb3nnb4" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ]+  };+};+++// ZWNJ on level 3+// ZWJ on level 4+// Used by in(deva), in(olpc)+partial+xkb_symbols "zwnj3zwj4" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, space, 0x100200c, 0x100200d ]+  };+};+++// NBSP on level 2+// ZWNJ on level 3+// Used by lk(sin_phonetic)+partial+xkb_symbols "nb2zwnj3s" {+  key <SPCE> {+    type[Group1]="FOUR_LEVEL",+    symbols[Group1]= [ space, nobreakspace, 0x100200c, NoSymbol ]+  };+};
+ data/symbols/pc view
@@ -0,0 +1,90 @@+default partial alphanumeric_keys modifier_keys +xkb_symbols "pc105" {++    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			]	};++    include "srvr_ctrl(fkey2vt)"+    include "pc(editing)"+    include "keypad(x11)"++    key <BKSP> {	[ BackSpace, BackSpace	]	};++    key  <TAB> {	[ Tab,	ISO_Left_Tab	]	};+    key <RTRN> {	[ Return	]	};++    key <CAPS> {	[ Caps_Lock	]	};++    key <NMLK> {	[ Num_Lock 	]	};++    key <LFSH> {	[ Shift_L	]	};+    key <LCTL> {	[ Control_L	]	};++    key <LWIN> {	[ Super_L			]	};++    key <RTSH> {	[ Shift_R	]	};+    key <RCTL> {	[ Control_R	]	};++    key <RWIN> {	[ Super_R			]	};++    key <MENU> {	[ Menu			]	};++    // begin modifier mappings+    modifier_map Shift  { Shift_L, Shift_R };+    modifier_map Lock   { Caps_Lock };+    modifier_map Control{ Control_L, Control_R };+    modifier_map Mod2   { Num_Lock };+    modifier_map Mod4   { Super_L, Super_R };++    //  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	]	};+    include "altwin(meta_alt)"++    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 <OUTP> { [ XF86Display ] };+    key <KITG> { [ XF86KbdLightOnOff ] };+    key <KIDN> { [ XF86KbdBrightnessDown ] };+    key <KIUP> { [ XF86KbdBrightnessUp ] };+};++partial hidden alphanumeric_keys+xkb_symbols "editing" {+    key <PRSC> {+	type= "PC_ALT_LEVEL2",+	symbols[Group1]= [ Print, Sys_Req ]+    };+    key <SCLK> {  [  Scroll_Lock	]	};+    key <PAUS> {+	type= "PC_CONTROL_LEVEL2",+	symbols[Group1]= [ Pause, Break ]+    };+    key  <INS> {	[  Insert		]	};+    key <HOME> {	[  Home			]	};+    key <PGUP> {	[  Prior		]	};+    key <DELE> {	[  Delete		]	};+    key  <END> {	[  End			]	};+    key <PGDN> {	[  Next			]	};++    key   <UP> {	[  Up			]	};+    key <LEFT> {	[  Left			]	};+    key <DOWN> {	[  Down			]	};+    key <RGHT> {	[  Right		]	};+};
+ data/symbols/ru view
@@ -0,0 +1,677 @@+// based on+// russian standard keyboard+// AEN <aen@logic.ru>+// 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>+// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>++// Windows layout+partial default alphanumeric_keys+xkb_symbols "winkeys" {+    include "ru(common)"++    name[Group1]= "Russian";++    key <AE03> {        [               3,      numerosign      ]       };+    key <AE04> {        [               4,       semicolon      ]       };+    key <AE05> {        [               5,         percent      ]       };+    key <AE06> {        [               6,           colon      ]       };+    key <AE07> {        [               7,        question      ]       };+    key <AE08> {        [               8,        asterisk      ]       };++    key <AB10> {        [          period,           comma      ]       };+    key <BKSL> {        [       backslash,           slash      ]       };+};++partial hidden alphanumeric_keys +xkb_symbols "common" {++    key	<AE01> {	[		1,	    exclam 	]	};+    key	<AE02> {	[		2,        quotedbl	]	};+    key	<AE03> {	[		3,      numbersign	]	};+    key	<AE04> {	[		4,        asterisk	]	};+    key	<AE05> {	[		5,	     colon	]	};+    key	<AE06> {	[		6,	     comma	]	};+    key	<AE07> {	[		7,	    period	]	};+    key	<AE08> {	[		8,	 semicolon	]	};+    key	<AE09> {	[		9,	 parenleft	]	};+    key	<AE10> {	[		0,	parenright	]	};+    key	<AE11> {	[	    minus,	underscore	]	};+    key	<AE12> {	[	    equal,	      plus	]	};+    key	<BKSL> {	[	backslash,             bar	]	};+    key	<AB10> {	[	    slash,	  question	]	};+    key <LSGT> {        [           slash,             bar      ]       };++    key	<TLDE> {	[     Cyrillic_io,     Cyrillic_IO	]	};+    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};+    key	<AD02> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};+    key	<AD03> {	[      Cyrillic_u,	Cyrillic_U	]	};+    key	<AD04> {	[     Cyrillic_ka,     Cyrillic_KA	]	};+    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE	]	};+    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN	]	};+    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};+    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};+    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};+    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};+    key	<AD11> {	[     Cyrillic_ha,     Cyrillic_HA	]	};+    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};+    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF	]	};+    key	<AC02> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};+    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE	]	};+    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A	]	};+    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE	]	};+    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER	]	};+    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O	]	};+    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL	]	};+    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE	]	};+    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};+    key	<AC11> {	[      Cyrillic_e,	Cyrillic_E	]	};+    key	<AB01> {	[     Cyrillic_ya,     Cyrillic_YA	]	};+    key	<AB02> {	[    Cyrillic_che,    Cyrillic_CHE	]	};+    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES	]	};+    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM	]	};+    key	<AB05> {	[      Cyrillic_i,	Cyrillic_I	]	};+    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE	]	};+    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};+    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE	]	};+    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU	]	};++    key.type[group1]="TWO_LEVEL";++    include "kpdl(comma)"+};++partial alphanumeric_keys+xkb_symbols "legacy" {+    include "ru(common)"++    name[Group1]= "Russian (legacy)";+};++partial alphanumeric_keys+xkb_symbols "olpc" {++    include "ru(common)"++    key        <TLDE> {        [          0x01000451,          0x01000401, grave       ]       }; // Ñ‘, Ð+    key <AE03> {        [               3,      numbersign, 0x01002116      ]       }; // â„–+    key <AE04> {        [               4,          dollar, semicolon   ]       };+    key <AE06> {        [               6,      asciicircum, colon      ]       };+    key <AE07> {        [               7,          ampersand           ]       };+    key <AE09> {        [               9,          parenleft, acute    ]       };+    key <AC12> {        [       backslash,          bar, slash          ]       };++    include "group(olpc)"+};++partial alphanumeric_keys+xkb_symbols "typewriter" {+    include "ru(common)"+    name[Group1]= "Russian (typewriter)";+    key	<TLDE> {	[	      bar,	      plus	] 	};+    key	<AE01> {	[      numerosign,		 1 	]	};+    key	<AE02> {	[           minus,		 2	]	};+    key	<AE03> {	[	    slash,		 3	]	};+    key	<AE04> {	[	 quotedbl,		 4	]	};+    key	<AE05> {	[	    colon,		 5	]	};+    key	<AE06> {	[	    comma,		 6	]	};+    key	<AE07> {	[	   period,		 7	]	};+    key	<AE08> {	[      underscore,		 8	]	};+    key	<AE09> {	[	 question,		 9	]	};+    key	<AE10> {	[	  percent,		 0	]	};+    key	<AE11> {	[	   exclam,	     equal	]	};+    key	<AE12> {	[       semicolon,	 backslash	]	};++    key	<BKSL> {	[	parenright,	 parenleft	]	};++    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};+    key	<AB10> {	[     Cyrillic_io,     Cyrillic_IO	]	};+};++partial alphanumeric_keys+xkb_symbols "typewriter-legacy" {+    include "ru(common)"+    name[Group1]= "Russian (typewriter, legacy)";+    key	<TLDE> {	[      apostrophe,	  quotedbl	] 	};+    key	<AE01> {	[	   exclam,		 1 	]	};+    key	<AE02> {	[      numerosign,		 2	]	};+    key	<AE03> {	[	    slash,		 3	]	};+    key	<AE04> {	[	semicolon,		 4	]	};+    key	<AE05> {	[	    colon,		 5	]	};+    key	<AE06> {	[	    comma,		 6	]	};+    key	<AE07> {	[	   period,		 7	]	};+    key	<AE08> {	[      underscore,		 8	]	};+    key	<AE09> {	[	 question,		 9	]	};+    key	<AE10> {	[	  percent,		 0	]	};+    key	<BKSL> {	[	parenleft,	parenright	]	};++    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};+    key	<AB10> {	[     Cyrillic_io,     Cyrillic_IO	]	};+};++partial alphanumeric_keys+xkb_symbols "phonetic" {++    name[Group1]= "Russian (phonetic)";++    key	<AE01> {	[		1,	    exclam 	]	};+    key	<AE02> {	[		2,        	at	]	};+    key	<AE03> {	[		3,     Cyrillic_io 	]	};+    key	<AE04> {	[		4,     Cyrillic_IO	]	};+    key	<AE05> {	[		5, Cyrillic_hardsign   	]	};+    key	<AE06> {	[		6, Cyrillic_HARDSIGN	]	};+    key	<AE07> {	[		7,	 ampersand	]	};+    key	<AE08> {	[		8,        asterisk	]	};+    key	<AE09> {	[		9,	 parenleft	]	};+    key	<AE10> {	[		0,	parenright	]	};+    key <AE11> {	[	    minus,	underscore	]	};++    key	<AB09> {	[	   period,	   greater	]	};+    key	<AB10> {	[	    slash,	  question	]	};+    key	<AB08> {	[	    comma,	      less	]	};+    key	<AC10> {	[	semicolon,	     colon	]	};+    key	<AC11> {	[      apostrophe,	  quotedbl	]	};+    key	<LSGT> {	[	      bar,	 brokenbar	]	};++    key	<TLDE> {	[     Cyrillic_yu,     Cyrillic_YU	]	};+    key	<LatQ> {	[     Cyrillic_ya,     Cyrillic_YA	]	};+    key	<LatZ> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};+    key	<LatS> {	[     Cyrillic_es,     Cyrillic_ES	]	};+    key	<LatA> {	[      Cyrillic_a,	Cyrillic_A	]	};+    key	<LatW> {	[     Cyrillic_ve,     Cyrillic_VE	]	};+    key	<LatC> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};+    key	<LatX> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};+    key	<LatD> {	[     Cyrillic_de,     Cyrillic_DE	]	};+    key	<LatE> {	[     Cyrillic_ie,     Cyrillic_IE	]	};+    key	<LatV> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};+    key	<LatF> {	[     Cyrillic_ef,     Cyrillic_EF	]	};+    key	<LatT> {	[     Cyrillic_te,     Cyrillic_TE	]	};+    key	<LatR> {	[     Cyrillic_er,     Cyrillic_ER	]	};+    key	<LatN> {	[     Cyrillic_en,     Cyrillic_EN	]	};+    key	<LatB> {	[     Cyrillic_be,     Cyrillic_BE	]	};+    key	<LatH> {	[     Cyrillic_ha,     Cyrillic_HA	]	};+    key	<LatG> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};+    key	<LatY> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};+    key	<LatM> {	[     Cyrillic_em,     Cyrillic_EM	]	};+    key	<LatJ> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};+    key	<LatU> {	[      Cyrillic_u,	Cyrillic_U	]	};+    key	<LatK> {	[     Cyrillic_ka,     Cyrillic_KA	]	};+    key	<LatI> {	[      Cyrillic_i,	Cyrillic_I	]	};+    key	<LatO> {	[      Cyrillic_o,	Cyrillic_O	]	};+    key	<LatL> {	[     Cyrillic_el,     Cyrillic_EL	]	};+    key	<LatP> {	[     Cyrillic_pe,     Cyrillic_PE	]	};++    key	<AD11> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};+    key	<AE12> {	[    Cyrillic_che,    Cyrillic_CHE	]	};+    key	<AD12> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};+    key	<BKSL> {	[      Cyrillic_e,	Cyrillic_E	]	};+};++partial alphanumeric_keys+xkb_symbols "phonetic_winkeys" {++    include "ru(phonetic)"+    name[Group1]= "Russian (phonetic WinKeys)";++    key	<LatX> {	[     Cyrillic_ha,     Cyrillic_HA	]	};+    key	<LatH> {	[     Cyrillic_che,     Cyrillic_CHE	]	};+    key	<AE12> {	[ Cyrillic_softsign, Cyrillic_softsign  ]	};++};++partial alphanumeric_keys+xkb_symbols "tt" {+    include "ru(winkeys)"+    name[Group1]= "Tatar";++    key.type[group1]="FOUR_LEVEL";++    key <TLDE> {       [      0x010004bb,      0x010004ba,+                             Cyrillic_io,     Cyrillic_IO      ]       };+    key        <AD02> {        [      0x010004e9,      0x010004e8,+                            Cyrillic_tse,    Cyrillic_TSE      ]       };+    key        <AD09> {        [      0x010004d9,      0x010004d8,+                          Cyrillic_shcha,  Cyrillic_SHCHA      ]       };+    key        <AD12> {        [      0x010004af,      0x010004ae,+                       Cyrillic_hardsign,Cyrillic_HARDSIGN     ]       };+    key        <AC10> {        [      0x010004a3,      0x010004a2,+                            Cyrillic_zhe,    Cyrillic_ZHE      ]       };+    key        <AB07> {        [      0x01000497,      0x01000496,+                       Cyrillic_softsign,Cyrillic_SOFTSIGN     ]       };++    include "level3(ralt_switch)"++};++partial alphanumeric_keys +xkb_symbols "os_legacy" {+    include "ru(common)"++    name[Group1]= "Ossetian (legacy)";++    key	<TLDE> {	[      Cyrillic_e,      Cyrillic_E	]	};+    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O, Cyrillic_io, Cyrillic_IO	]	};+    key	<AC11> {	[      0x010004D5,      0x010004D4      ]	};+};++partial alphanumeric_keys +xkb_symbols "os_winkeys" {+    include "ru(winkeys)"++    name[Group1]= "Ossetian (WinKeys)";++    key	<TLDE> {	[      Cyrillic_e,      Cyrillic_E	]	};+    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O, Cyrillic_io, Cyrillic_IO	]	};+    key	<AC11> {	[      0x010004D5,      0x010004D4      ]	};+};++partial alphanumeric_keys+xkb_symbols "cv" {+    include "ru(winkeys)"++    name[Group1]= "Chuvash";++    key.type[group1]="FOUR_LEVEL";++    key        <AD03> {        [      Cyrillic_u,	Cyrillic_U,+                          U04F3,    U04F2      ]       };+    key        <AD05> {        [      Cyrillic_ie,     Cyrillic_IE,+                          U04D7,    U04D6     ]       };+    key        <AC04> {        [      Cyrillic_a,	Cyrillic_A,+                          U04D1,    U04D0      ]       };+    key        <AB03> {        [      Cyrillic_es,     Cyrillic_ES,+                          U04AB,    U04AA      ]       };++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "udm" {+    include "ru(winkeys)"++    name[Group1]= "Udmurt";++    key.type[group1]="FOUR_LEVEL";++    key	<AE01> {	[	 question,	    exclam,    1,       1 	]	};+    key	<AE02> {	[	parenleft,        quotedbl,    2,       2	]	};+    key	<AE03> {	[      parenright,      numerosign,    3,       3	]	};+    key	<AE04> {	[	    colon,       semicolon,    4,       4	]	};+    key	<AE05> {	[	 asterisk,	   percent,    5,       5	]	};+    key	<AE06> {	[      0x010004dd,	0x010004dc,    6,       6	]	};+    key	<AE07> {	[      0x010004e7,	0x010004e6,    7,       7	]	};+    key	<AE08> {	[      0x010004f5,	0x010004f4,    8,       8	]	};+    key	<AE09> {	[      0x010004e5,	0x010004e4,    9,       9	]	};+    key	<AE10> {	[      0x010004df,	0x010004de,    0,       0	]	};++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "cv_latin" {+    include "us(alt-intl)"++    name[Group1]= "Chuvash (Latin)";++    key.type[group1]="FOUR_LEVEL";++    key        <AD01> {	[	  q,	Q,    0x01000161,       0x01000160 ] };+    key        <AD02> {	[	  w,	W,    udiaeresis,       Udiaeresis ] };+    key        <AD03> { [         e,	E,    0x01000115,	0x01000114 ] };+    key        <AD07> {	[	  u,	U,    udiaeresis,       Udiaeresis ] };+    key        <AD08> {	[	  i,	I,    0x0100012d,       0x0100012c ] };+    key        <AD09> {	[	  o,	O,    odiaeresis,       Odiaeresis ] };+    key        <AC01> { [	  a,    A,        abreve,           Abreve ] };+    key        <AC02> { [	  s,    S,      scedilla,         Scedilla ] };+    key        <AC05> { [	  g,    G,        gbreve,           Gbreve ] };+    key        <AC07> { [	  j,    J,    0x01000131,       0x01000130 ] };+    key        <AB03> { [         c,    C,      ccedilla,         Ccedilla ] };++    include "level3(ralt_switch)"++};++// Komi language layout+// based on+// russian standard keyboard+// Vlad Shakhov <lumpen.intellectual@gmail.com>+// Last Changes 2007/10/23 by Vlad Shakhov <lumpen.intellectual@gmail.com>++partial alphanumeric_keys +xkb_symbols "kom" {++    include "ru(winkeys)"++    name[Group1]= "Komi";++    key.type[group1]="FOUR_LEVEL_ALPHABETIC";++// cyrilllic o with diaeresis +    key	<AC07> { [ 	Cyrillic_o,		Cyrillic_O,		+			U04E7,  		U04E6		] };+    +// hard I as additional key for soft Cyrillic_I +    key <AB05> { [      Cyrillic_i,		Cyrillic_I,+			Ukrainian_i,     	Ukrainian_I     ] };++    include "level3(ralt_switch)"+};++// Yakut language layout+// 2008/04/23 Yakov Aleksandrov <bertjickty@yandex.ru>+// 2008/04/23 Anatoliy Zhozhikov <jav@sitc.ru>+// 2008/04/23 Aleksandr Varlamov+partial alphanumeric_keys+xkb_symbols "sah" {++    include "ru(winkeys)"++    name[Group1]= "Yakut";++    key.type[group1]="FOUR_LEVEL_ALPHABETIC";++    key <TLDE> { [	Cyrillic_io,		Cyrillic_IO,+    			U04EB,			U04EA			] };+    key <AD01> { [	Cyrillic_shorti,	Cyrillic_SHORTI,+			U048B,			U048A			] };+    key <AD03> { [	Cyrillic_u,		Cyrillic_U,+			Cyrillic_u_straight,	Cyrillic_U_straight	] };+    key <AD04> { [	Cyrillic_ka,		Cyrillic_KA,+    			U04C4,			U04C3			] };+    key <AD06> { [	Cyrillic_en,		Cyrillic_EN,+			U04A5,			U04A4			] };+    key <AD07> { [	Cyrillic_ghe,		Cyrillic_GHE,+			U0495,			U0494			] };+    key <AD10> { [	Cyrillic_ze,		Cyrillic_ZE,+    			U04E1,			U04E0			] };+    key <AD11> { [	Cyrillic_ha,		Cyrillic_HA,+			Cyrillic_shha,		Cyrillic_SHHA		] };+    key <AC07> { [	Cyrillic_o,		Cyrillic_O,+			Cyrillic_o_bar,		Cyrillic_O_bar		] };+    key <AC10> { [	Cyrillic_zhe,		Cyrillic_ZHE,+    			U0461,			U0460			] };+    key <AB02> { [	Cyrillic_che,		Cyrillic_CHE,+    			Cyrillic_u_macron,	Cyrillic_U_macron	] };+    key <AB04> { [	Cyrillic_em,		Cyrillic_EM,+    			U04C8,			U04C7			] };+    key <AB05> { [	Cyrillic_i,		Cyrillic_I,+			Cyrillic_i_macron,	Cyrillic_I_macron	] };++    include "level3(ralt_switch)"+};+++//Kalmyk language layout+//based on the Kalmyk language layout: http://soft.oyrat.org/+//Nikolay Korneev <halmg@oyrat.org>+//Toli Miron <mirontoli@gmail.com>+        +partial alphanumeric_keys+xkb_symbols "xal" {+    include "ru(winkeys)"++    name[Group1]= "Kalmyk";++    key.type[group1]="FOUR_LEVEL";++    key <AE01> {        [                     question,                  exclam,               1      ]       };+    key <AE02> {        [      	            numerosign,                quotedbl,               2      ]       };+    key <AE03> {        [          Cyrillic_u_straight,     Cyrillic_U_straight,               3      ]       };+    key <AE04> {        [               Cyrillic_schwa,          Cyrillic_SCHWA,               4      ]       }; +    key <AE05> {        [                     asterisk,                 percent,               5      ]       };+    key <AE06> {        [        Cyrillic_en_descender,   Cyrillic_EN_descender,               6      ]       };+    key <AE07> {        [               Cyrillic_o_bar,          Cyrillic_O_bar,               7      ]       }; +    key <AE08> {        [                Cyrillic_shha,           Cyrillic_SHHA,               8      ]       }; +    key <AE09> {        [       Cyrillic_zhe_descender,  Cyrillic_ZHE_descender,               9      ]       };+    key <AE10> {        [                    semicolon,                   colon,               0      ]       };++    key <TLDE> {        [                    parenleft,               parenright, Cyrillic_io, Cyrillic_IO    ]       };++    key <AD02> {        [                 Cyrillic_tse,             Cyrillic_TSE,         dollar      ]       };+    key <AD03> {        [                   Cyrillic_u,               Cyrillic_U,       EuroSign      ]       }; +    key <AD04> {        [                  Cyrillic_ka,              Cyrillic_KA,     registered      ]       }; +    key <AD05> {        [                  Cyrillic_ie,              Cyrillic_IE,      trademark      ]       }; +    key <AD11> {        [                  Cyrillic_ha,              Cyrillic_HA,    bracketleft      ]       }; +    key <AD12> {        [            Cyrillic_hardsign,        Cyrillic_HARDSIGN,   bracketright      ]       };+    key <AC11> {        [                   Cyrillic_e,               Cyrillic_E,     apostrophe      ]       };+    key <AB03> {        [                  Cyrillic_es,              Cyrillic_ES,      copyright      ]       }; +    key <AB08> {        [                  Cyrillic_be,              Cyrillic_BE,           less      ]       };+    key <AB09> {        [                  Cyrillic_yu,              Cyrillic_YU,        greater      ]       };++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "dos" {++    include "ru(common)"++    name[Group1]= "Russian (DOS)";++    key        <TLDE> {        [   parenright,  parenleft   ] };+    key        <AE04> {        [   4,           currency    ] };+    key        <AE09> {        [   9,           question    ] };+    key        <AE10> {        [   0,           percent     ] };++    key        <AB10> {        [   Cyrillic_io, Cyrillic_IO ] };+};++partial alphanumeric_keys+xkb_symbols "bak" {+    include "ru(winkeys)"++    name[Group1]= "Bashkirian";+    key.type[group1]="FOUR_LEVEL";++    key <TLDE> { [     0x010004d9,       0x010004d8,   Cyrillic_io,   Cyrillic_IO      ] };+    key <AE01> { [     exclam,           quotedbl,      1,       1       ] };+    key <AE02> { [     0x010004e9,       0x010004e8,    2,       2 ] };+    key <AE03> { [     0x010004a1,       0x010004a0,    3,       3 ] };+    key <AE04> { [     0x01000493,       0x01000492,    4,       4 ] };+    key <AE05> { [     0x010004ab,       0x010004aa,    5,       5 ] };+    key <AE06> { [     colon,            semicolon,     6,       6 ] };+    key <AE07> { [     0x01000499,       0x01000498,    7,       7 ] };+    key <AE08> { [     0x010004bb,       0x010004ba,    8,       8 ] };+    key <AE09> { [     question,         parenleft,     9,       9 ] };+    key <AE10> { [     numerosign,       parenright,    0,       0 ] };+    key <AE11> { [     minus,            percent,       minus,    underscore     ]};+    key <AE12> { [     0x010004af, 0x010004ae,    equal,  plus    ]};+    key <BKSL> { [     0x010004a3, 0x010004a2,    backslash,        slash     ]};	+	+    include "level3(ralt_switch)"+};++// Serbian charecters added as third level symbols to Russian keyboard layout.++partial alphanumeric_keys+xkb_symbols "srp" {+    include "ru(common)"+    include "level3(ralt_switch)"++    name[Group1]= "Serbian (Russia)";++    key <AE03> { [ 3, numerosign ] };+    key <AE04> { [ 4, semicolon ] };+    key <AE05> { [ 5, percent ] };+    key <AE06> { [ 6, colon ] };+    key <AE07> { [ 7, question ] };+    key <AE08> { [ 8, asterisk ] };+    key <AB10> { [ period, comma ] };+    key <BKSL> { [ backslash, slash ] };+    key	<AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, U458, U408 ] };+    key	<AD06> { [ Cyrillic_en, Cyrillic_EN, U45A, U40A ] };+    key	<AC08> { [ Cyrillic_el, Cyrillic_EL, U459, U409 ] };+    key	<AC09> { [ Cyrillic_de, Cyrillic_DE, U45F, U40F ] };+    key	<AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, U452, U402 ] };+    key	<AB02> { [ Cyrillic_che, Cyrillic_CHE, U45B, U40B ] };+};++// Mari language layout+// based on Russian standard keyboard+// http://www.marlamuter.ru/+partial alphanumeric_keys+xkb_symbols "chm" {+    include "ru(common)"+    +    name[Group1]= "Mari";++    key.type[group1]="FOUR_LEVEL_ALPHABETIC";+    key <AC04> { [      Cyrillic_a,     Cyrillic_A,    U04D3,       U04D2     ] };+    key <AD03> { [      Cyrillic_u, Cyrillic_U,    U04F1,       U04F0     ] };+    key <AC02> { [      Cyrillic_ui,    Cyrillic_UI,   U04F9,       U04F8     ] };+    key <AD06> { [      Cyrillic_n, Cyrillic_N,    U04A5,       U04A4     ] };+    key <AC11> { [      Cyrillic_e, Cyrillic_E,    U04E9,       U04E8     ] };+    key <AC10> { [      Cyrillic_zh,    Cyrillic_ZH,   U04EB,       U04EA     ] };+    key <AC01> { [      Cyrillic_f, Cyrillic_F,     UF537,      UF536     ] };++    include "level3(ralt_switch)"+};++// EXTRAS:++// Church Slavonic language layout+// based on+// russian standard keyboard+// Aleksandr Andreev and Yuri Shardt +// Last Changes 2010/08/01. Contact <aleksandr.andreev@gmail.com>++partial alphanumeric_keys+xkb_symbols "chu"+{+	    name[Group1]= "Church Slavonic";+	    key <TLDE> { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign+	    key <AE01> { [ U0461, U0460, U047D, U047C] }; // ѡ Ѡ ѽ Ѽ+	    key <AE02> { [ U0454, U0404, U0465, U0464] }; // є Є ѥ Ѥ+	    key <AE03> { [ U046F, U046E, U0469, U0468] }; // ѯ Ѯ ѩ Ѩ+	    key <AE04> { [ U0471, U0470, U046D, U046C] }; // ѱ Ѱ ѭ Ѭ+	    key <AE05> { [ U0473, U0472, UA657, UA656] }; // ѳ Ѳ iotified A+	    key <AE06> { [ U0475, U0474, U0477, U0476] }; // ѵ Ѵ ѷ Ѷ+	    key <AE07> { [ U047B, U047A, UA64D, UA64C] }; // ѻ Ѻ ꙍ Ꙍ+	    key <AE08> { [ U047F, U047E, U046B, U046A] }; // ѿ Ѿ ѫ Ѫ+	    key <AE09> { [ U0455, U0405, parenleft, U002A ] }; // ѕ Ѕ ( *+	    key <AE10> { [ Cyrillic_u,	Cyrillic_U, parenright, U0488 ] }; // у У ) NB: for diagraph Ouk, use Cyrillic_o + Cyrillic_u+	    key <AE11> { [ U0483, U0486, U0487, U005F] }; // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore)+	    key <AE12> { [ U0301, U0300, U0484, UA67E] }; //  а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka)+	    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI, U0456	]	};+	    key	<AD02> {	[    Cyrillic_tse,    Cyrillic_TSE, U2DF0	]	};+	    key	<AD03> {	[   UA64B,  UA64A, U2DF9  	]	}; // Cyrillic monograph Uk (not U)!+	    key	<AD04> {	[     Cyrillic_ka,     Cyrillic_KA, U2DE6	]	};+	    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE, U2DF7	]	};+	    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN, U2DE9	]	};+	    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE, U2DE2	]	};+	    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA, U2DF2	]	};+	    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA, U2DF3	]	};+	    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE, U2DE5	]	};+	    key	<AD11> {	[     Cyrillic_ha,     Cyrillic_HA, U2DEF	]	};+	    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN, UA67D	]	}; // Payerok+	    key <BKSL> { [backslash, slash, colon, question] }; // \ / : ? (note, for Slavonic question use semicolon+	    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF	]	};+	    key	<AC02> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};+	    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE, U2DE1	]	};+	    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A, U2DF6	]	};+	    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE, U2DEB	]	};+	    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER, U2DEC	]	};+	    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O, U2DEA	]	};+	    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL, U2DE7	]	};+	    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE, U2DE3	]	};+	    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE, U2DE4	]	};+	    key	<AC11> {	[     U0463,	U0462, U2DFA	]	}; // Yat+	    key	<AB01> {	[    U0467, U0466, U2DFD 	]	}; // Small Yus+	    key	<AB02> {	[    Cyrillic_che,    Cyrillic_CHE, U2DF1	]	};+	    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES, U2DED	]	};+	    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM, U2DE8	]	};+	    key	<AB05> {	[      Cyrillic_i,	Cyrillic_I	]	};+	    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE, U2DEE	]	};+	    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};+	    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE, U2DE0	]	};+	    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU, U2DFB	]	};+	    key <AB10> {        [          period,    comma, semicolon, exclam      ]       };+};+++// RUU (Russian-Ukrainian United keyboard layout).+// Modified Russian standart keyboard with third level contains Ukrainian+// and Belorusian alphabetic letters and commonly used Unicode symbols.+// Description http://wiki.opennet.ru/RUU [russian]+// Vasyĺ V. Vercynśkyj <fuckel@ukr.net>+// Last Changes 2011/05/11+//+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓+// │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫       ┃+// │ ’  ́ │ 1 ÷ │ 2 ¤ │ 3 § │ 4 $ │ 5 ° │ 6 < │ 7 > │ 8 • │ 9 [ │ 0 ] │ - — │ = ≠ ┃Backspace┃+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫+// ┃       ┃ Й   │ Ц   │ У Ў │ К   │ Е Ё │ Н   │ Г Ґ │ Ш   │ Щ   │ З   │ Х   │ Ъ Ї ┃ Enter ┃+// ┃ Tab ↹ ┃ й   │ ц   │ у ў │ к ® │ е ё │ н   │ г ґ │ ш   │ щ   │ з   │ х   │ ъ ї ┃   ⏎   ┃+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃+// ┃ Caps   ┃ Ф   │ Ы І │ В   │ А   │ П   │ Р   │ О   │ Л   │ Д   │ Ж   │ Э Є │ | ¦ ┃      ┃+// ┃ Lock ⇬ ┃ ф   │ ы і │ в   │ а   │ п   │ р   │ о   │ л   │ д   │ ж   │ э є │ / \ ┃      ┃+// ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫+// ┃          ┃ Я   │ Ч   │ С   │ М   │ И   │ Т   │ Ь   │ Б „ │ Ю “ │ , … ┃                ┃+// ┃  Shift ⇧ ┃ я   │ ч   │ с © │ м   │ и   │ т ™ │ ь µ │ б « │ ю » │ . / ┃     Shift ⇧    ┃+// ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛+// ┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃+// ┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛++++partial alphanumeric_keys+xkb_symbols "ruu" {+    include "ru(common)"++    name[Group1]= "Russian (with Ukrainian-Belorussian layout)";++    key <TLDE> {    [	U2019,		apostrophe,	U0301,		asciitilde	]	};	// Apostrophe and Stress symbol+    key <AE01> {    [	1,		exclam,		U00F7,		U2248		]	};	// Division Sign and Almost Equal To+    key <AE02> {    [	2,		quotedbl,	currency,	infinity	]	};+    key <AE03> {    [	3,		numerosign,	U00A7,		U20B4		]	};	// Paragraph and Hryvnia sign+    key <AE04> {    [	4,		semicolon,	dollar,		EuroSign	]	};+    key <AE05> {    [	5,		percent,	degree,		U2030		]	};	// Per Mille Sign+    key <AE06> {    [	6,		colon,		less,		U2264		]	};	// Less-Than Or Equal To+    key <AE07> {    [	7,		question,	greater,	U2265		]	};	// Greater-Than Or Equal To+    key <AE08> {    [	8,		asterisk,	enfilledcircbullet, U00D7	]	};	// Multiplication Sign+    key <AE09> {    [	9,		parenleft,	bracketleft,	braceleft	]	};+    key <AE10> {    [	0,		parenright,	bracketright,	braceright	]	};+    key <AE11> {    [	minus,		underscore,	emdash,		endash		]	};+    key <AE12> {    [	equal,		plus,		notequal,	plusminus	]	};+    key <AD03> {    [	Cyrillic_u,	Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ]	};+    key <AD04> {    [	Cyrillic_ka,	Cyrillic_KA,	registered			]	};	// Registered tm+    key <AD05> {    [	Cyrillic_ie,	Cyrillic_IE,	Cyrillic_io,	Cyrillic_IO	]	};+    key <AD07> {    [Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };+    key <AD10> {    [	Cyrillic_ze,	Cyrillic_ZE,	U00B6				]	};	// Pilcrow Sign+    key <AD12> {    [Cyrillic_hardsign,	Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI	]	};+    key <AC02> {    [	Cyrillic_yeru,	Cyrillic_YERU,	Ukrainian_i,  Ukrainian_I	]	};+    key <AC11> {    [	Cyrillic_e,	Cyrillic_E,	Ukrainian_ie,Ukrainian_IE	]	};+    key <BKSL> {    [	slash,		bar,		backslash,	U00A6		]	};	// Broken Bar+    key <AB03> {    [	Cyrillic_es,	Cyrillic_ES,	copyright			]	};+    key <AB06> {    [	Cyrillic_te,	Cyrillic_TE,	trademark			]	};+    key <AB07> {    [	Cyrillic_softsign, Cyrillic_SOFTSIGN, U00B5			]	};	// Micro Sign+    key <AB08> {    [	Cyrillic_be,	Cyrillic_BE,	guillemotleft,	doublelowquotemark ]	};+    key <AB09> {    [	Cyrillic_yu,	Cyrillic_YU,	guillemotright,	leftdoublequotemark ]	};+    key <AB10> {    [	period,		comma,		slash,		ellipsis	]	};++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+	xkb_symbols "sun_type6" {+	include "sun_vndr/ru(sun_type6)"+};++// Apple layout+partial alphanumeric_keys+xkb_symbols "mac" {+include "ru(common)"++    name[Group1]= "Russian (Macintosh)";++    key <LSGT> {	[	     less,	   greater	]	};+    key <AE02> {	[		2,	  quotedbl	]	};+    key <AE03> {        [               3,      numerosign     	]       };+    key <AE04> {        [               4,         percent     	]       };+    key <AE05> {        [               5,	     colon     	]       };+    key <AE06> {        [               6,           comma     	]       };+    key <AE07> {        [               7,	    period	]       };+    key <AE08> {        [               8,       semicolon     	]       };+    key <TLDE> {	[    bracketright,     bracketleft	]	};+    key <BKSL> {        [       Cyrillic_io,   Cyrillic_IO      ]       };+};
+ data/symbols/rupeesign view
@@ -0,0 +1,5 @@+// keyboards having the RupeeSign on the 4 key+partial+xkb_symbols "4" {+    key <AE04>	{ [  NoSymbol,   NoSymbol,   U20B9 ]	};+};
+ data/symbols/shift view
@@ -0,0 +1,84 @@+partial modifier_keys +xkb_symbols "breaks_caps" {+    key <LFSH> {+	type = "ALPHABETIC",+    	actions [Group1] = [+	    SetMods(modifiers=Shift),+	    SetMods(modifiers=Shift+Lock,clearLocks)+	]+    };+    key <RTSH> {+	type = "ALPHABETIC",+	actions [Group1] = [+	    SetMods(modifiers=Shift),+	    SetMods(modifiers=Shift+Lock,clearLocks)+	]+    };+};++// When pressed together with another Shift key, set/release Lock.+partial modifier_keys+xkb_symbols "lshift_both_capslock" {+  key <LFSH> {+    type[Group1]="TWO_LEVEL",+    symbols[Group1] = [ Shift_L,                       Caps_Lock                ]+  };+};+// When pressed together with another Shift key, set or unset Lock.+partial modifier_keys+xkb_symbols "rshift_both_capslock" {+  key <RTSH> {+    type[Group1]="TWO_LEVEL",+    symbols[Group1] = [ Shift_R,                       Caps_Lock                ]+  };+};+partial modifier_keys+xkb_symbols "both_capslock" {+  include "shift(lshift_both_capslock)"+  include "shift(rshift_both_capslock)"+};++// Release Lock when pressed alone and set Lock when pressed with another Shift key.+partial modifier_keys+xkb_symbols "lshift_both_capslock_cancel" {+  key <LFSH> {+    type[Group1]="ALPHABETIC",+    symbols[Group1] = [ Shift_L,                       Caps_Lock                ]+  };+};+// Release Lock when pressed alone and set Lock when pressed with another Shift key.+partial modifier_keys+xkb_symbols "rshift_both_capslock_cancel" {+  key <RTSH> {+    type[Group1]="ALPHABETIC",+    symbols[Group1] = [ Shift_R,                       Caps_Lock                ]+  };+};+partial modifier_keys+xkb_symbols "both_capslock_cancel" {+  include "shift(lshift_both_capslock_cancel)"+  include "shift(rshift_both_capslock_cancel)"+};+++// When pressed together with another Shift key, lock/unlock Shift.+partial modifier_keys+xkb_symbols "lshift_both_shiftlock" {+  key <LFSH> {+    type[Group1]="TWO_LEVEL",+    symbols[Group1] = [ Shift_L,                       Shift_Lock ]+  };+};+// When pressed together with another Shift key, lock/unlock Shift.+partial modifier_keys+xkb_symbols "rshift_both_shiftlock" {+  key <RTSH> {+    type[Group1]="TWO_LEVEL",+    symbols[Group1] = [ Shift_R,                       Shift_Lock ]+  };+};+partial modifier_keys+xkb_symbols "both_shiftlock" {+  include "shift(lshift_both_shiftlock)"+  include "shift(rshift_both_shiftlock)"+};
+ data/symbols/srvr_ctrl view
@@ -0,0 +1,125 @@+// Actions which control the server's behavior++partial keypad_keys function_keys+xkb_symbols "xfree86" {+    include "srvr_ctrl(stdkeypad)"+    include "srvr_ctrl(fkey2vt)"+};++partial keypad_keys +xkb_symbols "stdkeypad" {++// Ungrab cancels server/keyboard/pointer grabs+    key <KPDV> {+	type="CTRL+ALT",+	symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]+    };++// ClsGrb kills whichever client has a grab in effect+    key <KPMU> {+	type="CTRL+ALT",+	symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]+    };++// -VMode switches to the previous video mode+    key <KPSU> {+	type="CTRL+ALT",+	symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]+    };++// +VMode switches to the next video mode+    key <KPAD> {+	type="CTRL+ALT",+	symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode]+    };++};++partial function_keys +xkb_symbols "fkey2vt" {++    key <FK01> {+	type="CTRL+ALT",+	symbols[Group1]= [ F1, F1, F1, F1, XF86_Switch_VT_1 ]+    };++    key <FK02> {+	type="CTRL+ALT",+	symbols[Group1]= [ F2, F2, F2, F2, XF86_Switch_VT_2 ]+    };++    key <FK03> {+	type="CTRL+ALT",+	symbols[Group1]= [ F3, F3, F3, F3, XF86_Switch_VT_3 ]+    };++    key <FK04> {+	type="CTRL+ALT",+	symbols[Group1]= [ F4, F4, F4, F4, XF86_Switch_VT_4 ]+    };++    key <FK05> {+	type="CTRL+ALT",+	symbols[Group1]= [ F5, F5, F5, F5, XF86_Switch_VT_5 ]+    };++    key <FK06> {+	type="CTRL+ALT",+	symbols[Group1]= [ F6, F6, F6, F6, XF86_Switch_VT_6 ]+    };++    key <FK07> {+	type="CTRL+ALT",+	symbols[Group1]= [ F7, F7, F7, F7, XF86_Switch_VT_7 ]+    };++    key <FK08> {+	type="CTRL+ALT",+	symbols[Group1]= [ F8, F8, F8, F8, XF86_Switch_VT_8 ]+    };++    key <FK09> {+	type="CTRL+ALT",+	symbols[Group1]= [ F9, F9, F9, F9, XF86_Switch_VT_9 ]+    };++    key <FK10> {+	type="CTRL+ALT",+	symbols[Group1]= [ F10, F10, F10, F10, XF86_Switch_VT_10 ]+    };++    key <FK11> {+	type="CTRL+ALT",+	symbols[Group1]= [ F11, F11, F11, F11, XF86_Switch_VT_11 ]+    };++    key <FK12> {+	type="CTRL+ALT",+	symbols[Group1]= [ F12, F12, F12, F12, XF86_Switch_VT_12 ]+    };++};++partial function_keys keypad_keys+xkb_symbols "no_srvr_keys" {++    key.type="TWO_LEVEL";++    key <FK01> { [ F1, F1 ]	};+    key <FK02> { [ F2, F2 ]	};+    key <FK03> { [ F3, F3 ]	};+    key <FK04> { [ F4, F4 ]	};+    key <FK05> { [ F5, F5 ]	};+    key <FK06> { [ F6, F6 ]	};+    key <FK07> { [ F7, F7 ]	};+    key <FK08> { [ F8, F8 ]	};+    key <FK09> { [ F9, F9 ]	};+    key <FK10> { [ F10, F10 ]	};+    key <FK11> { [ F11, F11 ]	};+    key <FK12> { [ F12, F12 ]	};++    key <KPDV> { [ KP_Divide,	KP_Divide	] };+    key <KPMU> { [ KP_Multiply,	KP_Multiply	] };+    key <KPSU> { [ KP_Subtract,	KP_Subtract	] };+    key <KPAD> { [ KP_Add,	KP_Add		] };+};
+ data/symbols/terminate view
@@ -0,0 +1,7 @@+partial default modifier_keys+xkb_symbols "ctrl_alt_bksp" {+    key <BKSP> {+        type="CTRL+ALT",+        symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Terminate_Server ]+    };+};
+ data/symbols/us view
@@ -0,0 +1,1541 @@+default+partial alphanumeric_keys modifier_keys +xkb_symbols "basic" {++    name[Group1]= "English (US)";++    // Alphanumeric section+    key <TLDE> {	[     grave,	asciitilde	]	};+    key <AE01> {	[	  1,	exclam 		]	};+    key <AE02> {	[	  2,	at		]	};+    key <AE03> {	[	  3,	numbersign	]	};+    key <AE04> {	[	  4,	dollar		]	};+    key <AE05> {	[	  5,	percent		]	};+    key <AE06> {        [         { H, E, L, L, O },    asciicircum     ]       };+    key <AE07> {        [         { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G },  ampersand       ]       };+    key <AE08> {	[	  8,	asterisk	]	};+    key <AE09> {	[	  9,	parenleft	]	};+    key <AE10> {	[	  0,	parenright	]	};+    key <AE11> {	[     minus,	underscore	]	};+    key <AE12> {	[     equal,	plus		]	};++    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> {	[ bracketleft,	braceleft	]	};+    key <AD12> {	[ bracketright,	braceright	]	};++    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,	colon		]	};+    key <AC11> {	[ apostrophe,	quotedbl	]	};++    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 <BKSL> {	[ backslash,         bar	]	};+    // End alphanumeric section+};++partial alphanumeric_keys+xkb_symbols "euro" {++    name[Group1]= "English (US, with euro on 5)";++    include "us(basic)"++    include "eurosign(5)"++    include "level3(ralt_switch)"+};+++partial alphanumeric_keys+xkb_symbols "intl" {++    name[Group1]= "English (US, international with dead keys)";++    include "us(basic)"++    // Alphanumeric section+    key <TLDE> { [dead_grave, dead_tilde,         grave,       asciitilde ] };+    key <AE01> { [	   1,     exclam,    exclamdown,      onesuperior ] };+    key <AE02> { [	   2,         at,   twosuperior, dead_doubleacute ] };+    key <AE03> { [	   3, numbersign, threesuperior,      dead_macron ] };+    key <AE04> { [	   4,     dollar,      currency,         sterling ] };+    key <AE05> { [	   5,    percent,      EuroSign,     dead_cedilla ] };+    key <AE06> { [    6, dead_circumflex,    onequarter,      asciicircum ] };+    key <AE07> { [	   7,  ampersand,       onehalf,	dead_horn ] };+    key <AE08> { [	   8,   asterisk, threequarters,      dead_ogonek ] };+    key <AE09> { [	   9,  parenleft, leftsinglequotemark, dead_breve ] };+    key <AE10> { [	   0, parenright, rightsinglequotemark, dead_abovering ] };+    key <AE11> { [     minus, underscore,           yen,    dead_belowdot ] };+    key <AE12> { [     equal,       plus,      multiply,         division ] };++    key <AD01> { [	   q,          Q,    adiaeresis,       Adiaeresis ] };+    key <AD02> { [	   w,          W,         aring,            Aring ] };+    key <AD03> { [	   e,          E,        eacute,           Eacute ] };+    key <AD04> { [	   r,          R,    registered,       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, leftdoublequotemark ] };+    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };++    key <AC01> { [	   a,          A,        aacute,           Aacute ] };+    key <AC02> { [	   s,          S,        ssharp,          section ] };+    key <AC03> { [	   d,          D,           eth,              ETH ] };+    key <AC04> { [	   f,          F,             f,                F ] };+    key <AC05> { [	   g,          G,             g,                G ] };+    key <AC06> { [	   h,          H,             h,                H ] };+    key <AC07> { [	   j,          J,             j,                J ] };+    key <AC08> { [	   k,          K,            oe,               OE ] };++    key <AC09> { [	   l,          L,        oslash,         Ooblique ] };+    key <AC10> { [ semicolon,      colon,     paragraph,           degree ] };+    key <AC11> { [dead_acute, dead_diaeresis, apostrophe,        quotedbl ] };++    key <AB01> { [	   z,          Z,            ae,               AE ] };+    key <AB02> { [	   x,          X,             x,                X ] };+    key <AB03> { [	   c,          C,     copyright,             cent ] };+    key <AB04> { [	   v,          V,             v,                V ] };+    key <AB05> { [	   b,          B,             b,                B ] };+    key <AB06> { [	   n,          N,        ntilde,           Ntilde ] };+    key <AB07> { [	   m,          M,            mu,               mu ] };+    key <AB08> { [     comma,       less,      ccedilla,         Ccedilla ] };+    key <AB09> { [    period,    greater, dead_abovedot,       dead_caron ] };+    key <AB10> { [     slash,   question,  questiondown,        dead_hook ] };+    key <BKSL> { [ backslash,        bar,       notsign,        brokenbar ] };++    include "level3(ralt_switch)"+};++// Based on symbols/us_intl keyboard map:+// Dead-keys definition for a very simple US/ASCII layout.+// by Conectiva (http://www.conectiva.com.br)+// modified by Ricardo Y. Igarashi (iga@that.com.br)++// Added the following deadkeys, to make it truly international:+//+// dead_macron: on AltGr-minus+// dead_breve: on AltGr-parenleft+// dead_abovedot: on AltGr-period+// dead_abovering: on AltGr-0+// dead_doubleacute: on AltGr-equal (as quotedbl is already used)+// dead_caron: on AltGr-less (AltGr-shift-comma)+// dead_cedilla: on AltGr-comma+// dead_ogonek: on AltGr-semicolon+// dead_belowdot: on AltGr-underscore (AltGr-shift-minus)+// dead_hook: on AltGr-question+// dead_horn: on AltGr-plus (AltGr-shift-equal)+// dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)+//+// those were already there:+// dead_grave+// dead_acute+// dead_circumflex+// dead_tilde+// dead_diaeresis++partial alphanumeric_keys+xkb_symbols "alt-intl" {++  name[Group1]= "English (US, alternative international)";++  include "us"++  key <TLDE> { [ dead_grave, dead_tilde,    grave,	      asciitilde    ] };+  key <AE05> { [          5, percent,	    EuroSign			    ] };+  key <AE06> { [	  6, dead_circumflex, asciicircum,    asciicircum   ] };+  key <AE09> { [	  9, parenleft, leftsinglequotemark,  dead_breve ] };+  key <AE10> { [	  0, parenright, rightsinglequotemark, dead_abovering ] };+  key <AE11> { [      minus, underscore,    dead_macron,      dead_belowdot ] };+  key <AE12> { [      equal, plus,	    dead_doubleacute, dead_horn	    ] };++  key <AD03> { [          e, E,		     EuroSign,         cent	    ] };++  key <AC10> { [  semicolon, colon,	     dead_ogonek,   dead_diaeresis  ] };+  key <AC11> { [ dead_acute, dead_diaeresis, apostrophe,    quotedbl	    ] };++  key <AB08> { [      comma, less,	     dead_cedilla,  dead_caron	    ] };+  key <AB09> { [     period, greater,	     dead_abovedot, dead_circumflex ] };+  key <AB10> { [      slash, question,	     dead_hook,	    dead_hook	    ] };++  include "level3(ralt_switch)"+};++// based on a keyboard map from an 'xkb/symbols/dk' file++partial alphanumeric_keys+xkb_symbols "dvorak" {++    name[Group1]= "English (Dvorak)";++    // Alphanumeric section++    key <TLDE> { [       grave,	asciitilde, dead_grave, dead_tilde	] };++    key <AE01> { [	    1,	exclam 		]	};+    key <AE02> { [	    2,	at		]	};+    key <AE03> { [	    3,	numbersign	]	};+    key <AE04> { [	    4,	dollar		]	};+    key <AE05> { [	    5,	percent		]	};+    key <AE06> { [	    6,	asciicircum, dead_circumflex, dead_circumflex ]	};+    key <AE07> { [	    7,	ampersand	]	};+    key <AE08> { [	    8,	asterisk	]	};+    key <AE09> { [	    9,	parenleft,  dead_grave]	};+    key <AE10> { [	    0,	parenright	]	};+    key <AE11> { [ bracketleft,	braceleft	]	};+    key <AE12> { [ bracketright, braceright,  dead_tilde] };++    key <AD01> { [  apostrophe,	quotedbl, dead_acute, dead_diaeresis	] };+    key <AD02> { [	comma,	less,   dead_cedilla, dead_caron	] };+    key <AD03> { [      period,	greater, dead_abovedot, periodcentered	] };+    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 <AD12> { [	equal,	plus		]	};++    key <AC01> { [	    a,	A 		]	};+    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,	underscore	]	};++    key <AB01> { [   semicolon,	colon, dead_ogonek, dead_doubleacute ] };+    key <AB02> { [	    q,	Q		]	};+    key <AB03> { [	    j,	J		]	};+    key <AB04> { [	    k,	K		]	};+    key <AB05> { [	    x,	X		]	};+    key <AB06> { [	    b,	B		]	};+    key <AB07> { [	    m,	M		]	};+    key <AB08> { [	    w,	W		]	};+    key <AB09> { [	    v,	V		]	};+    key <AB10> { [	    z,	Z		]	};++    key <BKSL> { [  backslash,  bar             ]       };+};++// Dvorak international with dead keys+// Olivier Mehani (shtrom-xorg@ssji.net)+// Reproduce the per-key mapping of us(intl) for the dvorak layout+// aka "I just swapped my keys over"+partial alphanumeric_keys+xkb_symbols "dvorak-intl" {++    name[Group1]= "English (Dvorak, international with dead keys)";++    include "us(dvorak)"++    key <TLDE> { [dead_grave, dead_tilde,         grave,       asciitilde ] };++    key <AE01> { [	   1,     exclam,    exclamdown,      onesuperior ] };+    key <AE02> { [	   2,         at,   twosuperior, dead_doubleacute ] };+    key <AE03> { [	   3, numbersign, threesuperior,      dead_macron ] };+    key <AE04> { [	   4,     dollar,      currency,         sterling ] };+    key <AE05> { [	   5,    percent,      EuroSign,     dead_cedilla ] };+    key <AE06> { [    6, dead_circumflex,    onequarter,      asciicircum ] };+    key <AE07> { [	   7,  ampersand,       onehalf,	dead_horn ] };+    key <AE08> { [	   8,   asterisk, threequarters,      dead_ogonek ] };+    key <AE09> { [	   9,  parenleft, leftsinglequotemark, dead_breve ] };+    key <AE10> { [	   0, parenright, rightsinglequotemark, dead_abovering ] };+    key <AE11> { [ bracketleft,  braceleft,  guillemotleft, leftdoublequotemark ] };+    key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };++    key <AD01> { [dead_acute, dead_diaeresis, apostrophe,        quotedbl ] };+    key <AD02> { [     comma,       less,      ccedilla,         Ccedilla ] };+    key <AD03> { [    period,    greater, dead_abovedot,       dead_caron ] };+    key <AD04> { [	   p,          P,    odiaeresis,       Odiaeresis ] };+    key <AD05> { [	   y,          Y,    udiaeresis,       Udiaeresis ] };+    // key <AD06> { [	   f,	F		]	};+    // key <AD07> { [	   g,	G		]	};+    key <AD08> { [	   c,          C,     copyright,             cent ] };+    key <AD09> { [	   r,          R,    registered,       registered ] };+    key <AD10> { [	   l,          L,        oslash,         Ooblique ] };+    key <AD11> { [     slash,   question,  questiondown,        dead_hook ] };+    // key <AD12> { [     equal,       plus,      multiply,         division ] };++    key <AC01> { [	   a,          A,        aacute,           Aacute ] };+    key <AC02> { [	   o,          O,        oacute,           Oacute ] };+    key <AC03> { [	   e,          E,        eacute,           Eacute ] };+    key <AC04> { [	   u,          U,        uacute,           Uacute ] };+    key <AC05> { [	   i,          I,        iacute,           Iacute ] };+    key <AC06> { [	   d,          D,           eth,              ETH ] };+    // key <AC07> { [	   h,	H		]	};+    key <AC08> { [	   t,          T,         thorn,            THORN ] };+    key <AC09> { [	   n,          N,        ntilde,           Ntilde ] };+    key <AC10> { [	   s,          S,        ssharp,          section ] };+    // key <AC11> { [     minus, underscore,           yen,    dead_belowdot ] };++    key <AB01> { [ semicolon,      colon,     paragraph,           degree ] };+    key <AB02> { [	   q,          Q,    adiaeresis,       Adiaeresis ] };+    // key <AB03> { [	   j,	J		]	};+    key <AB04> { [	   k,          K,            oe,               OE ] };+    // key <AB05> { [	   x,	X		]	};+    // key <AB06> { [	   b,	B		]	};+    key <AB07> { [	   m,          M,            mu,               mu ] };+    key <AB08> { [	   w,          W,         aring,            Aring ] };+    // key <AB09> { [	   v,	V		]	};+    key <AB10> { [	   z,          Z,            ae,               AE ] };++    key <BKSL> { [ backslash,        bar,       notsign,        brokenbar ] };++    include "level3(ralt_switch)"+};++// Dvorak international without dead keys+// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)+// Based on information from http://www.poupinou.org/dvorak/index.html+//+//  `   1   2   3   4   5   6   7   8   9   0   [   ]   \+//                  €+//+//      '   ,   .   p   y   f   g   c   r   l   /   =+//          ä   ê   ë   ü           ç+//+//      a   o   e   u   i   d   h   t   n   s   -+//      à   ô   é   û   î                   ß+//+//      ;   q   j   k   x   b   m   w   v   z+//      â   ö   è   ù   ï++partial alphanumeric_keys+xkb_symbols "dvorak-alt-intl" {++    name[Group1]= "English (Dvorak alternative international no dead keys)";++    include "us(dvorak)"++    key <AE04> { [         4,  dollar,    EuroSign ] };++    key <AD02> { [     comma,    less,  adiaeresis,       dead_caron ] };+    key <AD03> { [    period, greater, ecircumflex,   periodcentered	] };+    key <AD04> { [         p,       P,  ediaeresis,     dead_cedilla ] };+    key <AD05> { [         y,       Y,  udiaeresis ] };+    key <AD08> { [         c,       C,    ccedilla,    dead_abovedot ] };++    key <AC01> { [         a,       A,      agrave ] };+    key <AC02> { [         o,       O, ocircumflex ] };+    key <AC03> { [         e,       E,      eacute ] };+    key <AC04> { [         u,       U, ucircumflex ] };+    key <AC05> { [         i,       I, icircumflex ] };+    key <AC10> { [         s,       S,      ssharp ] };++    key <AB01> { [ semicolon,   colon, acircumflex ] };+    key <AB02> { [         q,       Q,  odiaeresis,      dead_ogonek ] };+    key <AB03> { [         j,       J,      egrave, dead_doubleacute ] };+    key <AB04> { [         k,       K,      ugrave ] };+    key <AB05> { [         x,       X,  idiaeresis ] };++    include "level3(ralt_switch)"+};++// Left and right handed dvorak layouts+// by sqweek <sqweek@gmail.com> 2006-01-30+// Based on the corresponding layouts in the console-tools package.+partial alphanumeric_keys+xkb_symbols "dvorak-l" {++    include "us(dvorak)"+    name[Group1]= "English (left handed Dvorak)";++    key <AE01> {	[ bracketleft,	braceleft	]	};+    key <AE02> {	[ bracketright,	braceright	]	};+    key <AE03> {	[	slash,	question	]	};+    key <AE04> {	[	    p,	P		]	};+    key <AE05> {	[	    f,	F		]	};+    key <AE06> {	[	    m,	M		]	};+    key <AE07> {	[	    l,	L		]	};+    key <AE08> {	[	    j,	J		]	};+    key <AE09> {	[	    4,	dollar		]	};+    key <AE10> {	[	    3,	numbersign	]	};+    key <AE11> {	[	    2,	at		]	};+    key <AE12> {	[	    1,	exclam 		]	};++    key <AD01> {	[   semicolon,	colon 		]	};+    key <AD02> {	[	    q,	Q		]	};+    key <AD03> {	[	    b,	B		]	};+    key <AD04> {	[	    y,	Y		]	};+    key <AD05> {	[	    u,	U		]	};+    key <AD06> {	[	    r,	R		]	};+    key <AD07> {	[	    s,	S		]	};+    key <AD08> {	[	    o,	O		]	};+    key <AD09> {	[      period,	greater		]	};+    key <AD10> {	[	    6,	asciicircum	]	};+    key <AD11> {	[	    5,	percent		]	};+    key <AD12> {	[	equal,	plus		]	};++    key <AC01> {	[	minus,	underscore	]	};+    key <AC02> {	[	    k,	K		]	};+    key <AC03> {	[	    c,	C		]	};+    key <AC04> {	[	    d,	D		]	};+    key <AC05> {	[	    t,	T		]	};+    key <AC06> {	[	    h,	H		]	};+    key <AC07> {	[	    e,	E		]	};+    key <AC08> {	[	    a,	A 		]	};+    key <AC09> {	[	    z,	Z		]	};+    key <AC10> {	[	    8,	asterisk	]	};+    key <AC11> {	[	    7,	ampersand	]	};++    key <AB01> {	[  apostrophe,	quotedbl	] 	};+    key <AB02> {	[	    x,	X		]	};+    key <AB03> {	[	    g,	G		]	};+    key <AB04> {	[	    v,	V		]	};+    key <AB05> {	[	    w,	W		]	};+    key <AB06> {	[	    n,	N		]	};+    key <AB07> {	[	    i,	I		]	};+    key <AB08> {	[	comma,	less		]	};+    key <AB09> {	[	    0,	parenright	]	};+    key <AB10> {	[	    9,	parenleft	]	};+};++partial alphanumeric_keys+xkb_symbols "dvorak-r" {+    +    include "us(dvorak)"+    name[Group1]= "English (right handed Dvorak)";++    key <AE01> {	[	    1,	exclam 		]	};+    key <AE02> {	[	    2,	at		]	};+    key <AE03> {	[	    3,	numbersign	]	};+    key <AE04> {	[	    4,	dollar		]	};+    key <AE05> {	[	    j,	J		]	};+    key <AE06> {	[	    l,	L		]	};+    key <AE07> {	[	    m,	M		]	};+    key <AE08> {	[	    f,	F		]	};+    key <AE09> {	[	    p,	P		]	};+    key <AE10> {	[	slash,	question	]	};+    key <AE11> {	[ bracketleft,	braceleft	]	};+    key <AE12> {	[ bracketright,	braceright	]	};++    key <AD01> {	[	    5,	percent		]	};+    key <AD02> {	[	    6,	asciicircum ]	};+    key <AD03> {	[	    q,	Q		]	};+    key <AD04> {	[      period,	greater		]	};+    key <AD05> {	[	    o,	O		]	};+    key <AD06> {	[	    r,	R		]	};+    key <AD07> {	[	    s,	S		]	};+    key <AD08> {	[	    u,	U		]	};+    key <AD09> {	[	    y,	Y		]	};+    key <AD10> {	[	    b,	B		]	};+    key <AD11> {	[   semicolon,	colon 		]	};+    key <AD12> {	[	equal,	plus		]	};++    key <AC01> {	[	    7,	ampersand	]	};+    key <AC02> {	[	    8,	asterisk	]	};+    key <AC03> {	[	    z,	Z		]	};+    key <AC04> {	[	    a,	A 		]	};+    key <AC05> {	[	    e,	E		]	};+    key <AC06> {	[	    h,	H		]	};+    key <AC07> {	[	    t,	T		]	};+    key <AC08> {	[	    d,	D		]	};+    key <AC09> {	[	    c,	C		]	};+    key <AC10> {	[	    k,	K		]	};+    key <AC11> {	[	minus,	underscore	]	};++    key <AB01> {	[	    9,	parenleft	]	};+    key <AB02> {	[	    0,	parenright	]	};+    key <AB03> {	[	    x,	X		]	};+    key <AB04> {	[	comma,	less		]	};+    key <AB05> {	[	    i,	I		]	};+    key <AB06> {	[	    n,	N		]	};+    key <AB07> {	[	    w,	W		]	};+    key <AB08> {	[	    v,	V		]	};+    key <AB09> {	[	    g,	G		]	};+    key <AB10> {	[  apostrophe,	quotedbl	] 	};+};++// Classic dvorak layout+// by Piter Punk <piterpk@terra.com.br> - 2006-07-06 +// Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net +// on xorg list.+partial alphanumeric_keys+xkb_symbols "dvorak-classic" {++    name[Group1]= "English (classic Dvorak)";++    // Alphanumeric section++    key <TLDE> { [       grave,	asciitilde, dead_grave, dead_tilde	] };++    key <AE01> { [ bracketleft,	braceleft	]	};+    key <AE02> { [	    7,	ampersand	]	};+    key <AE03> { [	    5,	percent		]	};+    key <AE04> { [	    3,	numbersign	]	};+    key <AE05> { [	    1,	exclam 		]	};+    key <AE06> { [	    9,	parenleft,  dead_grave]	};+    key <AE07> { [	    0,	parenright	]	};+    key <AE08> { [	    2,	at		]	};+    key <AE09> { [	    4,	dollar		]	};+    key <AE10> { [	    6,	asciicircum, dead_circumflex, dead_circumflex ]	};+    key <AE11> { [	    8,	asterisk	]	};+    key <AE12> { [ bracketright, braceright,  dead_tilde] };++    key <AD01> { [	slash,	question	]	};+    key <AD02> { [	comma,	less,   dead_cedilla, dead_caron	] };+    key <AD03> { [      period,	greater, dead_abovedot, periodcentered	] };+    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> { [  apostrophe,	quotedbl, dead_acute, dead_diaeresis	] };+    key <AD12> { [	equal,	plus		]	};++    key <AC01> { [	    a,	A 		]	};+    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,	underscore	]	};++    key <AB01> { [   semicolon,	colon, dead_ogonek, dead_doubleacute ] };+    key <AB02> { [	    q,	Q		]	};+    key <AB03> { [	    j,	J		]	};+    key <AB04> { [	    k,	K		]	};+    key <AB05> { [	    x,	X		]	};+    key <AB06> { [	    b,	B		]	};+    key <AB07> { [	    m,	M		]	};+    key <AB08> { [	    w,	W		]	};+    key <AB09> { [	    v,	V		]	};+    key <AB10> { [	    z,	Z		]	};+    key <BKSL> { [  backslash,  bar             ]       };+};++// Programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>+// License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>+// Main features: Numbers are in shift position (like French), symbols have been+// placed in locations that give good hand-alternation and finger rolling with+// symbols that usually follows, accented characters are possible for I18N.+partial alphanumeric_keys+xkb_symbols "dvp" {+    include "us(dvorak)"++    name[Group1] = "English (programmer Dvorak)";++    //             Unmodified       Shift           AltGr            Shift+AltGr+    // symbols row, left side+    key <TLDE> { [ dollar,          asciitilde,     dead_tilde                  ] };+    key <AE01> { [ ampersand,       percent                                     ] };+    key <AE02> { [ bracketleft,     7,              currency                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE03> { [ braceleft,       5,              cent                        ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE04> { [ braceright,      3,              yen                         ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE05> { [ parenleft,       1,              EuroSign                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE06> { [ equal,           9,              sterling                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };++    // symbols row, right side+    key <AE07> { [ asterisk,        0                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE08> { [ parenright,      2,              onehalf                     ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE09> { [ plus,            4                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE10> { [ bracketright,    6                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE11> { [ exclam,          8,              exclamdown                  ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <AE12> { [ numbersign,      grave,          dead_grave                  ] };+    key <BKSP> { [ BackSpace,       BackSpace                                   ] };++    // upper row, left side+    key <AD01> { [ semicolon,       colon,          dead_diaeresis              ] };+    key <AD02> { [ comma,           less,           guillemotleft               ] };+    key <AD03> { [ period,          greater,        guillemotright              ] };+    key <AD04> { [ p,               P,              paragraph,       section    ] };+    key <AD05> { [ y,               Y,              udiaeresis,      Udiaeresis ] };++    // upper row, right side+    key <AD08> { [ c,               C,              ccedilla,        Ccedilla   ] };+    key <AD09> { [ r,               R,              registered,      trademark  ] };+    key <AD11> { [ slash,           question,       questiondown                ] };+    key <AD12> { [ at,              asciicircum,    dead_circumflex, dead_caron ] };++    // home row, left side+    key <AC01> { [ a,               A,              aring,           Aring      ] };+    key <AC02> { [ o,               O,              oslash,          Ooblique   ] };+    key <AC03> { [ e,               E,              ae,              AE         ] };+    key <AC04> { [ u,               U,              eacute,          Eacute     ] };++    // home row, right side+    key <AC06> { [ d,               D,              eth,             ETH        ] };+    key <AC07> { [ h,               H,              dead_acute                  ] };+    key <AC08> { [ t,               T,              thorn,           THORN      ] };+    key <AC09> { [ n,               N,              ntilde,          Ntilde     ] };+    key <AC10> { [ s,               S,              ssharp                      ] };+    key <AC11> { [ minus,           underscore,     hyphen                      ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };+    key <BKSL> { [ backslash,       bar                                         ] };++    // lower row, left side+    key <AB01> { [ apostrophe,      quotedbl,       dead_acute                  ] };++    include "level3(ralt_switch)"+};++// phonetic layout for Russian letters on an US keyboard+// by Ivan Popov <pin@konvalo.org> 2005-07-17++// level3 modifier is a shortcut to the "us" meaning of the keys where+// we place cyrillic letters, handy for accessing the corresponding+// punctuation marks.+// It is important to have access to punctuation marks, and the rest of+// alphabetical keys are added for being consequent so that the users+// can expect the level3 modifier to give what the key label shows.++partial alphanumeric_keys+xkb_symbols "rus" {++    name[Group1]= "Russian (US, phonetic)";++    include "us(basic)"++key.type[group1]="FOUR_LEVEL_ALPHABETIC";++    key	<LatA> {	[ Cyrillic_a, Cyrillic_A ]	};+    key	<LatB> {	[ Cyrillic_be, Cyrillic_BE ]	};+    key	<LatW> {	[ Cyrillic_ve, Cyrillic_VE ]	};+    key	<LatG> {	[ Cyrillic_ghe, Cyrillic_GHE ]	};+    key	<LatD> {	[ Cyrillic_de, Cyrillic_DE ]	};+    key	<LatE> {	[ Cyrillic_ie, Cyrillic_IE ]	};+    key	<TLDE> {	[ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };+    key	<LatV> {	[ Cyrillic_zhe, Cyrillic_ZHE ]	};+    key	<LatZ> {	[ Cyrillic_ze, Cyrillic_ZE ]	};+    key	<LatI> {	[ Cyrillic_i, Cyrillic_I ]	};+    key	<LatJ> {	[ Cyrillic_shorti, Cyrillic_SHORTI ]	};+    key	<LatK> {	[ Cyrillic_ka, Cyrillic_KA ]	};+    key	<LatL> {	[ Cyrillic_el, Cyrillic_EL ]	};+    key	<LatM> {	[ Cyrillic_em, Cyrillic_EM ]	};+    key	<LatN> {	[ Cyrillic_en, Cyrillic_EN ]	};+    key	<LatO> {	[ Cyrillic_o, Cyrillic_O ]	};+    key	<LatP> {	[ Cyrillic_pe, Cyrillic_PE ]	};+    key	<LatR> {	[ Cyrillic_er, Cyrillic_ER ]	};+    key	<LatS> {	[ Cyrillic_es, Cyrillic_ES ]	};+    key	<LatT> {	[ Cyrillic_te, Cyrillic_TE ]	};+    key	<LatU> {	[ Cyrillic_u, Cyrillic_U ]	};+    key	<LatF> {	[ Cyrillic_ef, Cyrillic_EF ]	};+    key	<LatH> {	[ Cyrillic_ha, Cyrillic_HA ]	};+    key	<LatC> {	[ Cyrillic_tse, Cyrillic_TSE ]	};+    key <AC10> {        [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };+    key	<AD11> {	[ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };+    key	<AD12> {	[ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ]	};+    key <AE12> {        [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };+    key	<LatY> {	[ Cyrillic_yeru, Cyrillic_YERU ]	};+    key	<LatX> {	[ Cyrillic_softsign, Cyrillic_SOFTSIGN ]	};+    key	<BKSL> {	[ Cyrillic_e, Cyrillic_E, backslash, bar ]	};+    key <AC11> {        [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };+    key	<LatQ> {	[ Cyrillic_ya, Cyrillic_YA ]	};++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "mac" {++    include "us(basic)"+    name[Group1]= "English (Macintosh)";+    key.type[group1]="FOUR_LEVEL";++    // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg+    key <LSGT> { [   section,  plusminus,       section,        plusminus ] };+    key <TLDE> { [     grave, asciitilde,    dead_grave,        dead_horn ] };+    key <AE01> { [	   1,     exclam,    exclamdown,            U2044 ] };+    key <AE02> { [	   2,         at,     trademark,         EuroSign ] };+    key <AE03> { [	   3, numbersign,      sterling,            U2039 ] };+    key <AE04> { [	   4,     dollar,          cent,            U203A ] };+    key <AE05> { [	   5,    percent,      infinity,            UFB01 ] };+    key <AE06> { [         6,asciicircum,       section,            UFB02 ] };+    key <AE07> { [	   7,  ampersand,     paragraph,     doubledagger ] };+    key <AE08> { [	   8,   asterisk, enfilledcircbullet,      degree ] };+    key <AE09> { [	   9,  parenleft,   ordfeminine,   periodcentered ] };+    key <AE10> { [	   0, parenright,     masculine,singlelowquotemark] };+    key <AE11> { [     minus, underscore,        endash,           emdash ] };+    key <AE12> { [     equal,       plus,      notequal,        plusminus ] };++    key <AD01> { [	   q,          Q,            oe,               OE ] };+    key <AD02> { [	   w,          W,         U2211,doublelowquotemark] };+    key <AD03> { [	   e,          E,    dead_acute,            acute ] };+    key <AD04> { [	   r,          R,    registered,            U2030 ] };+    key <AD05> { [	   t,          T,        dagger,       dead_caron ] };+    key <AD06> { [	   y,          Y,           yen,       onequarter ] };+    key <AD07> { [	   u,        U,  dead_diaeresis,        diaeresis ] };+    key <AD08> { [	   i,        I, dead_circumflex,            U02C6 ] };+    key <AD09> { [	   o,          O,        oslash,         Ooblique ] };+    key <AD10> { [	   p,          P,      Greek_pi,            U220F ] };+    key <AD11> { [ bracketleft,  braceleft, leftdoublequotemark, rightdoublequotemark ] };+    key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };+    key <BKSL> { [ backslash,        bar, guillemotleft,   guillemotright ] };++    key <AC01> { [	   a,          A,         aring,            Aring ] };+    key <AC02> { [	   s,          S,        ssharp,      dead_stroke ] };+    key <AC03> { [	   d,          D, partialderivative,          eth ] };+    key <AC04> { [	   f,          F,      function,        dead_hook ] };+    key <AC05> { [	   g,          G,     copyright, dead_doubleacute ] };+    key <AC06> { [	   h,          H, dead_abovedot,    dead_belowdot ] };+    key <AC07> { [	   j,          J,         U2206,          onehalf ] };+    key <AC08> { [	   k,          K,dead_abovering,            UF8FF ] };++    key <AC09> { [	   l,          L,       notsign,            THORN ] };+    key <AC10> { [ semicolon,      colon,         U2026,            thorn ] };+    key <AC11> { [apostrophe,   quotedbl,            ae,               AE ] };++    key <AB01> { [	   z,          Z,   Greek_OMEGA,     dead_cedilla ] };+    key <AB02> { [	   x,          X,         U2248,      dead_ogonek ] };+				// unclear whether "approxeq" is 2248 or 2245+    key <AB03> { [	   c,          C,      ccedilla,         Ccedilla ] };+    key <AB04> { [	   v,          V,    squareroot,            U25CA ] };+    key <AB05> { [	   b,          B,      integral,         idotless ] };+    key <AB06> { [	   n,          N,    dead_tilde,            U02DC ] };+    key <AB07> { [	   m,          M,            mu,    threequarters ] };+    key <AB08> { [     comma,       less, lessthanequal,      dead_macron ] };+    key <AB09> { [    period,    greater, greaterthanequal,    dead_breve ] };+    key <AB10> { [     slash,   question,      division,     questiondown ] };++    include "level3(ralt_switch)"+};+ +// Colemak symbols for xkb on X.Org Server 7.x+// 2006-01-01 Shai Coleman, http://colemak.com/++partial alphanumeric_keys+xkb_symbols "colemak" {+    include "us"+    name[Group1]= "English (Colemak)";++    // Alphanumeric section+    key <TLDE> { [        grave,   asciitilde,      dead_tilde,       asciitilde ] };+    key <AE01> { [            1,       exclam,      exclamdown,      onesuperior ] };+    key <AE02> { [            2,           at,       masculine,      twosuperior ] };+    key <AE03> { [            3,   numbersign,     ordfeminine,    threesuperior ] };+    key <AE04> { [            4,       dollar,            cent,         sterling ] };+    key <AE05> { [            5,      percent,        EuroSign,              yen ] };+    key <AE06> { [            6,  asciicircum,         hstroke,          Hstroke ] };+    key <AE07> { [            7,    ampersand,             eth,              ETH ] };+    key <AE08> { [            8,     asterisk,           thorn,            THORN ] };+    key <AE09> { [            9,    parenleft,  leftsinglequotemark,  leftdoublequotemark ] };+    key <AE10> { [            0,   parenright, rightsinglequotemark,  rightdoublequotemark ] };+    key <AE11> { [        minus,   underscore,          endash,           emdash ] };+    key <AE12> { [        equal,         plus,        multiply,         division ] };++    key <AD01> { [            q,            Q,      adiaeresis,       Adiaeresis ] };+    key <AD02> { [            w,            W,           aring,            Aring ] };+    key <AD03> { [            f,            F,          atilde,           Atilde ] };+    key <AD04> { [            p,            P,          oslash,         Ooblique ] };+    key <AD05> { [            g,            G,     dead_ogonek,       asciitilde ] };+    key <AD06> { [            j,            J,         dstroke,          Dstroke ] };+    key <AD07> { [            l,            L,         lstroke,          Lstroke ] };+    key <AD08> { [            u,            U,          uacute,           Uacute ] };+    key <AD09> { [            y,            Y,      udiaeresis,       Udiaeresis ] };+    key <AD10> { [    semicolon,        colon,      odiaeresis,       Odiaeresis ] };+    key <AD11> { [  bracketleft,    braceleft,   guillemotleft,        0x1002039 ] };+    key <AD12> { [ bracketright,   braceright,  guillemotright,        0x100203a ] };+    key <BKSL> { [    backslash,          bar,      asciitilde,       asciitilde ] };++    key <AC01> { [            a,            A,          aacute,           Aacute ] };+    key <AC02> { [            r,            R,      dead_grave,       asciitilde ] };+    key <AC03> { [            s,            S,          ssharp,       asciitilde ] };+    key <AC04> { [            t,            T,      dead_acute, dead_doubleacute ] };+    key <AC05> { [            d,            D,  dead_diaeresis,       asciitilde ] };+    key <AC06> { [            h,            H,      dead_caron,       asciitilde ] };+    key <AC07> { [            n,            N,          ntilde,           Ntilde ] };+    key <AC08> { [            e,            E,          eacute,           Eacute ] };+    key <AC09> { [            i,            I,          iacute,           Iacute ] };+    key <AC10> { [            o,            O,          oacute,           Oacute ] };+    key <AC11> { [   apostrophe,     quotedbl,          otilde,           Otilde ] };++    key <AB01> { [            z,            Z,              ae,               AE ] };+    key <AB02> { [            x,            X, dead_circumflex,       asciitilde ] };+    key <AB03> { [            c,            C,        ccedilla,         Ccedilla ] };+    key <AB04> { [            v,            V,              oe,               OE ] };+    key <AB05> { [            b,            B,      dead_breve,       asciitilde ] };+    key <AB06> { [            k,            K,  dead_abovering,       asciitilde ] };+    key <AB07> { [            m,            M,     dead_macron,       asciitilde ] };+    key <AB08> { [        comma,         less,    dead_cedilla,       asciitilde ] };+    key <AB09> { [       period,      greater,   dead_abovedot,       asciitilde ] };+    key <AB10> { [        slash,     question,    questiondown,       asciitilde ] };++    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };+    key <LSGT> { [        minus,   underscore,          endash,           emdash ] };+    key <SPCE> { [        space,        space,           space,     nobreakspace ] };++    include "level3(ralt_switch)"+};++// I do NOT like dead-keys - the International keyboard as defined by Microsoft+// doesn't fit my needs. Why use two keystrokes for all simple characters (eg '+// and <space> generates a single ') just to have an é (eacute) in two strokes+// as well? I type ' more often than é (eacute).+//+// This file works just like a regular keyboard, BUT has all dead-keys+// accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"+// followed by an e. In other words, this keyboard is not international as long+// as you leave the right Alt key alone.+//+// The original MS International keyboard was intended for Latin1 (iso8859-1).+// With the introduction of iso8859-15, the (important) ligature oe (and OE)+// became available. I added them next to ae. Because I write ediaeresis more+// often than registered, I moved registered to be next to copyright and added+// ediaeresis and idiaeresis. - Adriaan++partial alphanumeric_keys+xkb_symbols "altgr-intl" {++   name[Group1]= "English (international AltGr dead keys)";++   include "us(intl)"++// five dead keys moved into level3:++   key <TLDE> { [    grave, asciitilde,  dead_grave,   dead_tilde      ] };+   key <AC11> { [apostrophe,quotedbl,    dead_acute,   dead_diaeresis  ] };++// diversions from the MS Intl keyboard:++   key <AE01> { [        1, exclam,      onesuperior,  exclamdown      ] };+   key <AD04> { [        r, R,           ediaeresis,   Ediaeresis      ] };+   key <AC07> { [        j, J,           idiaeresis,   Idiaeresis      ] };+   key <AB02> { [        x, X,           oe,           OE              ] };+   key <AB04> { [        v, V,           registered,   registered      ] };++// onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:++   key <AE06> { [        6, asciicircum, dead_circumflex, onequarter    ] };+   key <AE07> { [        7, ampersand,   dead_horn,       onehalf       ] };+   key <AE08> { [        8, asterisk,    dead_ogonek,     threequarters ] };++   include "level3(ralt_switch)"+};++// Intel ClassmatePC Keyboard Layout+// by Piter PUNK <piterpk@terra.com.br>+//+// The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)+// to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since+// the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key.++// classmate - us(basic)+partial alphanumeric_keys+xkb_symbols "classmate" {+    include "us(basic)"+    name[Group1]= "USA - ClassmatePC";++    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };++    include "eurosign(5)"+    include "level3(switch)"+};++// classmate-intl - us(intl)+// RCTL is generated by Fn+Alt, because that, when trying to access+// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got+// the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>+// generate the same symbol as the original key.+partial alphanumeric_keys+xkb_symbols "classmate-intl" {+    include "us(intl)"+    name[Group1]= "USA - ClassmatePC (International)";+    key.type[Group1]="FOUR_LEVEL";++    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };++    key <KP7>  { [	KP_Home,		KP_7,	+			onehalf,		dead_horn	] };+    key <KP8>  { [	KP_Up,			KP_8,+			threequarters,		dead_ogonek	] };+    key <KP9>  { [	KP_Prior,		KP_9,+			leftsinglequotemark,	dead_breve	] };+    key <KPMU> { [ 	KP_Multiply,		KP_Multiply,+			rightsinglequotemark,	dead_abovering	] };++    key <KP4>  { [	KP_Left,		KP_4,+			uacute,			Uacute		] };+    key <KP5>  { [	KP_Begin,		KP_5,+			iacute,			Iacute		] };+    key <KP6>  { [	KP_Right,		KP_6,+			oacute,			Oacute		] };+    key <KPSU> { [	KP_Subtract,		KP_Subtract,+			odiaeresis,		Odiaeresis	] };++    key <KP2>  { [	KP_Down,		KP_2,+			oe,			OE		] };+    key <KP3>  { [	KP_Next,		KP_3,+			oslash,			Ooblique	] };+    key <KPAD> { [ 	KP_Add,     		KP_Add,+			paragraph,		degree          ] };+   +    key <KP0>  { [	KP_Insert,		KP_0,+			mu,			mu	] };+    key <KPDL> { [	KP_Delete,		KP_Decimal,+			dead_abovedot,		dead_caron	] }; +    key <KPDV> { [ 	KP_Divide,   		KP_Divide,+			questiondown,		dead_hook       ] };++    include "level3(switch)"+};++// classmate-alt-intl - us(alt-intl)+// RCTL is generated by Fn+Alt, because that, when trying to access+// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got+// the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>+// generate the same symbol as the original key.+partial alphanumeric_keys+xkb_symbols "classmate-alt-intl" {+    include "us(alt-intl)"+    name[Group1]= "USA - ClassmatePC (Alternative international)";+    key.type[Group1]="FOUR_LEVEL";++    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };++    key <KPSU> { [	KP_Subtract,		KP_Subtract	] };++    key <KP9>  { [	KP_Prior,		KP_9,+			leftsinglequotemark,	dead_breve	] };+    key <KPMU> { [ 	KP_Multiply,		KP_Multiply,+			rightsinglequotemark,	dead_abovering	] };++    key <KPAD> { [ 	KP_Add,     		KP_Add,+			dead_ogonek,		dead_diaeresis   ] };+    +    key <KPDL> { [	KP_Delete,		KP_Decimal,+			dead_abovedot,		dead_circumflex	] }; +    key <KPDV> { [ 	KP_Divide,   		KP_Divide,+			dead_hook,		dead_hook       ] };++    include "level3(switch)"+};++// classmate-altgr-intl - us(altgr-intl)+// RCTL is generated by Fn+Alt, because that, when trying to access+// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got+// the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>+// generate the same symbol as the original key.+partial alphanumeric_keys+xkb_symbols "classmate-altgr-intl" {+    include "us(altgr-intl)"+    name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";+    key.type[Group1]="FOUR_LEVEL";++    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };++    key <KP7>  { [	KP_Home,		KP_7,	+			dead_horn,		dead_horn	] };+    key <KP8>  { [	KP_Up,			KP_8,+			dead_ogonek,		dead_ogonek	] };+    key <KP9>  { [	KP_Prior,		KP_9,+			leftsinglequotemark,	dead_breve	] };+    key <KPMU> { [ 	KP_Multiply,		KP_Multiply,+			rightsinglequotemark,	dead_abovering	] };++    key <KP4>  { [	KP_Left,		KP_4,+			uacute,			Uacute		] };+    key <KP5>  { [	KP_Begin,		KP_5,+			iacute,			Iacute		] };+    key <KP6>  { [	KP_Right,		KP_6,+			oacute,			Oacute		] };+    key <KPSU> { [	KP_Subtract,		KP_Subtract,+			odiaeresis,		Odiaeresis	] };++    key <KP1>  { [	KP_End,			KP_1,+			idiaeresis,		Idiaeresis	] };+    key <KP2>  { [	KP_Down,		KP_2,+			oe,			OE		] };+    key <KP3>  { [	KP_Next,		KP_3,+			oslash,			Ooblique	] };+    key <KPAD> { [ 	KP_Add,     		KP_Add,+			paragraph,		degree          ] };+   +    key <KP0>  { [	KP_Insert,		KP_0,+			mu,			mu	] };+    key <KPDL> { [	KP_Delete,		KP_Decimal,+			dead_abovedot,		dead_caron	] }; +    key <KPDV> { [ 	KP_Divide,   		KP_Divide,+			questiondown,		dead_hook       ] };++    include "level3(switch)"+};++partial alphanumeric_keys+xkb_symbols "olpc" {++   include "us(basic)"+   name[Group1]= "English (US)";++   // OLPC international US English keyboard layout.+   // It's a little different from the usual international layout.+   // See: http://wiki.laptop.org/go/Image:Keyboard_english.png++   key <TLDE> { [     grave, asciitilde,    dead_grave, dead_tilde ] };+   key <AE01> { [         1,     exclam,    exclamdown, exclamdown ] };+   key <AE02> { [         2,         at,       notsign,    notsign ] };+   key <AE03> { [         3, numbersign,     0x1000300,  0x1000300 ] }; // combining grave+   key <AE04> { [         4,     dollar,     0x1000301,  0x1000301 ] }; // combining acute+   key <AE05> { [         5,    percent,     0x1000306,  0x1000306 ] }; // combining breve above+   key <AE06> { [         6,asciicircum,     0x100030A,  0x100030A ] }; // combining ring above+   key <AE07> { [         7,  ampersand,     0x1000302,  0x1000302 ] }; // combining circumflex above+   key <AE08> { [         8,   asterisk,     0x100030C,  0x100030C ] }; // combining caron above+   key <AE09> { [         9,  parenleft,     0x1000307,  0x1000307 ] }; // combining dot above+   key <AE10> { [         0, parenright,     0x1000308,  0x1000308 ] }; // combining diaeresis above+   key <AE11> { [     minus, underscore,     0x1000304,  0x1000304 ] }; // combining macron above+   key <AE12> { [     equal,       plus,     0x1000303,  0x1000303 ] }; // combining tilde above++   key <AD01> { [         q,          Q,  Greek_omega, Greek_OMEGA ] };+   key <AD02> { [         w,          W,       oslash,      Oslash ] };+   key <AD03> { [         e,          E,           oe,          OE ] };+   key <AD04> { [         r,          R,    0x1000327,   0x1000327 ] }; // combining cedilla+   key <AD05> { [         t,          T,    0x100032E,   0x100032E ] }; // combining breve below+   key <AD06> { [         y,          Y,    0x1000325,   0x1000325 ] }; // combining ring below+   key <AD07> { [         u,          U,    0x100032D,   0x100032D ] }; // combining circumflex below+   key <AD08> { [         i,          I,    0x100032C,   0x100032C ] }; // combining caron below+   key <AD09> { [         o,          O,    0x1000323,   0x1000323 ] }; // combining dot below+   key <AD10> { [         p,          P,    0x1000324,   0x1000324 ] }; // combining diaeresis below+   key <AD11> { [ bracketleft,  braceleft,  0x1000331,   0x1000331 ] }; // combining macron below+   key <AD12> { [bracketright, braceright,  0x1000330,   0x1000330 ] }; // combining tilde below++   key <AC01>  { [         a,          A,          ae,               AE ] };+   key <AC02>  { [         s,          S,      ssharp,        0x1001E9C ] }; // uppercase S sharp+   key <AC03>  { [         d,          D,         eth,              ETH ] };+   key <AC04>  { [         f,          F,       thorn,            THORN ] };+   key <AC06>  { [         h,          H,    sterling,         sterling ] };+   key <AC07>  { [         j,          J,    EuroSign,         EuroSign ] };+   key <AC10>  { [ semicolon,      colon,   masculine,      ordfeminine ] };+   key <AC11>  { [ apostrophe,  quotedbl,    currency,         currency ] };+   key <AC12>  { [ backslash,        bar,      section,         section ] };++   key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };+   key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };+   key <AB07>  { [         m,          M,          mu,               mu ] };+   key <AB08>  { [     comma,     less,  guillemotleft,   guillemotleft ] };+   key <AB09>  { [    period,  greater, guillemotright,  guillemotright ] };+   key <AB10>  { [     slash,   question, questiondown,    questiondown ] };++   key <I219>  { [  multiply,   division, ISO_Next_Group, ISO_Prev_Group ] };++   include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "olpc2" {+   include "us(olpc)"+   name[Group1]= "English (layout toggle on multiply/divide key)";+   include "group(olpc)"+};++xkb_symbols "olpcm" {++   include "us(basic)"+   name[Group1]= "USA";++   // Mechanical (non-membrane) OLPC int'l US English keyboard layout.+   // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard++   key <TLDE> { [     grave, asciitilde,    dead_grave, dead_tilde ] };+   key <AE01> { [         1,     exclam,    exclamdown, exclamdown ] };+   key <AE02> { [         2,         at,       notsign,    notsign ] };+   key <AE03> { [         3, numbersign,     0x1000300,  0x1000300 ] }; // combining grave+   key <AE04> { [         4,     dollar,     0x1000301,  0x1000301 ] }; // combining acute+   key <AE05> { [         5,    percent,     0x1000306,  0x1000306 ] }; // combining breve above+   key <AE06> { [         6,asciicircum,     0x100030A,  0x100030A ] }; // combining ring above+   key <AE07> { [         7,  ampersand,     0x1000302,  0x1000302 ] }; // combining circumflex above+   key <AE08> { [         8,   asterisk,     0x100030C,  0x100030C ] }; // combining caron above+   key <AE09> { [         9,  parenleft,     0x1000307,  0x1000307 ] }; // combining dot above+   key <AE10> { [         0, parenright,     0x1000308,  0x1000308 ] }; // combining diaeresis above+   key <AE11> { [     minus, underscore,     0x1000304,  0x1000304 ] }; // combining macron above++   key <AD01> { [         q,          Q,  Greek_omega, Greek_OMEGA ] };+   key <AD02> { [         w,          W,       oslash,      Oslash ] };+   key <AD03> { [         e,          E,           oe,          OE ] };+   key <AD04> { [         r,          R,    0x1000327,   0x1000327 ] }; // combining cedilla+   key <AD05> { [         t,          T,    0x100032E,   0x100032E ] }; // combining breve below+   key <AD06> { [         y,          Y,    0x1000325,   0x1000325 ] }; // combining ring below+   key <AD07> { [         u,          U,    0x100032D,   0x100032D ] }; // combining circumflex below+   key <AD08> { [         i,          I,    0x100032C,   0x100032C ] }; // combining caron below+   key <AD09> { [         o,          O,    0x1000323,   0x1000323 ] }; // combining dot below+   key <AD10> { [         p,          P,    0x1000324,   0x1000324 ] }; // combining diaeresis below+   key <AD11> { [ bracketleft,  braceleft,  0x1000331,   0x1000331 ] }; // combining macron below+   key <AD12> { [bracketright, braceright,  0x1000330,   0x1000330 ] }; // combining tilde below++   key <AC01>  { [         a,          A,          ae,               AE ] };+   key <AC02>  { [         s,          S,      ssharp,        0x1001E9C ] }; // uppercase S sharp+   key <AC03>  { [         d,          D,         eth,              ETH ] };+   key <AC04>  { [         f,          F,       thorn,            THORN ] };+   key <AC06>  { [         h,          H,    sterling,         sterling ] };+   key <AC07>  { [         j,          J,    EuroSign,         EuroSign ] };+   key <AC10>  { [ semicolon,      colon,   masculine,      ordfeminine ] };+   // no AC11 or AC12 on olpcm++   key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };+   key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };+   key <AB07>  { [         m,          M,          mu,               mu ] };+   key <AB08>  { [     comma,     less,  guillemotleft,   guillemotleft ] };+   key <AB09>  { [    period,  greater, guillemotright,  guillemotright ] };+   key <AB10>  { [     slash,   question, questiondown,    questiondown ] };++   key <AA02>  { [ backslash,        bar,      section,         section ] };+   key <AA06>  { [     equal,       plus,     0x1000303,  0x1000303 ] };+   key <AA07>  { [ apostrophe,  quotedbl,    currency,         currency ] };++   include "level3(ralt_switch)"+};++// Based on Cherokee Nation Official Layout+// http://www.cherokee.org/extras/downloads/font/Keyboard.htm++partial alphanumeric_keys modifier_keys+xkb_symbols "chr" {++    name[Group1]= "Cherokee";+    key.type[group1]="ALPHABETIC";++    // Alphanumeric section+    key <TLDE> { [      grave,      U13CA ] };+    key <AE01> { [          1,      U13B1 ] };+    key <AE02> { [          2,      U13C7 ] };+    key <AE03> { [          3,      U13E7 ] };+    key <AE04> { [      U13D9,      U13B0 ] };+    key <AE05> { [      U13E6,      U13B9 ] };+    key <AE06> { [      U13DC,      U13DD ] };+    key <AE07> { [      U13CB,      U13E1 ] };+    key <AE08> { [      U13D6,      U13BA ] };+    key <AE09> { [      U13D2,  parenleft ] };+    key <AE10> { [      U13C4, parenright ] };+    key <AE11> { [      U13BF,      U13BC ] };+    key <AE12> { [      U13F3,      U13BD ] };++    key <AD01> { [      U13AA,      U13C6 ] };+    key <AD02> { [      U13B3,      U13EB ] };+    key <AD03> { [      U13A1,      U13E3 ] };+    key <AD04> { [      U13DB,      U13CF ] };+    key <AD05> { [      U13D4,      U13D8 ] };+    key <AD06> { [      U13EF,      U13F2 ] };+    key <AD07> { [      U13A4,      U13AD ] };+    key <AD08> { [      U13A2,      U13F1 ] };+    key <AD09> { [      U13A3,      U13EC ] };+    key <AD10> { [      U13C1,      U13EA ] };+    key <AD11> { [      U13D5,      U13D1 ] };+    key <AD12> { [      U13B6,      U13E4 ] };+    key <BKSL> { [      U13E9,      U13EE ] };++    key <AC01> { [      U13A0,      U13CC ] };+    key <AC02> { [      U13CD,      U13CE ] };+    key <AC03> { [      U13D7,      U13D0 ] };+    key <AC04> { [      U13A9,      U13C8 ] };+    key <AC05> { [      U13A6,      U13E5 ] };+    key <AC06> { [      U13AF,      U13B2 ] };+    key <AC07> { [      U13DA,      U13AB ] };+    key <AC08> { [      U13B8,      U13A7 ] };+    key <AC09> { [      U13B5,      U13AE ] };+    key <AC10> { [      U13E8,      U13E0 ] };+    key <AC11> { [ apostrophe,   quotedbl ] };++    key <AB01> { [      U13AC,      U13C3 ] };+    key <AB02> { [      U13F4,      U13ED ] };+    key <AB03> { [      U13D3,      U13DF ] };+    key <AB04> { [      U13A5,      U13DE ] };+    key <AB05> { [      U13A8,      U13F0 ] };+    key <AB06> { [      U13BE,      U13BB ] };+    key <AB07> { [      U13C5,      U13B7 ] };+    key <AB08> { [      comma,      U13E2 ] };+    key <AB09> { [     period,      U13B4 ] };+    key <AB10> { [      U13C2,      U13C9 ] };++    // End alphanumeric section+};++// Serbian charecters added as third level symbols to US keyboard layout.++partial alphanumeric_keys+xkb_symbols "hbs" {++  name[Group1]= "Serbo-Croatian (US)";++  include "us"++  key <TLDE> { [ grave, asciitilde ] };+  key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };+  key <AE08> { [ 8, asterisk, multiply, division ] };+  key <AE11> { [ minus, underscore, endash, emdash ] };+  key <AC09> { [ l, L, U1C9, U1C8 ] };+  key <AB06> { [ n, N, U1CC, U1CB ] };+  key <AB01> { [ z, Z, U1C6, U1C5 ] };+  key <AD03> { [ e, E, EuroSign, cent ] };+  key <AC03> { [ d, D, dstroke, Dstroke ] };+  key <AC11> { [ dead_acute, quotedbl, apostrophe, apostrophe ] };+  key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };+  key <AB08> { [ comma, less, U3003, guillemotright ] };+  key <AB09> { [ period, greater, ellipsis, guillemotleft ] };++  include "level3(ralt_switch)"+};++//based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg+partial alphanumeric_keys+xkb_symbols "htcdream" {+        include "inet(htcdream)"+        name[Group1]= "English (US)";++        //second row+        key <AD01> { [ q, Q, Tab, Tab ] };+        key <AD02> { [ w, W, grave, grave ] };+        key <AD03> { [ e, E, underscore, underscore ] };+        key <AD04> { [ r, R, sterling, sterling ] };+        key <AD05> { [ t, T, EuroSign, EuroSign ] };+        key <AD06> { [ y, Y, division, division ] };+        key <AD07> { [ u, U, multiply, multiply ] };+        key <AD08> { [ i, I, minus, minus ] };+        key <AD09> { [ o, O, plus, plus ] };+        key <AD10> { [ p, P, equal, equal ] };++        //third row+        key <AC01> { [ a, A, NoSymbol, NoSymbol ] };+        key <AC02> { [ s, S, bar, bar ] };+        key <AC03> { [ d ,D, backslash, backslash ] };+        key <AC04> { [ f, F, braceleft, braceleft ] };+        key <AC05> { [ g, G, braceright, braceright ] };+        key <AC06> { [ h, H, colon, colon ] };+        key <AC07> { [ j, J, semicolon, semicolon ] };+        key <AC08> { [ k, K, quotedbl, quotedbl ] };+        key <AC09> { [ l, L, apostrophe, apostrophe ] };++        //forth row+        key <AB01> { [ z, Z, NoSymbol, NoSymbol ] };+        key <AB02> { [ x, X, NoSymbol, NoSymbol ] };+        key <AB03> { [ c, C, NoSymbol, NoSymbol ] };+        key <AB04> { [ v, V, bracketleft, bracketleft ] };+        key <AB05> { [ b, B, bracketright, bracketright ] };+        key <AB06> { [ n, N, less, less ] };+        key <AB07> { [ m, M, greater, greater ] };+        key <AB08> { [ comma, comma, question, question ] };++        //fifth row+        key <FK15> { [ at, at, asciitilde, asciitilde ] };++        include "level3(alt_switch)"+};++// Workman Keyboard Layout symbols for xkb on X.Org Server 7.x+// 09-06-2010 OJ Bucao. http://www.workmanlayout.com++partial alphanumeric_keys+xkb_symbols "workman" {++    name[Group1]= "English (Workman)";++    include "us(basic)"++    // Alphanumeric section+    key <AD01> {  [   q,  Q   ] };+    key <AD02> {  [   d,  D   ] };+    key <AD03> {  [   r,  R   ] };+    key <AD04> {  [   w,  W   ] };+    key <AD05> {  [   b,  B   ] };+    key <AD06> {  [   j,  J   ] };+    key <AD07> {  [   f,  F   ] };+    key <AD08> {  [   u,  U   ] };+    key <AD09> {  [   p,  P   ] };+    key <AD10> {  [   semicolon,  colon   ] };++    key <AC01> {  [   a,  A   ] };+    key <AC02> {  [   s,  S   ] };+    key <AC03> {  [   h,  H   ] };+    key <AC04> {  [   t,  T   ] };+    key <AC05> {  [   g,  G   ] };+    key <AC06> {  [   y,  Y   ] };+    key <AC07> {  [   n,  N   ] };+    key <AC08> {  [   e,  E   ] };+    key <AC09> {  [   o,  O   ] };+    key <AC10> {  [   i,  I   ] };++    key <AB01> {  [   z,  Z   ] };+    key <AB02> {  [   x,  X   ] };+    key <AB03> {  [   m,  M   ] };+    key <AB04> {  [   c,  C   ] };+    key <AB05> {  [   v,  V   ] };+    key <AB06> {  [   k,  K   ] };+    key <AB07> {  [   l,  L   ] };+    // End alphanumeric section++    key <CAPS> { [    BackSpace,       Escape,       BackSpace,        BackSpace ] };++    include "level3(ralt_switch)"+};++partial alphanumeric_keys+xkb_symbols "workman-intl" {++    name[Group1]= "English (Workman, international with dead keys)";++    include "us(intl)"++    // Alphanumeric section+    key <AD01> { [     q,          Q,    adiaeresis,       Adiaeresis ] };+    key <AD02> { [     d,          D,           eth,              ETH ] };+    key <AD03> { [     r,          R,    registered,       registered ] };+    key <AD04> { [     w,          W,         aring,            Aring ] };+    key <AD05> { [     b,          B,             b,                B ] };+    key <AD06> { [     j,          J,             j,                J ] };+    key <AD07> { [     f,          F,             f,                F ] };+    key <AD08> { [     u,          U,        uacute,           Uacute ] };+    key <AD09> { [     p,          P,    odiaeresis,       Odiaeresis ] };+    key <AD10> { [ semicolon,  colon,     paragraph,           degree ] };++    key <AC01> { [     a,          A,        aacute,           Aacute ] };+    key <AC02> { [     s,          S,        ssharp,          section ] };+    key <AC03> { [     h,          H,             h,                H ] };+    key <AC04> { [     t,          T,         thorn,            THORN ] };+    key <AC05> { [     g,          G,             g,                G ] };+    key <AC06> { [     y,          Y,    udiaeresis,       Udiaeresis ] };+    key <AC07> { [     n,          N,        ntilde,           Ntilde ] };+    key <AC08> { [     e,          E,        eacute,           Eacute ] };+    key <AC09> { [     o,          O,        oacute,           Oacute ] };+    key <AC10> { [     i,          I,        iacute,           Iacute ] };++    key <AB01> { [     z,          Z,            ae,               AE ] };+    key <AB02> { [     x,          X,             x,                X ] };+    key <AB03> { [     m,          M,            mu,               mu ] };+    key <AB04> { [     c,          C,     copyright,             cent ] };+    key <AB05> { [     v,          V,             v,                V ] };+    key <AB06> { [     k,          K,            oe,               OE ] };+    key <AB07> { [     l,          L,        oslash,         Ooblique ] };+    // End alphanumeric section++    key <CAPS> { [ BackSpace, Escape,     BackSpace,        BackSpace ] };++    include "level3(ralt_switch)"+};++// EXTRAS:++// Czech, Slovak and German charecters added as third level symbols to US keyboard layout.+partial alphanumeric_keys+xkb_symbols "cz_sk_de" {+    include "us"+    name[Group1]="Czech Slovak and German (US)";++    key <TLDE>  { [grave,   asciitilde, uring,      Uring       ] };+    key <AE01>	{ [    1,	exclam,	uacute,	    Uacute	] };+    key <AE02>	{ [    2,           at, ecaron,	    Ecaron	] };+    key <AE03>	{ [    3,   numbersign, scaron,	    Scaron	] };+    key <AE04>	{ [    4,       dollar,	ccaron,	    Ccaron	] };+    key <AE05>	{ [    5,      percent, rcaron,	    Rcaron	] };+    key <AE06>	{ [    6,  asciicircum, zcaron,	    Zcaron	] };+    key <AE07>	{ [    7,    ampersand,	yacute,	    Yacute	] };+    key <AE08>	{ [    8,     asterisk, aacute,	    Aacute	] };+    key <AE09>	{ [    9,    parenleft,	iacute,	    Iacute	] };+    key <AE10>	{ [    0,   parenright, eacute,	    Eacute	] };+    key <AE11>	{ [minus,   underscore, ssharp,     0x1001E9E	] };+    key <AE12>	{ [equal,	  plus, dead_acute, dead_caron  ] };+    +    key <AD03>	{ [         e,          E,     EuroSign,     Eacute ]	};++    key <AD11>	{ [bracketleft, braceleft,   udiaeresis,   Udiaeresis ]	};+    key <AC10>	{ [ semicolon,      colon,   odiaeresis,   Odiaeresis ]	};+    key <AC11>	{ [apostrophe,      quotedbl,adiaeresis,   Adiaeresis ]	};++    key <AC01>	{ [         a,          A,     aacute,	     Aacute   ]	};+    key <AD08>	{ [         i,          I,     iacute,	     Iacute   ]	};+    key <AD09>	{ [         o,          O,     oacute,       Oacute   ]	};+    key <AD06>	{ [         y,          Y,     yacute,       Yacute   ]	};+    key <AD07>	{ [         u,          U,     uring,	     Uring    ]	};++    key <AC02>	{ [         s,          S,     scaron,       Scaron   ]	};+    key <AB01>	{ [         z,          Z,     zcaron,	     Zcaron   ]	};+    key <AB03>	{ [         c,          C,     ccaron,       Ccaron   ]	};+    key <AD04>	{ [         r,          R,     rcaron,	     Rcaron   ]	};+    key <AD05>	{ [         t,          T,     tcaron,	     Tcaron   ]	};+    key <AC03>	{ [         d,          D,     dcaron,	     Dcaron   ]	};+    key <AB06>	{ [         n,          N,     ncaron,	     Ncaron   ]	};+    key <AC09>  { [         l,          L,     lcaron,       Lcaron   ] };+    key <AD10>  { [         p,          P,ocircumflex,  Ocircumflex   ] };++    key <SPCE>  { [     space,       space, nobreakspace, nobreakspace] };++    include "level3(ralt_switch)"+};++// XCompose is out! Unicode combining is in!  For those of us who live+// on the edge: A keymap using Unicode combining characters instead of+// deadkeys.  This variation does not deviate from the lame MS-style+// US-intl layout; but it uses AltGr for combining, like altgr-intl.+//+// This might break your font layout layout systems (because they+// suck), caveat emptor.  Also, most of today's software will count+// individual combining marks for selection, deletion, character+// counting &c., and won't be smart enough to do canonical equivalence+// when searching, &c.+//+// With Unicode combining you use "handwriting order", not+// "typewriting order" as with deadkeys.  That is, you first type the+// base character, then the diacritics/accents/modifiers.  This has+// the advantage of avoiding hidden states --- each keypress changes+// something on screen.+//+// TODO: as of now, this duplicates all us(intl) functionality with+// combining.  With care, perhaps we could add more combining marks+// not present in intl, and support all major languages.+partial alphanumeric_keys+xkb_symbols "intl-unicode" {++ name[Group1]= "English (US, international AltGr Unicode combining)";++ include "us(intl)"+ include "level3(ralt_switch)"++ // grave, tilde+ key <TLDE> { [grave, asciitilde, U0300, U0303 ] };+ // double acute+ key <AE02> { [ 2, at, twosuperior, U030B ] };+ // macron+ key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };+ // circumflex+ key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };+ // horn+ key <AE07> { [ 7, ampersand, onehalf, U031B ] };+ // ogonek+ key <AE08> { [ 8, asterisk, threequarters, U0328 ] };+ // breve+ key <AE09> { [	 9, parenleft, leftsinglequotemark, U0306 ] };+ // abovering+ key <AE10> { [	 0, parenright, rightsinglequotemark, U030A ] };++ // belowdot+ key <AE11> { [ minus, underscore, yen, U0323 ] };+ // acute, diaeresis+ key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };+ // abovedot, caron+ key <AB09> { [ period, greater, U0307, U030C ] };+ // hook+ key <AB10> { [ slash, question, questiondown, U0309 ] };++ // alt-intl compatibility+ // cedilla, caron+ key <AB08> { [ comma, less,	 U0327, U030C ] };+ // ogonek, diaeresis+ key <AC10> { [ semicolon, colon,	 U0328, U0308 ] };+ // doubleacute, horn+ key <AE12> { [ equal, plus,	 U030B, U031B ] };++ // we don't do combining latin letters and combining enclosures+ // because support for those is very rare.+};++// XCompose is out! Unicode combining is in! For those of us who live+// on the edge: A keymap using Unicode combining characters instead of+// deadkeys. This variation does break compatibility with us-intl,+// whenever I thought it would be more mnemonic or Unicodeish.+partial alphanumeric_keys+xkb_symbols "alt-intl-unicode" {++ name[Group1]= "English (US, international AltGr Unicode combining, alternative)";++ include "us(intl-unicode)"++ // easier macron; em-dash.+ // em-dash is available via compose, but I added here since it's such+ // an important typographic character.+ key <AE11> { [ minus, underscore, U0304, U2014 ] };++ // belowdot, abovedot (caron at coma/less key, per above)+ key <AB09> { [ period, greater, U0323, U0307 ] };++};++partial alphanumeric_keys  +xkb_symbols "ats" {++    include "us"++    name[Group1]= "Atsina";++    //Using Dead key to get COMBINING COMMA ABOVE for ejectives on+    //q, l, t, s, m, g, k, p, w, y, r+    //XCompose key is used for the other accute and grave.++    key <AD03> { [ e, E, eacute, Eacute  ] };+    key <AD07> { [ u, U, uacute, Uacute  ] };+    key <AD08> { [ i, I, iacute, Iacute  ] };+    key <AD09> { [ o, O, oacute, Oacute  ] };+    key <AD11> { [ bracketleft,	braceleft, U03B8 ] };+    key <AD12> { [ bracketright, braceright, U010D, U010C ] };+    //U+010C (uppercase Č) and U+010D (lowercase č).++    key <AC01> { [ a, A, aacute, Aacute  ] };+++    //Small letter Open use compose to key get acute accent+    key <AB03> { [ c,	C, U0254, U0186		  ] };+    key <AB08> { [ comma,     less, U0313 ] };+    key <AB10> { [ slash, question, U0294 ] };++    include "level3(ralt_switch)"+    include "compose(rctrl)"+};++partial alphanumeric_keys+xkb_symbols "crd" {++  include "us"++  name[Group1]= "Couer D'alene Salish";++  // Alphanumeric section+  key <AD02> { [         w,           W, U02B7, U02B7 ] }; +  key <AE07> { [         7,   ampersand, U0294        ] }; +  key <AD01> { [         q,           Q, U221A        ] }; +  key <AB04> { [         v,           V, U0259        ] }; +  key <BKSL> { [ backslash,         bar, U026B        ] }; +  key <AD03> { [         e,           E, U025B        ] }; +  key <AD08> { [         i,           I, U026A        ] }; +  key <AC07> { [         j,           J, U01F0        ] }; +  key <AE06> { [         6, asciicircum, U0295        ] }; +  key <AC02> { [         s,           S, U0161        ] }; +  key <AB03> { [         c,           C, U010D        ] }; +  key <AD09> { [         o,           O, U0254        ] }; +  key <AB09> { [    period,     greater, U0323        ] }; ++  include "level3(ralt_switch)"+  include "compose(rctrl)"++  // End alphanumeric section+};+++partial alphanumeric_keys+	xkb_symbols "sun_type6" {+	include "sun_vndr/us(sun_type6)"+};
+ data/sync.sh view
@@ -0,0 +1,67 @@+#/bin/sh++XKBCONFIGROOT='/usr/share/X11/xkb'++if [ ! -d test/data ]; then+    echo "Run this from the top source dir"+    exit 1+fi++for file in \+    symbols/terminate \+    symbols/in \+    symbols/keypad \+    symbols/altwin \+    symbols/ctrl \+    symbols/eurosign \+    symbols/inet \+    symbols/shift \+    symbols/pc \+    symbols/ca \+    symbols/cz \+    symbols/srvr_ctrl \+    symbols/capslock \+    symbols/latin \+    symbols/level5 \+    symbols/us \+    symbols/nbsp \+    symbols/il \+    symbols/group \+    symbols/compose \+    symbols/level3 \+    symbols/ru \+    symbols/rupeesign \+    symbols/kpdl \+    symbols/de \+    symbols/ch \+    symbols/empty \+    keycodes/xfree86 \+    keycodes/aliases \+    keycodes/evdev \+    keycodes/empty \+    types/complete \+    types/pc \+    types/basic \+    types/iso9995 \+    types/level5 \+    types/numpad \+    types/extra \+    types/mousekeys \+    compat/complete \+    compat/lednum \+    compat/pc \+    compat/ledscroll \+    compat/basic \+    compat/misc \+    compat/iso9995 \+    compat/accessx \+    compat/xfree86 \+    compat/level5 \+    compat/caps \+    compat/ledcaps \+    compat/mousekeys \+    rules/base \+    rules/evdev \+; do+    cp "$XKBCONFIGROOT/$file" "test/data/$file"+done
+ data/types/basic view
@@ -0,0 +1,29 @@+default xkb_types "basic" {++    // Fairly standard definitions for+    // the four required key types++    virtual_modifiers NumLock;++    type "ONE_LEVEL" {+	modifiers = None;+	map[None] = Level1;+	level_name[Level1]= "Any";+    };++    type "TWO_LEVEL" {+	modifiers = Shift;+	map[Shift] = Level2;+	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+    };++    type "ALPHABETIC" {+        modifiers = Shift+Lock;+        map[Shift] = Level2;+        map[Lock] = Level2;+        level_name[Level1] = "Base";+        level_name[Level2] = "Caps";+    };++};
+ data/types/complete view
@@ -0,0 +1,9 @@+default xkb_types "complete" {+    include "basic"+    include "mousekeys"+    include "pc"+    include "iso9995"+    include "level5"+    include "extra"+    include "numpad"+};
+ data/types/extra view
@@ -0,0 +1,161 @@+partial default xkb_types "default" {+    // Definition for a key type used for the czech keymap, for instance.+    // Defines style a with four level shift. It is similar to three_level+    // type used for iso9995 but it lets the shift key behave "normally".++    virtual_modifiers LevelThree;++    type "FOUR_LEVEL" {+        modifiers = Shift+LevelThree;+	map[None] = Level1;+	map[Shift] = Level2;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Alt Base";  +	level_name[Level4] = "Shift Alt";  +    };++    type "FOUR_LEVEL_ALPHABETIC" {+	modifiers = Shift+Lock+LevelThree;+	map[None] = Level1;+	map[Shift] = Level2;+	map[Lock]  = Level2;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	map[Lock+LevelThree] =  Level4;+	map[Lock+Shift+LevelThree] =  Level3;+	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Alt Base";+	level_name[Level4] = "Shift Alt";+    };++    type "FOUR_LEVEL_SEMIALPHABETIC" {+	modifiers = Shift+Lock+LevelThree;+	map[None] = Level1;+	map[Shift] = Level2;+	map[Lock]  = Level2;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	map[Lock+LevelThree] =  Level3;+        map[Lock+Shift+LevelThree] = Level4;+	preserve[Lock+LevelThree] = Lock;+	preserve[Lock+Shift+LevelThree] = Lock;+	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Alt Base";+	level_name[Level4] = "Shift Alt";+    };++    // Another four level keypad variant+    // First two levels are controled by NumLock (with active Shift-ing like+    // in KEYPAD). LevelThree overrides this mode, with two additional+    // Shift-ed levels+    // NumLock state is intentionnaly ignored when LevelThree is active+    type "FOUR_LEVEL_MIXED_KEYPAD" {+        modifiers = Shift+NumLock+LevelThree;+        map[None] = Level1;+        map[Shift+NumLock] = Level1;+        map[NumLock] = Level2;+        map[Shift] = Level2;+        map[LevelThree] = Level3;+	map[NumLock+LevelThree] = Level3;+        map[Shift+LevelThree] = Level4;+	map[Shift+NumLock+LevelThree] = Level4;+        level_name[Level1] = "Base";+        level_name[Level2] = "Number";+        level_name[Level3] = "Alt Base";+        level_name[Level4] = "Shift Alt";+    };++    // Base level, two Shift-ed LevelThree levels, one Ctrl+Alt command level+    type "FOUR_LEVEL_X" {+        modifiers = Shift+LevelThree+Control+Alt;+        map[None] = Level1;+        map[LevelThree] = Level2;+	map[Shift+LevelThree] = Level3;+	map[Control+Alt] = Level4;+        level_name[Level1] = "Base";+        level_name[Level2] = "Alt Base";+        level_name[Level3] = "Shift Alt";+	level_name[Level4] = "Ctrl+Alt";+    };++// Special type for keys used in Serbian Latin Unicode map+// It makes it possible to use all three forms of latin letters +// present in Unicode that are made up of two separate letters +// (forms like LJ, Lj, and lj; NJ, Nj, and nj; etc)++    type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {+        modifiers = Shift+Lock+LevelThree;+        map[None] = Level1;+        map[Shift] = Level2;+        map[Lock] = Level4;+        map[LevelThree] = Level3;+        map[Shift+LevelThree] = Level4;+        map[Lock+LevelThree] =  Level3;+        map[Lock+Shift+LevelThree] = Level3;+        preserve[Lock]= Lock;+        preserve[Lock+LevelThree]= Lock;+        level_name[Level1] = "Base";+        level_name[Level2] = "Shift";+        level_name[Level3] = "AltGr Base";+        level_name[Level4] = "Shift AltGr";+    };++// type for e.g. german ssharp which is capitalized SS.+// CHARACTERISTICS:+// It is FOUR_LEVEL with the exception that the fifth level+// is mapped to the Lock modifier.+// If other modifiers are used, the Lock state is ignored.+// DETAILS ABOUT GERMAN:+// The capital form of ssharp (called sharp s) only exists for+// completely capitalized Text, not at the beginning of sentences+// or nouns (nouns have a captial letter at the beginning in german).+// The ssharp key, to the right of the zero key, takes this into+// account and has a questionmark mapped on shift-ssharp since+// normally no capital version is needed.+// When typing with active capsLock, this key type is needed to+// output two capital letters S because this is the only german key+// whose capital letter is not the same as the one typed with shift.++    type "FOUR_LEVEL_PLUS_LOCK" {+        modifiers = Shift+Lock+LevelThree;+        map[None] = Level1;+        map[Shift] = Level2;+        map[LevelThree] = Level3;+        map[Shift+LevelThree] = Level4;+        map[Lock]  = Level5;+        map[Lock+Shift] = Level2;+        map[Lock+LevelThree] = Level3;+        map[Lock+Shift+LevelThree] = Level4;+        level_name[Level1] = "Base";+        level_name[Level2] = "Shift";+        level_name[Level3] = "Alt Base";+        level_name[Level4] = "Shift Alt";+        level_name[Level5] = "Lock";+    };+};++// This enables the four level shifting also for the keypad.+partial xkb_types "keypad" {+    virtual_modifiers LevelThree;++    type "FOUR_LEVEL_KEYPAD" {+	modifiers = Shift+NumLock+LevelThree;+	map[None] = Level1;+	map[Shift] = Level2;+	map[NumLock] = Level2;+	map[Shift+NumLock] = Level1;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	map[NumLock+LevelThree] = Level4;+	map[Shift+NumLock+LevelThree] = Level3;+	level_name[Level1] = "Base";+	level_name[Level2] = "Number";+	level_name[Level3] = "Alt Base";+	level_name[Level4] = "Alt Number";+    };       +};
+ data/types/iso9995 view
@@ -0,0 +1,18 @@+partial default xkb_types "default" {++    // Definition for a key type which +    // can be used to implement ISO9995+    // style level three shift+    virtual_modifiers LevelThree;++    type "THREE_LEVEL" {+	modifiers = Shift+LevelThree;+	map[None] = Level1;+	map[Shift] = Level2;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level3;+	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Level3";+    };+};
+ data/types/level5 view
@@ -0,0 +1,214 @@+partial default xkb_types "default" {+    // Definition for a key type used for the czech keymap, for instance.+    // Defines style a with four level shift. It is similar to three_level+    // type used for iso9995 but it lets the shift key behave "normally".++    virtual_modifiers LevelThree,ScrollLock,LevelFive;++    type "EIGHT_LEVEL" {+        modifiers = Shift+LevelThree+LevelFive;+	map[None] = Level1;+	map[Shift] = Level2;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	map[LevelFive] = Level5;+	map[Shift+LevelFive] = Level6;+	map[LevelThree+LevelFive] = Level7;+	map[Shift+LevelThree+LevelFive] = Level8;+	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Alt Base";  +	level_name[Level4] = "Shift Alt";  +	level_name[Level5] = "X";+	level_name[Level6] = "X Shift";+	level_name[Level7] = "X Alt Base";+	level_name[Level8] = "X Shift Alt";+    };++    type "EIGHT_LEVEL_ALPHABETIC" {+	modifiers = Shift+Lock+LevelThree+LevelFive;+	map[None] = Level1;+	map[Shift] = Level2;+	map[Lock]  = Level2;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	map[Lock+LevelThree] =  Level4;+        map[Lock+Shift+LevelThree] = Level3;++	map[LevelFive] = Level5;+	map[Shift+LevelFive] = Level6;+	map[Lock+LevelFive]  = Level6;+	map[LevelThree+LevelFive] = Level7;+	map[Shift+LevelThree+LevelFive] = Level8;+	map[Lock+LevelThree+LevelFive] =  Level8;+        map[Lock+Shift+LevelThree+LevelFive] = Level7;++	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Alt Base";+	level_name[Level4] = "Shift Alt";+	level_name[Level5] = "X";+	level_name[Level6] = "X Shift";+	level_name[Level7] = "X Alt Base";+	level_name[Level8] = "X Shift Alt";+    };++//    type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {+//    	// Level5-Lock is implemented by using NumLock, because a real modifier+//    	// is required.+//    	+//        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;+//+//        map[None]                                    = Level1;+//        map[Shift]                                   = Level2;+//        map[LevelThree]                              = Level3;+//        map[LevelThree+Shift]                        = Level4;+//+//        map[LevelFive]                               = Level5;+//        map[LevelFive+Shift]                         = Level6;+//        map[LevelFive+LevelThree]                    = Level7;+//        map[LevelFive+LevelThree+Shift]              = Level8;+//+//        map[NumLock]                                 = Level5;+//        map[NumLock+Shift]                           = Level6;+//        map[NumLock+LevelThree]                      = Level7;+//        map[NumLock+LevelThree+Shift]                = Level8;+//+//        map[NumLock+LevelFive]                       = Level1;+//        map[NumLock+LevelFive+Shift]                 = Level2;+//        map[NumLock+LevelFive+LevelThree]            = Level3;+//        map[NumLock+LevelFive+LevelThree+Shift]      = Level4;+//+//        // Lock has no effect+//        map[Lock]                                    = Level1;+//        map[Lock+Shift]                              = Level2;+//        map[Lock+LevelThree]                         = Level3;+//        map[Lock+LevelThree+Shift]                   = Level4;+//+//        map[Lock+LevelFive]                          = Level5;+//        map[Lock+LevelFive+Shift]                    = Level6;+//        map[Lock+LevelFive+LevelThree]               = Level7;+//        map[Lock+LevelFive+LevelThree+Shift]         = Level8;+//+//        map[Lock+NumLock]                            = Level5;+//        map[Lock+NumLock+Shift]                      = Level6;+//        map[Lock+NumLock+LevelThree]                 = Level7;+//        map[Lock+NumLock+LevelThree+Shift]           = Level8;+//+//        map[Lock+NumLock+LevelFive]                  = Level1;+//        map[Lock+NumLock+LevelFive+Shift]            = Level2;+//        map[Lock+NumLock+LevelFive+LevelThree]       = Level3;+//        map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;+//+//        preserve[LevelFive+Shift] = Shift;+//        preserve[NumLock+Shift] = Shift;+//        preserve[Lock+LevelFive+Shift] = Shift;+//        preserve[Lock+NumLock+Shift] = Shift;+//+//        level_name[Level1] = "Base";+//        level_name[Level2] = "Shift";+//        level_name[Level3] = "Alt Base";+//        level_name[Level4] = "Shift Alt";+//        level_name[Level5] = "X";+//        level_name[Level6] = "X Shift";+//        level_name[Level7] = "X Alt Base";+//        level_name[Level8] = "X Shift Alt";+//    };+//+//    type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {+//    	// Level5-Lock is implemented by using NumLock, because a real modifier+//    	// is required.+//    	+//        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;+//    +//        map[None]                                    = Level1;+//        map[Shift]                                   = Level2;+//        map[LevelThree]                              = Level3;+//        map[LevelThree+Shift]                        = Level4;+//+//        map[LevelFive]                               = Level5;+//        map[LevelFive+Shift]                         = Level6;+//        map[LevelFive+LevelThree]                    = Level7;+//        map[LevelFive+LevelThree+Shift]              = Level8;+//+//        map[NumLock]                                 = Level5;+//        map[NumLock+Shift]                           = Level6;+//        map[NumLock+LevelThree]                      = Level7;+//        map[NumLock+LevelThree+Shift]                = Level8;+//+//        map[NumLock+LevelFive]                       = Level1;+//        map[NumLock+LevelFive+Shift]                 = Level2;+//        map[NumLock+LevelFive+LevelThree]            = Level3;+//        map[NumLock+LevelFive+LevelThree+Shift]      = Level4;+//+//        // Lock interchanges Level1 and Level2+//        map[Lock]                                    = Level2;+//        map[Lock+Shift]                              = Level1;+//        map[Lock+LevelThree]                         = Level3;+//        map[Lock+LevelThree+Shift]                   = Level4;+//+//        map[Lock+LevelFive]                          = Level5;+//        map[Lock+LevelFive+Shift]                    = Level6;+//        map[Lock+LevelFive+LevelThree]               = Level7;+//        map[Lock+LevelFive+LevelThree+Shift]         = Level8;+//+//        map[Lock+NumLock]                            = Level5;+//        map[Lock+NumLock+Shift]                      = Level6;+//        map[Lock+NumLock+LevelThree]                 = Level7;+//        map[Lock+NumLock+LevelThree+Shift]           = Level8;+//+//        map[Lock+NumLock+LevelFive]                  = Level2;+//        map[Lock+NumLock+LevelFive+Shift]            = Level1;+//        map[Lock+NumLock+LevelFive+LevelThree]       = Level4;+//        map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3;+//+//        preserve[LevelFive+Shift] = Shift;+//        preserve[NumLock+Shift] = Shift;+//+//        level_name[Level1] = "Base";+//        level_name[Level2] = "Shift";+//        level_name[Level3] = "Alt Base";+//        level_name[Level4] = "Shift Alt";+//        level_name[Level5] = "X";+//        level_name[Level6] = "X Shift";+//        level_name[Level7] = "X Alt Base";+//        level_name[Level8] = "X Shift Alt";+//    };++    type "EIGHT_LEVEL_SEMIALPHABETIC" {+	modifiers = Shift+Lock+LevelThree+LevelFive;+	map[None] = Level1;+	map[Shift] = Level2;+	map[Lock]  = Level2;+	map[LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	map[Lock+LevelThree] =  Level3;+        map[Lock+Shift+LevelThree] = Level4;++	map[LevelFive] = Level5;+	map[Shift+LevelFive] = Level6;+	map[Lock+LevelFive]  = Level6;+	map[Lock+Shift+LevelFive]  = Level6;+	map[LevelThree+LevelFive] = Level7;+	map[Shift+LevelThree+LevelFive] = Level8;+	map[Lock+LevelThree+LevelFive] =  Level7;+        map[Lock+Shift+LevelThree+LevelFive] = Level8;++	preserve[Lock+LevelThree] = Lock;+	preserve[Lock+Shift+LevelThree] = Lock;+	preserve[Lock+LevelFive] = Lock;+	preserve[Lock+Shift+LevelFive] = Lock;+	preserve[Lock+LevelThree+LevelFive] = Lock;+	preserve[Lock+Shift+LevelThree+LevelFive] = Lock;++	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Alt Base";+	level_name[Level4] = "Shift Alt";+	level_name[Level5] = "X";+	level_name[Level6] = "X Shift";+	level_name[Level7] = "X Alt Base";+	level_name[Level8] = "X Shift Alt";+    };++};
+ data/types/mousekeys view
@@ -0,0 +1,10 @@+partial default xkb_types "default" {+    virtual_modifiers Alt;++    type "SHIFT+ALT" {+   	modifiers = Shift+Alt;+    	map[Shift+Alt] = Level2;+    	level_name[Level1] = "Base";+	level_name[Level2] = "Shift+Alt";+    };+};
+ data/types/numpad view
@@ -0,0 +1,67 @@+partial default xkb_types "pc" {+    type "KEYPAD" {+	modifiers = Shift+NumLock;+	map[None] = Level1;+	map[Shift] = Level2;+	map[NumLock] = Level2;+	map[Shift+NumLock] = Level1;+	level_name[Level1] = "Base";+	level_name[Level2] = "Number";+    };+    include "extra(keypad)"+};++// On Mac keypads, level 1 and 2 are swapped+partial xkb_types "mac" {+    type "KEYPAD" {+	modifiers = None;+	map[None] = Level2;+	level_name[Level2] = "Number";+    };+    include "extra(keypad)"+};++partial xkb_types "microsoft" {+    type "KEYPAD" {+        modifiers = Shift+NumLock;+        map[None] = Level1;+        preserve[Shift] = Shift;+        map[NumLock] = Level2;+        level_name[Level1] = "Base";+        level_name[Level2] = "Number";+    };+    include "extra(keypad)"+};++// Swiss-German style numeric keypad: Shift and NumLock operates as+// two independent modifiers; however, since we want shift state for+// the cursor keys, only three levels are used from the key mappings.+// Closest type is actually FOUR_LEVEL_X, but most numpad layouts uses+// FOUR_LEVEL_MIXED_KEYPAD so that's the one we are going to override.+partial xkb_types "shift3" {+    type "FOUR_LEVEL_MIXED_KEYPAD" {+        modifiers = Shift+NumLock+Control+Alt;++        // NumLock Off => navigate using cursor keys+        map[None] = Level1;++        // NumLock Off + Shift pressed => select using cursor keys+        preserve[Shift] = Shift;++        // NumLock On => decimal digits+        map[NumLock] = Level2;++        // NumLock On + Shift pressed => auxiliary symbols,+        // e.g. hexadecimal digits+        map[Shift+NumLock] = Level3;++        // Ctrl + Alt, regardless of NumLock and Shift => command keys+        map[Control+Alt] = Level4;++        // reverse map from levels to modifiers+        level_name[Level1] = "Base";+        level_name[Level2] = "NumLock";+        level_name[Level3] = "Shift+NumLock";+        level_name[Level4] = "Ctrl+Alt";+    };+};
+ data/types/pc view
@@ -0,0 +1,117 @@+partial default xkb_types "default" {++    // Some types that are necessary+    // for a full implementation of+    // a PC compatible keyboard.+    virtual_modifiers Alt;+    virtual_modifiers LevelThree;+    virtual_modifiers LAlt;+    virtual_modifiers RAlt;+    virtual_modifiers RControl;+    virtual_modifiers LControl;++    type "PC_CONTROL_LEVEL2" {+	modifiers = Control;+	map[None] = Level1;+	map[Control] = Level2;+	level_name[Level1] = "Base";+	level_name[Level2] = "Control";+    };++    type "PC_LCONTROL_LEVEL2" {+	modifiers = LControl;+	map[None] = Level1;+	map[LControl] = Level2;+	level_name[Level1] = "Base";+	level_name[Level2] = "LControl";+    };++    type "PC_RCONTROL_LEVEL2" {+	modifiers = RControl;+	map[None] = Level1;+	map[RControl] = Level2;+	level_name[Level1] = "Base";+	level_name[Level2] = "RControl";+    };++    type "PC_ALT_LEVEL2" {+	modifiers = Alt;+	map[None] = Level1;+	map[Alt] = Level2;+	level_name[Level1] = "Base";+	level_name[Level2] = "Alt";+    };++    type "PC_LALT_LEVEL2" {+	modifiers = LAlt;+	map[None] = Level1;+	map[LAlt] = Level2;+	level_name[Level1] = "Base";+	level_name[Level2] = "LAlt";+    };++    type "PC_RALT_LEVEL2" {+	modifiers = RAlt;+	map[None] = Level1;+	map[RAlt] = Level2;+	level_name[Level1] = "Base";+	level_name[Level2] = "RAlt";+    };++    type "CTRL+ALT" {+        modifiers = Control+Alt+Shift+LevelThree;+        map[None] = Level1;+        map[Shift] = Level2;+        map[LevelThree] = Level3;+        map[Shift+LevelThree] = Level4;+        map[Control+Alt] = Level5;+        preserve[Shift] = Shift;+        preserve[Shift+LevelThree] = Shift;+        level_name[Level1] = "Base";+        level_name[Level2] = "Shift";+        level_name[Level3] = "Alt Base";+        level_name[Level4] = "Shift Alt";+        level_name[Level5] = "Ctrl+Alt";+    };++   // Local eight level+   // Needed when you want part of your layout eight-level but can not use+   // LevelFive as modifier, as this will take over right ctrl by default+   // for all the layout and is too invasive for your average four-level user+   // Needed to fix bug #9529+   // FIXME Should really use RControl but it's seems not to be enabled by+   // default and touching this requires a lot of testing+   type "LOCAL_EIGHT_LEVEL" {+	modifiers = Shift+Lock+LevelThree+Control;++	map[None]       = Level1;+	map[Lock+Shift] = Level1;+	map[Shift] = Level2;+	map[Lock]  = Level2;++	map[LevelThree]            = Level3;+	map[Lock+Shift+LevelThree] = Level3;+	map[Shift+LevelThree] = Level4;+	map[Lock+LevelThree]  = Level4;++	map[Control]            = Level5;+	map[Lock+Shift+Control] = Level5;+	map[Shift+Control] = Level6;+	map[Lock+Control]  = Level6;++	map[LevelThree+Control]            = Level7;+	map[Lock+Shift+LevelThree+Control] = Level7;+	map[Shift+LevelThree+Control] = Level8;+	map[Lock+LevelThree+Control]  = Level8;++	level_name[Level1] = "Base";+	level_name[Level2] = "Shift";+	level_name[Level3] = "Level3";+	level_name[Level4] = "Shift Level3";+	level_name[Level5] = "Ctrl";+	level_name[Level6] = "Shift Ctrl";+	level_name[Level7] = "Level3 Ctrl";+	level_name[Level8] = "Shift Level3 Ctrl";+    };++};
xkbcommon.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                xkbcommon-version:             0.0.2+version:             0.0.3 synopsis:            Haskell bindings for libxkbcommon description:   Wrapper library for libxkbcommon, which is the new alternative for the X11 XKB.h keyboard input@@ -33,6 +33,81 @@ category:            Text build-type:          Custom cabal-version:       >=1.8+extra-source-files:+  -- Used by Setup.hs+  Module.hs+  Utils.hs+  -- test artifacts+  data/compat/accessx+  data/compat/basic+  data/compat/caps+  data/compat/complete+  data/compat/iso9995+  data/compat/ledcaps+  data/compat/lednum+  data/compat/ledscroll+  data/compat/level5+  data/compat/misc+  data/compat/mousekeys+  data/compat/pc+  data/compat/xfree86+  data/keycodes/aliases+  data/keycodes/aliases-xkbcommon+  data/keycodes/empty+  data/keycodes/evdev+  data/keycodes/evdev-xkbcommon+  data/keycodes/xfree86+  data/keymaps/bad.xkb+  data/keymaps/basic.xkb+  data/keymaps/comprehensive-plus-geom.xkb+  data/keymaps/divide-by-zero.xkb+  data/keymaps/no-types.xkb+  data/keymaps/quartz.xkb+  data/keymaps/stringcomp.data+  data/keymaps/unbound-vmod.xkb+  data/rules/base+  data/rules/evdev+  data/rules/evdev-xkbcommon+  data/rules/groups+  data/rules/index+  data/rules/multiple-options+  data/rules/simple+  data/symbols/altwin+  data/symbols/ca+  data/symbols/capslock+  data/symbols/ch+  data/symbols/compose+  data/symbols/ctrl+  data/symbols/cz+  data/symbols/de+  data/symbols/empty+  data/symbols/eurosign+  data/symbols/group+  data/symbols/il+  data/symbols/in+  data/symbols/inet+  data/symbols/keypad+  data/symbols/kpdl+  data/symbols/latin+  data/symbols/level3+  data/symbols/level5+  data/symbols/nbsp+  data/symbols/pc+  data/symbols/ru+  data/symbols/rupeesign+  data/symbols/shift+  data/symbols/srvr_ctrl+  data/symbols/terminate+  data/symbols/us+  data/sync.sh+  data/types/basic+  data/types/complete+  data/types/extra+  data/types/iso9995+  data/types/level5+  data/types/mousekeys+  data/types/numpad+  data/types/pc  source-repository head   type:     git@@ -47,13 +122,13 @@     Text.XkbCommon.ModList,     Text.XkbCommon.Constants,     Text.XkbCommon.Types,+    Text.XkbCommon.InternalTypes,     Text.XkbCommon.Context,     Text.XkbCommon.Keymap,     Text.XkbCommon.KeyboardState,     Text.XkbCommon.Keysym   other-modules:-    Text.XkbCommon.ParseDefines,-    Text.XkbCommon.InternalTypes+    Text.XkbCommon.ParseDefines   -- other-modules:   build-depends:       base <5, transformers, storable-record, process, cpphs, template-haskell, text, bytestring, data-flags, filepath   -- build-tools:         c2hs@@ -115,3 +190,6 @@   other-modules: Common   main-is: stringcomp.hs   build-depends : base, xkbcommon++custom-setup+  setup-depends: base, Cabal, cpphs, directory, filepath, process, template-haskell, text