-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cfc9f30
commit 465aedc
Showing
293 changed files
with
83,067 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
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 the 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 states are essentially the corresponding XKB states, but with | ||
the 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's | ||
features; clients that directly interpret the state field of core-protocol | ||
events or the keymap directly 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
// Minimal set of symbol interpretations to provide | ||
// reasonable default behavior (Num lock, Shift lock, | ||
// 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; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
partial xkb_compatibility "caps_lock" { | ||
// Keysym Caps_Lock locks the Lock modifier. | ||
// With this definition, 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); | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)" | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
// 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; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// Japanese keyboards need the Eisu and Kana Shift | ||
// and Lock keys, which are typically bound to the | ||
// second shift level of some other modifier key. | ||
// These interpretations disable the default | ||
// interpretation (which would have these keys set | ||
// to 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(); | ||
}; | ||
}; | ||
|
||
// Some Japanese keyboards have an explict | ||
// Kana Lock key and matching LED. | ||
partial xkb_compatibility "kana_lock" { | ||
|
||
virtual_modifiers Kana_Lock; | ||
|
||
interpret Kana_Lock+AnyOfOrNone(all) { | ||
virtualModifier= Kana_Lock; | ||
useModMapMods=level1; | ||
action= LockGroup(group=+1); | ||
}; | ||
|
||
indicator "Kana" { | ||
!allowExplicit; | ||
groups= All-Group1; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// Use the 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; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
|
||
default partial xkb_compatibility "compose" { | ||
|
||
virtual_modifiers Compose; | ||
|
||
interpret Multi_key+Any { | ||
virtualModifier= Compose; | ||
action = LatchMods(modifiers=modMapMods); | ||
}; | ||
|
||
indicator "Compose" { | ||
allowExplicit; | ||
whichModState= Latched; | ||
modifiers= Compose; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// Use the 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; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// Use the 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; | ||
}; | ||
}; |
Oops, something went wrong.