From 9bbda6bfbcc29a575ea3b5cb7bd2553767e80d53 Mon Sep 17 00:00:00 2001 From: svu Date: Sat, 10 Apr 2004 02:08:51 +0000 Subject: first feed-in of the layouts. The revolution is coming --- compat/.cvsignore | 2 + compat/Makefile.am | 13 ++++ compat/README | 37 +++++++++++ compat/accessx | 54 ++++++++++++++++ compat/basic | 59 +++++++++++++++++ compat/complete | 10 +++ compat/default | 11 ++++ compat/group_led | 22 +++++++ compat/iso9995 | 84 +++++++++++++++++++++++++ compat/japan | 29 +++++++++ compat/keypad | 60 ++++++++++++++++++ compat/leds | 24 +++++++ compat/misc | 121 +++++++++++++++++++++++++++++++++++ compat/mousekeys | 182 +++++++++++++++++++++++++++++++++++++++++++++++++++++ compat/norepeat | 11 ++++ compat/pc | 18 ++++++ compat/pc98 | 62 ++++++++++++++++++ compat/xfree86 | 57 +++++++++++++++++ compat/xtest | 58 +++++++++++++++++ 19 files changed, 914 insertions(+) create mode 100644 compat/.cvsignore create mode 100644 compat/Makefile.am create mode 100644 compat/README create mode 100644 compat/accessx create mode 100644 compat/basic create mode 100644 compat/complete create mode 100644 compat/default create mode 100644 compat/group_led create mode 100644 compat/iso9995 create mode 100644 compat/japan create mode 100644 compat/keypad create mode 100644 compat/leds create mode 100644 compat/misc create mode 100644 compat/mousekeys create mode 100644 compat/norepeat create mode 100644 compat/pc create mode 100644 compat/pc98 create mode 100644 compat/xfree86 create mode 100644 compat/xtest (limited to 'compat') diff --git a/compat/.cvsignore b/compat/.cvsignore new file mode 100644 index 0000000..282522d --- /dev/null +++ b/compat/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/compat/Makefile.am b/compat/Makefile.am new file mode 100644 index 0000000..b667bd1 --- /dev/null +++ b/compat/Makefile.am @@ -0,0 +1,13 @@ +compat_DATA = \ +accessx basic complete \ +default group_led iso9995 \ +japan keypad leds \ +misc mousekeys norepeat \ +pc pc98 xfree86 \ +xtest README + +EXTRA_DIST= $(compat_DATA) + +compatdir = $(xkb_base)/compat + + diff --git a/compat/README b/compat/README new file mode 100644 index 0000000..fb84d71 --- /dev/null +++ b/compat/README @@ -0,0 +1,37 @@ +The core protocol interpretation of keyboard modifiers does not include direct +support for multiple keyboard groups, so XKB reports the effective keyboard +group to XKB-aware clients using some of reserved bits in the state field of +some core protocol events. This modified state field would not be interpreted +correctly by XKB-unaware clients, so XKB provides a group compatibility mapping +which remaps the keyboard group into a core modifier mask that has similar +effects, when possible. + +XKB maintains three compatibility state components that are used to make +XKB-unaware clients(*) work as well as possible: +- The compatibility state which corresponds to the effective modifier and + effective group state. +- The compatibility lookup state which is the core-protocol equivalent of the + lookup state. +- The compatibility grab state which is the nearest core-protocol equivalent + of the grab state. + +Compatibility state are essentially the corresponding XKB states, but with +keyboard group possibly encoded as one or more modifiers. + +Modifiers that correspond to each keyboard group are described in this +group compatibility map. + + +---- +(*) The implementation of XKB invisibly extends the X library to use the +keyboard extension if it is present. That means, clients that use library or +toolkit routines to interpret keyboard events automatically use all of XKB +features; clients that directly interpret the state field of core protocol +events or the keymap direcly may be affected by some of the XKB differences. +Thus most clients can take all advantages without modification but it also +means that XKB state can be reported to clients that have not explicitly +requested the keyboard extension. + + + +/* $XFree86$ */ diff --git a/compat/accessx b/compat/accessx new file mode 100644 index 0000000..3e4b461 --- /dev/null +++ b/compat/accessx @@ -0,0 +1,54 @@ +// $Xorg: accessx,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +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); + }; +}; diff --git a/compat/basic b/compat/basic new file mode 100644 index 0000000..f369b0b --- /dev/null +++ b/compat/basic @@ -0,0 +1,59 @@ +// $Xorg: basic,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +// 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. + +// $XFree86: xc/programs/xkbcomp/compat/basic,v 1.2 2000/11/06 19:24:10 dawes Exp $ + +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; + + indicator.allowExplicit= False; + indicator "Caps Lock" { + whichModState= Locked; + modifiers= Lock; + }; + indicator "Num Lock" { + whichModState= Locked; + modifiers= NumLock; + }; + indicator "Shift Lock" { + whichModState= Locked; + modifiers= Shift; + }; + indicator.allowExplicit= True; +}; diff --git a/compat/complete b/compat/complete new file mode 100644 index 0000000..68f89c8 --- /dev/null +++ b/compat/complete @@ -0,0 +1,10 @@ +// $Xorg: complete,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ +default xkb_compatibility "complete" { + include "basic" + augment "iso9995" + augment "mousekeys" + augment "accessx(full)" + augment "misc" + augment "xfree86" +}; + diff --git a/compat/default b/compat/default new file mode 100644 index 0000000..7cea0f8 --- /dev/null +++ b/compat/default @@ -0,0 +1,11 @@ +// $Xorg: default,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ +default xkb_compatibility "default" { + include "basic" + augment "mousekeys" + augment "accessx(basic)" + augment "misc" + augment "iso9995" +// ??should be changed/renamed/removed +// augment "xfree86" + augment "japan" +}; diff --git a/compat/group_led b/compat/group_led new file mode 100644 index 0000000..0805fa6 --- /dev/null +++ b/compat/group_led @@ -0,0 +1,22 @@ +// $XFree86: xc/programs/xkbcomp/compat/group_led,v 1.1.2.2 1999/07/22 14:21:30 hohndel Exp $ +// This is a "default" compatibility with a small modification: +// an "Scroll Lock" LED now shows the active keyboard group +default xkb_compatibility "group_led" { + include "basic" + augment "mousekeys" + augment "accessx(basic)" + augment "misc" + augment "iso9995" + augment "japan" +// This is to make Mode_switch working even in group 2 + virtual_modifiers AltGr; + interpret Mode_switch { + useModMapMods= level1; + virtualModifier= AltGr; + action= SetGroup(group=+1); + }; + indicator "Scroll Lock" { + allowExplicit; + groups= All-Group1; + }; +}; diff --git a/compat/iso9995 b/compat/iso9995 new file mode 100644 index 0000000..d513c1c --- /dev/null +++ b/compat/iso9995 @@ -0,0 +1,84 @@ +// $Xorg: iso9995,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +// Fairly complete set of symbol interpretations +// to provide reasonable default behavior + +// $XFree86: xc/programs/xkbcomp/compat/iso9995,v 1.3 2003/02/21 03:16:34 dawes Exp $ + +default partial xkb_compatibility "default" { + virtual_modifiers LevelThree,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret ISO_Lock+Any { + action= ISOLock(affect= all,modifiers=modMapMods); + }; + + 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; + }; +}; diff --git a/compat/japan b/compat/japan new file mode 100644 index 0000000..34bcc09 --- /dev/null +++ b/compat/japan @@ -0,0 +1,29 @@ +// $Xorg: japan,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +// Japanese keyboards need Eisu and Kana shift and +// lock keys, which are typically bound to the +// second shift level for some other modifier key. +// These interpretations disable the default +// interpretation (which would have these keys set +// the same modifier as the level one symbol). + +default partial xkb_compatibility "japan" { + + interpret.repeat= False; + + interpret Eisu_Shift+Lock { + action= NoAction(); + }; + + interpret Eisu_toggle+Lock { + action= NoAction(); + }; + + interpret Kana_Shift+Lock { + action= NoAction(); + }; + + interpret Kana_Lock+Lock { + action= NoAction(); + }; +}; diff --git a/compat/keypad b/compat/keypad new file mode 100644 index 0000000..469edec --- /dev/null +++ b/compat/keypad @@ -0,0 +1,60 @@ +// $Xorg: keypad,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +// Interpretations needed to implement the numeric keypad +// as an overlay instead of a modifier. + +partial hidden xkb_compatibility "overlay" { + include "keypad(overlay1)" +}; +partial hidden xkb_compatibility "overlay1" { + virtual_modifiers NumLock,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret Num_Lock { + virtualModifier= NumLock; + action= LockControls(ctrls=overlay1); + }; + interpret Num_Lock+Any { + virtualModifier= NumLock; + action= LockControls(ctrls=overlay1); + }; + + indicator.allowExplicit= True; + indicator.driveskbd= True; + replace indicator "Num Lock" { + whichModState= Locked; + modifiers= NumLock; + controls= Overlay1; + }; + indicator.allowExplicit= True; +}; +partial hidden xkb_compatibility "overlay2" { + virtual_modifiers NumLock,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret Num_Lock { + virtualModifier= NumLock; + action= LockControls(ctrls=overlay2); + }; + interpret Num_Lock+Any { + virtualModifier= NumLock; + action= LockControls(ctrls=overlay1); + }; + + indicator.allowExplicit= True; + indicator.driveskbd= True; + replace indicator "Num Lock" { + whichModState= Locked; + modifiers= NumLock; + controls= Overlay2; + }; + indicator.allowExplicit= True; +}; diff --git a/compat/leds b/compat/leds new file mode 100644 index 0000000..3d61606 --- /dev/null +++ b/compat/leds @@ -0,0 +1,24 @@ +// Use keyboard LEDs to show alternative group +// +// $XFree86$ + +partial xkb_compatibility "scroll" { + indicator "Scroll Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "num" { + indicator "Num Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "caps" { + indicator "Caps Lock" { + modifiers= None; + groups=All-group1; + }; +}; diff --git a/compat/misc b/compat/misc new file mode 100644 index 0000000..e1dbfd5 --- /dev/null +++ b/compat/misc @@ -0,0 +1,121 @@ +// $XdotOrg: xc/programs/xkbcomp/compat/misc,v 1.1.4.4 2004/03/05 13:41:28 eich Exp $ +// $Xorg: misc,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ +// +// +// +// $XFree86: xc/programs/xkbcomp/compat/misc,v 1.4 2003/05/15 13:31:57 pascal Exp $ + +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=Alt); + }; + + // 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); + }; + + indicator "Scroll Lock" { + allowExplicit; + whichModState= Locked; + modifiers= ScrollLock; + }; +}; diff --git a/compat/mousekeys b/compat/mousekeys new file mode 100644 index 0000000..6e9a208 --- /dev/null +++ b/compat/mousekeys @@ -0,0 +1,182 @@ + +// $Xorg: mousekeys,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +// 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); + }; + + 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; + }; +}; diff --git a/compat/norepeat b/compat/norepeat new file mode 100644 index 0000000..07b0b7a --- /dev/null +++ b/compat/norepeat @@ -0,0 +1,11 @@ +// $Xorg: norepeat,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + +// Put any otherwise normal keys that you don't want to repeat in +// this file + +default partial xkb_compatibility "norepeat" { + interpret Return { + action= NoAction(); + repeat= False; + }; +}; diff --git a/compat/pc b/compat/pc new file mode 100644 index 0000000..5ce7d76 --- /dev/null +++ b/compat/pc @@ -0,0 +1,18 @@ +// $Xorg: pc,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ +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); + }; +}; diff --git a/compat/pc98 b/compat/pc98 new file mode 100644 index 0000000..23f3f79 --- /dev/null +++ b/compat/pc98 @@ -0,0 +1,62 @@ +// $Xorg: pc98,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ + + + + +// $XFree86: xc/programs/xkbcomp/compat/pc98,v 3.1 1997/10/26 13:25:33 dawes Exp $ + +// 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=2,clearLocks); + }; + + interpret Any + Any { + action= SetMods(modifiers=modMapMods); + }; + + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + + indicator.allowExplicit= False; + indicator "Caps Lock" { + whichModState= Locked; + modifiers= Lock; + }; + indicator "Num Lock" { + whichModState= Locked; + modifiers= NumLock; + }; + indicator "Shift Lock" { + whichModState= Locked; + modifiers= Shift; + }; + indicator.allowExplicit= True; +}; diff --git a/compat/xfree86 b/compat/xfree86 new file mode 100644 index 0000000..2da65fd --- /dev/null +++ b/compat/xfree86 @@ -0,0 +1,57 @@ +// $XFree86$ +// 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 XF86_Ungrab { + action = Private(type=0x86, data="Ungrab"); + }; + interpret XF86_ClearGrab { + action = Private(type=0x86, data="ClsGrb"); + }; + interpret XF86_Next_VMode { + action = Private(type=0x86, data="+VMode"); + }; + interpret XF86_Prev_VMode { + action = Private(type=0x86, data="-VMode"); + }; +}; diff --git a/compat/xtest b/compat/xtest new file mode 100644 index 0000000..a35ced9 --- /dev/null +++ b/compat/xtest @@ -0,0 +1,58 @@ +// $Xorg: xtest,v 1.3 2000/08/17 19:54:34 cpqbld Exp $ +default xkb_compatibility "xtest" { + + // Minimal set of symbol interpretations to provide + // reasonable behavior for testing. The X Test + // Suite assumes that it can set any modifier by + // simulating a KeyPress and clear it by simulating + // a KeyRelease. Because of the way that XKB + // implements locking/latching modifiers, this + // approach fails in some cases (typically the + // lock or num lock modifiers). These symbol + // interpretations make all modifier keys just + // set the corresponding modifier so that xtest + // will see the behavior it expects. + + virtual_modifiers NumLock,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= False; + + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= SetMods(modifiers=Shift); + }; + + interpret Num_Lock+Any { + virtualModifier= NumLock; + action= SetMods(modifiers=NumLock); + }; + + interpret Mode_switch { + useModMapMods= level1; + virtualModifier= AltGr; + action= SetGroup(group=2); + }; + + interpret Any + Any { + action= SetMods(modifiers=modMapMods); + }; + + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + + indicator.allowExplicit= False; + indicator "Caps Lock" { + modifiers= Lock; + }; + indicator "Num Lock" { + modifiers= NumLock; + }; + indicator "Shift Lock" { + whichModState= Locked; + modifiers= Shift; + }; + indicator.allowExplicit= True; +}; -- cgit v1.2.1