xkbcommon 0.0.2 → 0.0.3
raw patch · 75 files changed
+24567/−9 lines, 75 files
Files
- Module.hs +95/−0
- Text/XkbCommon/InternalTypes.hsc +2/−0
- Text/XkbCommon/ParseDefines.hs +7/−6
- Utils.hs +30/−0
- data/compat/accessx +52/−0
- data/compat/basic +48/−0
- data/compat/caps +12/−0
- data/compat/complete +10/−0
- data/compat/iso9995 +76/−0
- data/compat/ledcaps +23/−0
- data/compat/lednum +23/−0
- data/compat/ledscroll +23/−0
- data/compat/level5 +51/−0
- data/compat/misc +122/−0
- data/compat/mousekeys +202/−0
- data/compat/pc +17/−0
- data/compat/xfree86 +66/−0
- data/keycodes/aliases +99/−0
- data/keycodes/aliases-xkbcommon +99/−0
- data/keycodes/empty +4/−0
- data/keycodes/evdev +314/−0
- data/keycodes/evdev-xkbcommon +505/−0
- data/keycodes/xfree86 +410/−0
- data/keymaps/bad.xkb +5/−0
- data/keymaps/basic.xkb +6/−0
- data/keymaps/comprehensive-plus-geom.xkb +1813/−0
- data/keymaps/divide-by-zero.xkb +21/−0
- data/keymaps/no-types.xkb +1025/−0
- data/keymaps/quartz.xkb +1139/−0
- data/keymaps/stringcomp.data +1913/−0
- data/keymaps/unbound-vmod.xkb +1533/−0
- data/rules/base +1197/−0
- data/rules/evdev +1140/−0
- data/rules/evdev-xkbcommon +1092/−0
- data/rules/groups +20/−0
- data/rules/index +28/−0
- data/rules/multiple-options +27/−0
- data/rules/simple +21/−0
- data/symbols/altwin +100/−0
- data/symbols/ca +535/−0
- data/symbols/capslock +74/−0
- data/symbols/ch +225/−0
- data/symbols/compose +89/−0
- data/symbols/ctrl +57/−0
- data/symbols/cz +184/−0
- data/symbols/de +735/−0
- data/symbols/empty +4/−0
- data/symbols/eurosign +23/−0
- data/symbols/group +457/−0
- data/symbols/il +327/−0
- data/symbols/in +1755/−0
- data/symbols/inet +1875/−0
- data/symbols/keypad +632/−0
- data/symbols/kpdl +102/−0
- data/symbols/latin +256/−0
- data/symbols/level3 +208/−0
- data/symbols/level5 +153/−0
- data/symbols/nbsp +204/−0
- data/symbols/pc +90/−0
- data/symbols/ru +677/−0
- data/symbols/rupeesign +5/−0
- data/symbols/shift +84/−0
- data/symbols/srvr_ctrl +125/−0
- data/symbols/terminate +7/−0
- data/symbols/us +1541/−0
- data/sync.sh +67/−0
- data/types/basic +29/−0
- data/types/complete +9/−0
- data/types/extra +161/−0
- data/types/iso9995 +18/−0
- data/types/level5 +214/−0
- data/types/mousekeys +10/−0
- data/types/numpad +67/−0
- data/types/pc +117/−0
- xkbcommon.cabal +81/−3
+ 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', 'ä (ä)' (+<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