summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2014-10-16 17:48:00 +0300
committerRan Benita <ran234@gmail.com>2014-10-17 01:19:03 +0300
commitc6ee6371b5c3cef7884bff790b3d366cb18e84be (patch)
tree8166fb6f2e07d441344adee4a836178c43c89bc7
parent30e7445d846e45f68dd21fd6d954eb7806adc8bd (diff)
downloadxorg-lib-libxkbcommon-c6ee6371b5c3cef7884bff790b3d366cb18e84be.tar.gz
test/data: sync to xkeyboard-config 2.13
(Run ./test/data/sync.sh). Signed-off-by: Ran Benita <ran234@gmail.com>
-rw-r--r--test/data/compat/accessx10
-rw-r--r--test/data/compat/basic11
-rw-r--r--test/data/compat/caps15
-rw-r--r--test/data/compat/complete2
-rw-r--r--test/data/compat/iso99959
-rw-r--r--test/data/compat/ledcaps35
-rw-r--r--test/data/compat/lednum33
-rw-r--r--test/data/compat/ledscroll35
-rw-r--r--test/data/compat/level531
-rw-r--r--test/data/compat/misc68
-rw-r--r--test/data/compat/mousekeys153
-rw-r--r--test/data/compat/pc10
-rw-r--r--test/data/compat/xfree864
-rw-r--r--test/data/keycodes/xfree864
-rw-r--r--test/data/rules/base111
-rw-r--r--test/data/rules/evdev57
-rw-r--r--test/data/symbols/altwin107
-rw-r--r--test/data/symbols/ca42
-rw-r--r--test/data/symbols/capslock60
-rw-r--r--test/data/symbols/ch35
-rw-r--r--test/data/symbols/ctrl88
-rw-r--r--test/data/symbols/cz173
-rw-r--r--test/data/symbols/de125
-rw-r--r--test/data/symbols/empty2
-rw-r--r--test/data/symbols/group323
-rw-r--r--test/data/symbols/il136
-rw-r--r--test/data/symbols/in517
-rw-r--r--test/data/symbols/inet264
-rw-r--r--test/data/symbols/keypad131
-rw-r--r--test/data/symbols/latin26
-rw-r--r--test/data/symbols/level3115
-rw-r--r--test/data/symbols/level591
-rw-r--r--test/data/symbols/pc45
-rw-r--r--test/data/symbols/ru838
-rw-r--r--test/data/symbols/shift29
-rw-r--r--test/data/symbols/srvr_ctrl51
-rw-r--r--test/data/symbols/terminate2
-rw-r--r--test/data/symbols/us174
-rw-r--r--test/data/types/basic13
-rw-r--r--test/data/types/extra71
-rw-r--r--test/data/types/iso99956
-rw-r--r--test/data/types/level534
-rw-r--r--test/data/types/mousekeys6
-rw-r--r--test/data/types/numpad8
-rw-r--r--test/data/types/pc25
45 files changed, 2251 insertions, 1874 deletions
diff --git a/test/data/compat/accessx b/test/data/compat/accessx
index 0ed34ce..6dd6ca9 100644
--- a/test/data/compat/accessx
+++ b/test/data/compat/accessx
@@ -1,17 +1,17 @@
default partial xkb_compatibility "basic" {
- interpret AccessX_Enable {
- action= LockControls(controls=AccessXKeys);
+ interpret AccessX_Enable {
+ action= LockControls(controls=AccessXKeys);
};
};
partial xkb_compatibility "full" {
interpret AccessX_Enable {
- action= LockControls(controls=AccessXKeys);
+ action= LockControls(controls=AccessXKeys);
};
- interpret AccessX_Feedback_Enable {
- action= LockControls(controls=AccessXFeedback);
+ interpret AccessX_Feedback_Enable {
+ action= LockControls(controls=AccessXFeedback);
};
interpret RepeatKeys_Enable {
diff --git a/test/data/compat/basic b/test/data/compat/basic
index 393c324..745cbba 100644
--- a/test/data/compat/basic
+++ b/test/data/compat/basic
@@ -1,10 +1,11 @@
-// Minimal set of symbol interpretations to provide
-// reasonable default behavior (Num lock, shift and
-// caps lock and mode switch) and set up the
+// 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;
+default xkb_compatibility "basic" {
+
+ virtual_modifiers NumLock,AltGr;
interpret.repeat= False;
setMods.clearLocks= True;
diff --git a/test/data/compat/caps b/test/data/compat/caps
index d787ab6..4793051 100644
--- a/test/data/compat/caps
+++ b/test/data/compat/caps
@@ -1,11 +1,10 @@
-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.
+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);
};
diff --git a/test/data/compat/complete b/test/data/compat/complete
index d33c4db..8f77538 100644
--- a/test/data/compat/complete
+++ b/test/data/compat/complete
@@ -1,4 +1,4 @@
-default xkb_compatibility "complete" {
+default xkb_compatibility "complete" {
include "basic"
augment "iso9995"
augment "mousekeys"
diff --git a/test/data/compat/iso9995 b/test/data/compat/iso9995
index 76188d1..0f3025b 100644
--- a/test/data/compat/iso9995
+++ b/test/data/compat/iso9995
@@ -1,8 +1,9 @@
-// Fairly complete set of symbol interpretations
-// to provide reasonable default behavior
+// Fairly complete set of symbol interpretations
+// to provide reasonable default behavior.
-default partial xkb_compatibility "default" {
- virtual_modifiers LevelThree,AltGr;
+default partial xkb_compatibility "default" {
+
+ virtual_modifiers LevelThree,AltGr;
interpret.repeat= False;
setMods.clearLocks= True;
diff --git a/test/data/compat/ledcaps b/test/data/compat/ledcaps
index fc3084e..f1460ba 100644
--- a/test/data/compat/ledcaps
+++ b/test/data/compat/ledcaps
@@ -1,23 +1,24 @@
-// Use Caps Lock LED to show either Caps Lock, Group, or Shift Lock state
+// 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;
- };
+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 "group_lock" {
+ indicator "Caps Lock" {
+ modifiers= None;
+ groups=All-group1;
+ };
};
-partial xkb_compatibility "shift_lock" {
- indicator "Caps Lock" {
- whichModState= Locked;
- modifiers= Shift;
- };
+partial xkb_compatibility "shift_lock" {
+ indicator "Caps Lock" {
+ whichModState= Locked;
+ modifiers= Shift;
+ };
};
diff --git a/test/data/compat/lednum b/test/data/compat/lednum
index 24a60a5..bfdcd74 100644
--- a/test/data/compat/lednum
+++ b/test/data/compat/lednum
@@ -1,23 +1,24 @@
-// Use Num Lock LED to show either Num Lock, Group, or Shift Lock state
+// Use the Num Lock LED to show either
+// Num Lock, Group, or Shift Lock state.
-default partial xkb_compatibility "num_lock" {
+default partial xkb_compatibility "num_lock" {
indicator "Num Lock" {
- !allowExplicit;
- whichModState= Locked;
- modifiers= NumLock;
- };
+ !allowExplicit;
+ whichModState= Locked;
+ modifiers= NumLock;
+ };
};
-partial xkb_compatibility "group_lock" {
- indicator "Num Lock" {
- modifiers= None;
- groups=All-group1;
- };
+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;
- };
+partial xkb_compatibility "shift_lock" {
+ indicator "Num Lock" {
+ whichModState= Locked;
+ modifiers= Shift;
+ };
};
diff --git a/test/data/compat/ledscroll b/test/data/compat/ledscroll
index ca5a82c..a241698 100644
--- a/test/data/compat/ledscroll
+++ b/test/data/compat/ledscroll
@@ -1,23 +1,24 @@
-// Use Scroll Lock LED to show either Scroll Lock, Group, or Shift Lock state
+// 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;
- };
+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 "group_lock" {
+ indicator "Scroll Lock" {
+ modifiers= None;
+ groups=All-group1;
+ };
};
-partial xkb_compatibility "shift_lock" {
- indicator "Scroll Lock" {
- whichModState= Locked;
- modifiers= Shift;
- };
+partial xkb_compatibility "shift_lock" {
+ indicator "Scroll Lock" {
+ whichModState= Locked;
+ modifiers= Shift;
+ };
};
diff --git a/test/data/compat/level5 b/test/data/compat/level5
index 8d28051..54f749d 100644
--- a/test/data/compat/level5
+++ b/test/data/compat/level5
@@ -1,8 +1,9 @@
-// Fairly complete set of symbol interpretations
-// to provide reasonable default behavior
+// Fairly complete set of symbol interpretations
+// to provide reasonable default behavior.
-default partial xkb_compatibility "default" {
- virtual_modifiers LevelFive;
+default partial xkb_compatibility "default" {
+
+ virtual_modifiers LevelFive;
interpret.repeat= False;
setMods.clearLocks= True;
@@ -20,6 +21,7 @@ default partial xkb_compatibility "default" {
};
interpret ISO_Level5_Latch+Any {
+ useModMapMods= level1;
virtualModifier= LevelFive;
action= LatchMods(modifiers=LevelFive);
};
@@ -29,6 +31,7 @@ default partial xkb_compatibility "default" {
};
interpret ISO_Level5_Lock+Any {
+ useModMapMods= level1;
virtualModifier= LevelFive;
action= LockMods(modifiers=LevelFive);
};
@@ -37,15 +40,17 @@ default partial xkb_compatibility "default" {
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;
-
+
+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);
+ action = LockMods(modifiers = NumLock);
};
};
diff --git a/test/data/compat/misc b/test/data/compat/misc
index cfe9a39..964f471 100644
--- a/test/data/compat/misc
+++ b/test/data/compat/misc
@@ -1,122 +1,122 @@
-default partial xkb_compatibility "misc" {
+default partial xkb_compatibility "misc" {
- virtual_modifiers Alt,Meta,Super,Hyper,ScrollLock;
+ virtual_modifiers Alt,Meta,Super,Hyper,ScrollLock;
- // Interpretations for some other useful keys
+ // Interpretations for some other useful keys.
interpret Terminate_Server {
- action = Terminate();
+ action = Terminate();
};
setMods.clearLocks= True;
- // Sets the "Alt" virtual modifier
+ // Sets the "Alt" virtual modifier.
- interpret Alt_L+Any {
+ interpret Alt_L+Any {
//useModMapMods= level1;
virtualModifier= Alt;
action = SetMods(modifiers=modMapMods);
};
- interpret Alt_L {
+ interpret Alt_L {
action = SetMods(modifiers=Alt);
};
- interpret Alt_R+Any {
+ interpret Alt_R+Any {
//useModMapMods= level1;
virtualModifier= Alt;
action = SetMods(modifiers=modMapMods);
};
- interpret Alt_R {
+ interpret Alt_R {
action = SetMods(modifiers=Alt);
};
- // Sets the "Meta" virtual modifier
+ // Sets the "Meta" virtual modifier.
- interpret Meta_L+Any {
-// useModMapMods= level1;
+ interpret Meta_L+Any {
+ //useModMapMods= level1;
virtualModifier= Meta;
action = SetMods(modifiers=modMapMods);
};
- interpret Meta_L {
+ interpret Meta_L {
action = SetMods(modifiers=Meta);
};
- interpret Meta_R+Any {
+ interpret Meta_R+Any {
//useModMapMods= level1;
virtualModifier= Meta;
action = SetMods(modifiers=modMapMods);
};
- interpret Meta_R {
+ interpret Meta_R {
action = SetMods(modifiers=Meta);
};
- // Sets the "Super" virtual modifier
+ // Sets the "Super" virtual modifier.
- interpret Super_L+Any {
-// useModMapMods= level1;
+ interpret Super_L+Any {
+ //useModMapMods= level1;
virtualModifier= Super;
action = SetMods(modifiers=modMapMods);
};
- interpret Super_L {
+ interpret Super_L {
action = SetMods(modifiers=Super);
};
- interpret Super_R+Any {
+ interpret Super_R+Any {
//useModMapMods= level1;
virtualModifier= Super;
action = SetMods(modifiers=modMapMods);
};
- interpret Super_R {
+ interpret Super_R {
action = SetMods(modifiers=Super);
};
- // Sets the "Hyper" virtual modifier
+ // Sets the "Hyper" virtual modifier.
- interpret Hyper_L+Any {
-// useModMapMods= level1;
+ interpret Hyper_L+Any {
+ //useModMapMods= level1;
virtualModifier= Hyper;
action = SetMods(modifiers=modMapMods);
};
- interpret Hyper_L {
+ interpret Hyper_L {
action = SetMods(modifiers=Hyper);
};
- interpret Hyper_R+Any {
+ interpret Hyper_R+Any {
//useModMapMods= level1;
virtualModifier= Hyper;
action = SetMods(modifiers=modMapMods);
};
- interpret Hyper_R {
+ 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 {
+ 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.
+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);
+ action = SetMods(modifiers = Shift);
};
};
diff --git a/test/data/compat/mousekeys b/test/data/compat/mousekeys
index f60c756..6b96fbc 100644
--- a/test/data/compat/mousekeys
+++ b/test/data/compat/mousekeys
@@ -1,147 +1,147 @@
-// 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.
+// 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_1 {
+ action = MovePtr(x=-1,y= +1);
};
- interpret KP_End {
- 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_2 {
+ action = MovePtr(x=+0,y= +1);
};
- interpret KP_Down {
- 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_3 {
+ action = MovePtr(x=+1,y=+1);
};
- interpret KP_Next {
- 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_4 {
+ action = MovePtr(x=-1,y=+0);
};
- interpret KP_Left {
- 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_6 {
+ action = MovePtr(x=+1,y=+0);
};
- interpret KP_Right {
- 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_7 {
+ action = MovePtr(x=-1,y=-1);
};
- interpret KP_Home {
- 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_8 {
+ action = MovePtr(x=+0,y=-1);
};
- interpret KP_Up {
- 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_9 {
+ action = MovePtr(x=+1,y=-1);
};
- interpret KP_Prior {
- action = MovePtr(x=+1,y=-1);
+ interpret KP_Prior {
+ action = MovePtr(x=+1,y=-1);
};
- interpret KP_5 {
- action = PointerButton(button=default);
+ interpret KP_5 {
+ action = PointerButton(button=default);
};
- interpret KP_Begin {
- action = PointerButton(button=default);
+ interpret KP_Begin {
+ action = PointerButton(button=default);
};
- interpret KP_F2 {
- action = SetPtrDflt(affect=defaultButton,button=1);
+ interpret KP_F2 {
+ action = SetPtrDflt(affect=defaultButton,button=1);
};
- interpret KP_Divide {
- 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_F3 {
+ action = SetPtrDflt(affect=defaultButton,button=2);
};
- interpret KP_Multiply {
- 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_F4 {
+ action = SetPtrDflt(affect=defaultButton,button=3);
};
- interpret KP_Subtract {
- 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_Separator {
+ action = PointerButton(button=default,count=2);
};
- interpret KP_Add {
+ interpret KP_Add {
action = PointerButton(button=default,count=2);
};
- interpret KP_0 {
- action = LockPointerButton(button=default,affect=lock);
+ interpret KP_0 {
+ action = LockPointerButton(button=default,affect=lock);
};
- interpret KP_Insert {
- 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_Decimal {
+ action = LockPointerButton(button=default,affect=unlock);
};
- interpret KP_Delete {
- action = LockPointerButton(button=default,affect=unlock);
+ interpret KP_Delete {
+ action = LockPointerButton(button=default,affect=unlock);
};
- // Additional mappings for Solaris keypad compatibility
+ // Additional mappings for Solaris keypad compatibility.
+
interpret F25 { // aka KP_Divide
- action = SetPtrDflt(affect=defaultButton,button=1);
+ action = SetPtrDflt(affect=defaultButton,button=1);
};
interpret F26 { // aka KP_Multiply
- action = SetPtrDflt(affect=defaultButton,button=2);
+ action = SetPtrDflt(affect=defaultButton,button=2);
};
interpret F27 { // aka KP_Home
- action = MovePtr(x=-1,y=-1);
+ action = MovePtr(x=-1,y=-1);
};
interpret F29 { // aka KP_Prior
- action = MovePtr(x=+1,y=-1);
+ action = MovePtr(x=+1,y=-1);
};
interpret F31 { // aka KP_Begin
- action = PointerButton(button=default);
+ action = PointerButton(button=default);
};
interpret F33 { // aka KP_End
- action = MovePtr(x=-1,y= +1);
+ action = MovePtr(x=-1,y= +1);
};
interpret F35 { // aka KP_Next
- action = MovePtr(x=+1,y=+1);
+ action = MovePtr(x=+1,y=+1);
};
interpret.repeat= False;
+ // New keysym actions.
- // New Keysym Actions.
- //
interpret Pointer_Button_Dflt {
action= PointerButton(button=default);
};
@@ -166,7 +166,7 @@ default partial xkb_compatibility "mousekeys" {
interpret Pointer_DblClick3 {
action= PointerButton(button=3,count=2);
};
- interpret Pointer_Drag_Dflt {
+ interpret Pointer_Drag_Dflt {
action= LockPointerButton(button=default);
};
interpret Pointer_Drag1 {
@@ -192,10 +192,9 @@ default partial xkb_compatibility "mousekeys" {
action= SetPtrDflt(affect=defaultButton,button= -1);
};
-
// Allow an indicator for MouseKeys.
indicator "Mouse Keys" {
-// !allowExplicit;
+ //!allowExplicit;
indicatorDrivesKeyboard;
controls= MouseKeys;
};
diff --git a/test/data/compat/pc b/test/data/compat/pc
index e970795..f69b54d 100644
--- a/test/data/compat/pc
+++ b/test/data/compat/pc
@@ -1,16 +1,16 @@
-default partial xkb_compatibility "pc" {
+default partial xkb_compatibility "pc" {
- // Sets the "Alt" virtual modifier
+ // Sets the "Alt" virtual modifier.
- virtual_modifiers Alt;
+ virtual_modifiers Alt;
setMods.clearLocks= True;
- interpret Alt_L+Any {
+ interpret Alt_L+Any {
virtualModifier= Alt;
action = SetMods(modifiers=modMapMods);
};
- interpret Alt_R+Any {
+ interpret Alt_R+Any {
virtualModifier= Alt;
action = SetMods(modifiers=modMapMods);
};
diff --git a/test/data/compat/xfree86 b/test/data/compat/xfree86
index 52e661d..cc43819 100644
--- a/test/data/compat/xfree86
+++ b/test/data/compat/xfree86
@@ -1,6 +1,6 @@
-// XFree86 special keysyms
+// XFree86 special keysyms.
-default partial xkb_compatibility "basic" {
+default partial xkb_compatibility "basic" {
interpret.repeat= True;
diff --git a/test/data/keycodes/xfree86 b/test/data/keycodes/xfree86
index 0c91018..47dc893 100644
--- a/test/data/keycodes/xfree86
+++ b/test/data/keycodes/xfree86
@@ -163,9 +163,7 @@ xkb_keycodes "basic" {
// 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;
@@ -287,7 +285,9 @@ xkb_keycodes "basic" {
<I7A> = 250;
<I7B> = 251;
<I7C> = 252;
+ alias <IR7C> = <I7C>;
<I7D> = 253;
+ alias <IR7D> = <I7D>;
<I7E> = 254;
<I7F> = 255;
diff --git a/test/data/rules/base b/test/data/rules/base
index fab8ad6..5f02efa 100644
--- a/test/data/rules/base
+++ b/test/data/rules/base
@@ -40,45 +40,6 @@
! $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 \
@@ -102,8 +63,6 @@
vn \
za
-! $evdevkbds = ibm_spacesaver
-
! $thinkpads = thinkpad thinkpad60 thinkpadz60
! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \
@@ -125,6 +84,61 @@
! $htcdreamlayouts = us it de
+! $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
+
+! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \
+ cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \
+ armada presario dellm65 inspiron dellusbmm diamond \
+ ennyah_dkb1008 genius geniuscomfy2 hpi6 hpxe3gc hpxe3gf \
+ hpxt1000 hpzt11xx hpdv5 hpxe4xxx hp5xx thinkpad60 ogitech_base \
+ logidinovo logidinovoedge logitech_g15 mx1998 mx2500 mx2750 \
+ microsoft4000 microsoft7000 microsoftprooem microsoftmult \
+ propeller samsung4500 samsung4510 sk1300 sk2500 sk7100 \
+ toshiba_s3000 trust trustda cymotionlinux silvercrest \
+ emachines benqx unitekkb1925 creativedw7000 compalfl90 \
+ pc105 a4techKB21 a4techKBS8 a4_rfkb23 asus_laptop btc6301urf \
+ dexxa dtk2000 fscaa1667g geniuskb19e geniuscomfy latitude \
+ microsoftpro precision_m scorpius sp_inet targa_v811 thinkpad \
+ tm2030USB-102 tm2030USB-106 trust_slimline
+
! $dvoraklayouts = br ca de ee es fr gb no pl se us
! model = keycodes
@@ -957,24 +971,32 @@
sun_type7_jp_usb = +sun_vndr/solaris(defaults_type7jp)
$sun = +sun_vndr/solaris(defaults)
+! model layout = symbols
+ $inetmediakbds jp = +jp(henkan)
+
! layout variant = compat
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de adnw = +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)
+ de adnw = +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
+ de adnw = +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
+ de adnw = +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
+ de adnw = +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
@@ -1025,6 +1047,7 @@
altwin:hyper_win = +altwin(hyper_win)
altwin:alt_super_win = +altwin(alt_super_win)
altwin:swap_alt_win = +altwin(swap_alt_win)
+ grab:debug = +srvr_ctrl(grab_debug)
grp:switch = +group(switch)
grp:lswitch = +group(lswitch)
grp:win_switch = +group(win_switch)
@@ -1038,6 +1061,7 @@
grp:caps_switch = +capslock(groupshift)
grp:shift_caps_toggle = +group(shift_caps_toggle)
grp:shift_caps_switch = +group(shift_caps_switch)
+ grp:win_space_toggle = +group(win_space_toggle)
grp:win_menu_switch = +group(win_menu_switch)
grp:alt_caps_toggle = +group(alt_caps_toggle)
grp:alt_space_toggle = +group(alt_space_toggle)
@@ -1094,6 +1118,10 @@
ctrl:rctrl_ralt = +ctrl(rctrl_ralt)
ctrl:menu_rctrl = +ctrl(menu_rctrl)
ctrl:ralt_rctrl = +ctrl(ralt_rctrl)
+ ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl)
+ ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl)
+ ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl)
+ ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin)
compose:ralt = +compose(ralt)
compose:lwin = +compose(lwin)
compose:lwin-altgr = +compose(lwin-altgr)
@@ -1147,6 +1175,7 @@
shift:breaks_caps = +shift(breaks_caps)
esperanto:qwerty = +epo(qwerty)
esperanto:dvorak = +epo(dvorak)
+ esperanto:colemak = +epo(colemak)
terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp)
keypad:pointerkeys = +keypad(pointerkeys)
apple:alupckeys = +macintosh_vndr/apple(alupckeys)
diff --git a/test/data/rules/evdev b/test/data/rules/evdev
index b1dd7e6..f58e5b2 100644
--- a/test/data/rules/evdev
+++ b/test/data/rules/evdev
@@ -40,45 +40,6 @@
! $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 \
@@ -102,8 +63,6 @@
vn \
za
-! $evdevkbds = ibm_spacesaver
-
! $thinkpads = thinkpad thinkpad60 thinkpadz60
! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \
@@ -125,6 +84,8 @@
! $htcdreamlayouts = us it de
+! $evdevkbds = ibm_spacesaver
+
! $dvoraklayouts = br ca de ee es fr gb no pl se us
! model = keycodes
@@ -900,24 +861,31 @@
applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys)
* = +inet(evdev)
+! model layout = symbols
+
! layout variant = compat
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ de adnw = +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)
+ de adnw = +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
+ de adnw = +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
+ de adnw = +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
+ de adnw = +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
@@ -968,6 +936,7 @@
altwin:hyper_win = +altwin(hyper_win)
altwin:alt_super_win = +altwin(alt_super_win)
altwin:swap_alt_win = +altwin(swap_alt_win)
+ grab:debug = +srvr_ctrl(grab_debug)
grp:switch = +group(switch)
grp:lswitch = +group(lswitch)
grp:win_switch = +group(win_switch)
@@ -981,6 +950,7 @@
grp:caps_switch = +capslock(groupshift)
grp:shift_caps_toggle = +group(shift_caps_toggle)
grp:shift_caps_switch = +group(shift_caps_switch)
+ grp:win_space_toggle = +group(win_space_toggle)
grp:win_menu_switch = +group(win_menu_switch)
grp:alt_caps_toggle = +group(alt_caps_toggle)
grp:alt_space_toggle = +group(alt_space_toggle)
@@ -1037,6 +1007,10 @@
ctrl:rctrl_ralt = +ctrl(rctrl_ralt)
ctrl:menu_rctrl = +ctrl(menu_rctrl)
ctrl:ralt_rctrl = +ctrl(ralt_rctrl)
+ ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl)
+ ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl)
+ ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl)
+ ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin)
compose:ralt = +compose(ralt)
compose:lwin = +compose(lwin)
compose:lwin-altgr = +compose(lwin-altgr)
@@ -1090,6 +1064,7 @@
shift:breaks_caps = +shift(breaks_caps)
esperanto:qwerty = +epo(qwerty)
esperanto:dvorak = +epo(dvorak)
+ esperanto:colemak = +epo(colemak)
terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp)
keypad:pointerkeys = +keypad(pointerkeys)
apple:alupckeys = +macintosh_vndr/apple(alupckeys)
diff --git a/test/data/symbols/altwin b/test/data/symbols/altwin
index d22013d..76a289a 100644
--- a/test/data/symbols/altwin
+++ b/test/data/symbols/altwin
@@ -1,100 +1,109 @@
-partial modifier_keys
+// Meta is mapped to second level of Alt keys.
+partial modifier_keys
xkb_symbols "meta_alt" {
- key <LALT> { [ Alt_L, Meta_L ] };
+ 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 {};
+ 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
+// 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 ] };
+ 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
+// Ctrl 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 ] };
+ 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
+// Ctrl is mapped to the Alt keys, Alt to the Win keys, and Win to the Ctrl keys.
+partial modifier_keys
xkb_symbols "ctrl_alt_win" {
- key <LALT> { [ Control_L, Control_L ] };
+ 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 ] };
+ key <LWIN> { [ Alt_L, Meta_L ] };
+ key <RWIN> { [ Alt_R, Meta_R ] };
+ key <LCTL> { [ Super_L ] };
+ key <RCTL> { [ Super_R ] };
modifier_map Control { <RALT>, <LALT> };
- modifier_map Mod1 { <LWIN>, <RWIN> };
+ modifier_map Mod1 { <LWIN>, <RWIN> };
+ modifier_map Mod4 { <LCTL>, <RCTL> };
};
-
-partial modifier_keys
+// Meta is mapped to the Win keys.
+partial modifier_keys
xkb_symbols "meta_win" {
- key <LALT> { [ Alt_L, Alt_L ] };
+ 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 };
+ 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
+// Meta is mapped to the left Win key.
+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 };
+ key <LALT> { [ Alt_L, Alt_L ] };
+ key <LWIN> { [ Meta_L ] };
+ modifier_map Mod1 { Alt_L };
+ modifier_map Mod4 { <META>, Meta_L };
};
-partial modifier_keys
+// Hyper is mapped to the Win keys.
+partial modifier_keys
xkb_symbols "hyper_win" {
- key <LWIN> { [ Hyper_L ] };
- key <RWIN> { [ Hyper_R ] };
- modifier_map Mod4 { Hyper_L, Hyper_R };
+ key <LWIN> { [ Hyper_L ] };
+ key <RWIN> { [ Hyper_R ] };
+ modifier_map Mod4 { Hyper_L, Hyper_R };
};
-// Use Menu for the menu key
-partial modifier_keys
+// Menu is mapped to the Menu key.
+partial modifier_keys
xkb_symbols "menu" {
- key <MENU> { [ Menu ] };
+ key <MENU> { [ Menu ] };
};
// Layout for Tux key caps with additional right Alt key
-partial modifier_keys
+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 };
+ 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
+// Swap the Alt and Win keys.
+partial modifier_keys
xkb_symbols "swap_alt_win" {
include "altwin(swap_lalt_lwin)"
include "altwin(swap_ralt_rwin)"
};
-partial hidden modifier_keys
+// Swap the left Alt and Win keys.
+hidden partial modifier_keys
xkb_symbols "swap_lalt_lwin" {
key <LALT> { type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Super_L ] };
- key <LWIN> { [ Alt_L, Meta_L ] };
+ key <LWIN> { [ Alt_L, Meta_L ] };
};
-partial hidden modifier_keys
+// Swap the right Alt and Win keys.
+hidden partial modifier_keys
xkb_symbols "swap_ralt_rwin" {
key <RALT> { type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Super_R ] };
- key <RWIN> { [ Alt_R, Meta_R ] };
+ key <RWIN> { [ Alt_R, Meta_R ] };
};
diff --git a/test/data/symbols/ca b/test/data/symbols/ca
index e939953..2ba48b4 100644
--- a/test/data/symbols/ca
+++ b/test/data/symbols/ca
@@ -1,4 +1,4 @@
-default partial
+default partial
xkb_symbols "fr" {
name[Group1] = "French (Canada)";
@@ -122,10 +122,10 @@ xkb_symbols "fr-dvorak" {
partial
xkb_symbols "fr-legacy" {
- name[Group1] = "French (Canada, legacy)";
-
include "ca(fr)"
+ name[Group1] = "French (Canada, legacy)";
+
key <TLDE> { [ degree, degree, notsign ] };
key <AE01> { [ 1, exclam, onesuperior ] };
@@ -168,10 +168,10 @@ xkb_symbols "fr-legacy" {
partial
xkb_symbols "multi" {
- name[Group1] = "Canadian Multilingual (first part)";
-
include "ca(fr)"
+ name[Group1] = "Canadian Multilingual (first part)";
+
key <TLDE> { [ slash, backslash, bar ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
@@ -259,14 +259,13 @@ xkb_symbols "multi-2gr" {
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
+alphanumeric_keys
xkb_symbols "ike" {
name[Group1]= "Inuktitut";
@@ -323,8 +322,6 @@ xkb_symbols "ike" {
key <TLDE> { [ 0x0100157b, 0x01001575 ] };
key <LSGT> { [ 0x01001579, 0x01001577 ] };
key <BKSL> { [ backslash, bar ] };
-
-// End alphanumeric section
};
partial
@@ -455,35 +452,33 @@ xkb_symbols "multix" {
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
+partial alphanumeric_keys
xkb_symbols "eng" {
- name[Group1] = "English (Canada)";
include "us(basic)"
+ name[Group1] = "English (Canada)";
};
// EXTRAS:
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "kut" {
- //Ejective U0313 and compose accents are from shs layout
+ // Ejective U0313 and acute accents are taken from shs layout.
include "ca(shs)"
name[Group1]= "Kutenai";
- // Alphanumeric section
-
// Alveolar Click
key <AD05> { [ t, T,U01C2 ,U01C2 ] };
@@ -505,17 +500,16 @@ xkb_symbols "kut" {
// Secwepemctsin keyboard for X11
// written by Neskie Manuel <neskiem@gmail.com>
-
-partial alphanumeric_keys
+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.
+ // Using a "dead key" to get a COMBINING COMMA ABOVE
+ // for ejectives on q, l, t, s, m, g, k, p, w, y, r.
+ // The Compose key is used for the other acutes and grave.
key <AB08> { [ comma, less, U0313 ] };
key <AC01> { [ a, A, aacute, Aacute ] };
diff --git a/test/data/symbols/capslock b/test/data/symbols/capslock
index 3e08805..3f4a0cd 100644
--- a/test/data/symbols/capslock
+++ b/test/data/symbols/capslock
@@ -1,74 +1,74 @@
-default partial hidden modifier_keys
+default hidden partial modifier_keys
xkb_symbols "capslock" {
- replace key <CAPS> { [ Caps_Lock ] };
+ replace key <CAPS> { [ Caps_Lock ] };
modifier_map Lock { Caps_Lock };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "shiftlock" {
- replace key <CAPS> { [ Shift_Lock ] };
+ replace key <CAPS> { [ Shift_Lock ] };
modifier_map Shift { Shift_Lock };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "grouplock" {
- replace key <CAPS> { [ ISO_Next_Group, Caps_Lock ] };
+ replace key <CAPS> { [ ISO_Next_Group, Caps_Lock ] };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "swapescape" {
- key <CAPS> { [ Escape ] };
- key <ESC> { [ Caps_Lock ] };
+ key <CAPS> { [ Escape ] };
+ key <ESC> { [ Caps_Lock ] };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "groupshift" {
key <CAPS> {
- type[Group1]="PC_ALT_LEVEL2",
- [ Mode_switch, Caps_Lock ]
+ type[Group1] = "PC_ALT_LEVEL2",
+ [ Mode_switch, Caps_Lock ]
};
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "escape" {
- key <CAPS> { [ Escape ] };
+ key <CAPS> { [ Escape ] };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "backspace" {
- key <CAPS> { [ BackSpace ] };
+ key <CAPS> { [ BackSpace ] };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "super" {
- key <CAPS> { [ Super_L ] };
- modifier_map Mod4 { <CAPS> };
+ key <CAPS> { [ Super_L ] };
+ modifier_map Mod4 { <CAPS> };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "hyper" {
- key <CAPS> { [ Hyper_L ] };
- modifier_map Mod4 { <CAPS> };
+ key <CAPS> { [ Hyper_L ] };
+ modifier_map Mod4 { <CAPS> };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "none" {
- key <CAPS> { [ VoidSymbol ] };
+ key <CAPS> { [ VoidSymbol ] };
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "numlock" {
- key <CAPS> { [ Num_Lock ] };
+ 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
+// This changes the <CAPS> key to become a Control modifier,
+// but it will still produce the Caps_Lock keysym.
+hidden partial modifier_keys
xkb_symbols "ctrl_modifier" {
replace key <CAPS> {
type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Caps_Lock ],
- actions[Group1] = [ SetMods(modifiers=Control) ]
+ actions[Group1] = [ SetMods(modifiers=Control) ]
};
modifier_map Control { <CAPS> };
};
diff --git a/test/data/symbols/ch b/test/data/symbols/ch
index 989a2df..62c69f9 100644
--- a/test/data/symbols/ch
+++ b/test/data/symbols/ch
@@ -1,10 +1,9 @@
-partial default alphanumeric_keys
+default partial 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 ] };
@@ -37,7 +36,7 @@ xkb_symbols "basic" {
include "level3(ralt_switch)"
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "legacy" {
include "ch(basic)"
@@ -45,12 +44,12 @@ xkb_symbols "legacy" {
key <AE07> { [ 7, slash, brokenbar ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "de" {
include "ch(basic)"
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "de_Sundeadkeys" {
// modify the basic Swiss German layout to use Sun dead keys
include "ch(basic)"
@@ -59,13 +58,13 @@ xkb_symbols "de_Sundeadkeys" {
key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "de_sundeadkeys" {
include "ch(de_Sundeadkeys)"
name[Group1]= "German (Switzerland, Sun dead keys)";
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "de_nodeadkeys" {
// modify the basic Swiss German layout not to have any dead keys
include "ch(basic)"
@@ -75,12 +74,9 @@ xkb_symbols "de_nodeadkeys" {
key <AD12> { [ diaeresis, exclam, bracketright ] };
};
-partial alphanumeric_keys
+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)";
@@ -127,10 +123,8 @@ xkb_symbols "fr_nodeadkeys" {
partial alphanumeric_keys
xkb_symbols "de_mac" {
-
- name[Group1]= "German (Switzerland, Macintosh)";
- // Alphanumeric section
+ name[Group1]= "German (Switzerland, Macintosh)";
key <AE01> { [ 1, plus, plusminus, infinity ] };
key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
@@ -149,7 +143,7 @@ xkb_symbols "de_mac" {
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 <AD05> { [ t, T, dagger, Icircumflex ] };
key <AD06> { [ z, Z, Greek_OMEGA, Iacute ] };
key <AD07> { [ u, U, degree, Ugrave ] };
key <AD08> { [ i, I, exclamdown, idotless ] };
@@ -158,7 +152,7 @@ xkb_symbols "de_mac" {
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 ] };
+ key <AC02> { [ s, S, ssharp, NoSymbol ] };
// ligature fl
key <AC03> { [ d, D, Greek_sigma, NoSymbol ] };
// partialderivative is not available here att
@@ -174,7 +168,7 @@ xkb_symbols "de_mac" {
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 <AB05> { [ b, B, integral, NoSymbol ] };
key <AB06> { [ n, N, dead_tilde, enopencircbullet ] };
// to be fixed att
key <AB07> { [ m, M, mu, dead_abovering ] };
@@ -192,12 +186,9 @@ xkb_symbols "de_mac" {
include "level3(ralt_switch)"
};
-partial alphanumeric_keys
+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)";
diff --git a/test/data/symbols/ctrl b/test/data/symbols/ctrl
index 09d76b5..dd68add 100644
--- a/test/data/symbols/ctrl
+++ b/test/data/symbols/ctrl
@@ -1,57 +1,87 @@
-// eliminate the caps lock key completely (replace with control)
-partial modifier_keys
+// Eliminate CapsLock, making it another Ctrl.
+partial modifier_keys
xkb_symbols "nocaps" {
- replace key <CAPS> { [ Control_L, Control_L ] };
+ replace key <CAPS> { [ Control_L, Control_L ] };
modifier_map Control { <CAPS>, <LCTL> };
};
-// replace left control with Meta
+// Make the left Ctrl key a left Meta.
xkb_symbols "lctrl_meta" {
- replace key <LCTL> { [ Meta_L ] };
+ replace key <LCTL> { [ Meta_L ] };
};
-// swap the caps lock key with the left control key
-partial modifier_keys
+// Swap the functions of the CapsLock key and the left Ctrl key.
+partial modifier_keys
xkb_symbols "swapcaps" {
- replace key <CAPS> { [ Control_L ] };
- replace key <LCTL> { [ Caps_Lock ] };
+ 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
+// Move Ctrl to the leftmost key on the middle row and CapsLock to the
+// leftmost key on the bottom row. Only works if the geometry or keycodes
// file has defined appropriate aliases for the keys in question.
-partial modifier_keys
+partial modifier_keys
xkb_symbols "ac_ctrl" {
- replace key <AC00> { [ Control_L ] };
- replace key <AA00> { [ Caps_Lock ] };
+ 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
+// Move Ctrl to the leftmost key on the bottom row and CapsLock to the
+// leftmost key on the middle row. Only works if the geometry or keycodes
// file has defined appropriate aliases for the keys in question.
-partial modifier_keys
+partial modifier_keys
xkb_symbols "aa_ctrl" {
- replace key <AA00> { [ Control_L ] };
- replace key <AC00> { [ Caps_Lock ] };
+ replace key <AA00> { [ Control_L ] };
+ replace key <AC00> { [ Caps_Lock ] };
};
-// Right Ctrl works as Right Alt
-partial modifier_keys
+// Right Ctrl key functions as another right Alt.
+partial modifier_keys
xkb_symbols "rctrl_ralt" {
- key <RCTL> { symbols[Group1]= [ Alt_R ] };
+ key <RCTL> { symbols[Group1]= [ Alt_R ] };
};
-// Menu works as Right Ctrl
+// Menu key functions as another right Ctrl.
partial modifier_keys
xkb_symbols "menu_rctrl" {
- replace key <MENU> { [ Control_R, Control_R ] };
- modifier_map Control { Control_L, <MENU> };
+ replace key <MENU> { [ Control_R, Control_R ] };
+ modifier_map Control { Control_L, <MENU> };
};
-// right alt functions as another ctrl key
-partial modifier_keys
+// Right Alt key functions as another right Ctrl.
+partial modifier_keys
xkb_symbols "ralt_rctrl" {
- replace key <RALT> { type[Group1] = "TWO_LEVEL",
+ replace key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Control_R, Control_R ] };
- modifier_map Control { <RALT> };
+ modifier_map Control { <RALT> };
+};
+
+// Swap the functions of the left Alt key and the left Ctrl key.
+partial modifier_keys
+xkb_symbols "swap_lalt_lctl" {
+ replace key <LALT> { [ Control_L, Control_L ] };
+ replace key <LCTL> { [ Alt_L, Meta_L ] };
+};
+
+// Swap the functions of the left Win key and the left Ctrl key.
+partial modifier_keys
+xkb_symbols "swap_lwin_lctl" {
+ replace key <LWIN> { [ Control_L ] };
+ replace key <LCTL> { [ Super_L ] };
+};
+
+// Swap the functions of the right Win key and the right Ctrl key.
+partial modifier_keys
+xkb_symbols "swap_rwin_rctl" {
+ replace key <RWIN> { [ Control_R ] };
+ replace key <RCTL> { [ Super_R ] };
+};
+
+// Map Ctrl to the left Alt key, Alt to the left Win key,
+// and Super to the left Ctrl key.
+partial modifier_keys
+xkb_symbols "swap_lalt_lctl_lwin" {
+ replace key <LALT> { [ Control_L, Control_L ] };
+ replace key <LWIN> { [ Alt_L, Meta_L ] };
+ replace key <LCTL> { [ Super_L ] };
};
diff --git a/test/data/symbols/cz b/test/data/symbols/cz
index 336050c..97ab3cf 100644
--- a/test/data/symbols/cz
+++ b/test/data/symbols/cz
@@ -1,117 +1,118 @@
-partial default alphanumeric_keys
+default partial 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"
+ // This layout conforms to a new Czech 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 ] };
+ 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" {
+
+ // Use <BKSL> instead of <LSGT> (useful for keyboards without <LSGT> key).
+
include "cz(basic)"
name[Group1]= "Czech (with <\|> key)";
- key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
+ key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
};
-partial alphanumeric_keys
+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>
-
+
+ // This layout represents the actual Czech keyboards;
+ // it complies with the symbols printed on the keys.
+ // 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 ] };
+ 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)"
+ // Use <BKSL> instead of <LSGT> (useful for keyboards without <LSGT> key).
+
+ include "cz(qwerty)"
name[Group1]= "Czech (qwerty, extended Backslash)";
- key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
+ 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.
+ // 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)";
@@ -149,10 +150,10 @@ xkb_symbols "ucw" {
partial alphanumeric_keys
xkb_symbols "dvorak-ucw" {
- // US Dvorak layout extend with UCW - AltGr produces accented characters
+ // US Dvorak layout extended with UCW,
+ // AltGr produces accented characters.
include "us(dvorak)"
-
name[Group1]= "Czech (US Dvorak with CZ UCW support)";
key <AB03> { [ j, J, eacute, Eacute ] };
diff --git a/test/data/symbols/de b/test/data/symbols/de
index 20689af..944732e 100644
--- a/test/data/symbols/de
+++ b/test/data/symbols/de
@@ -39,7 +39,7 @@ xkb_symbols "basic" {
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 <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] };
key <AB08> { [ comma, semicolon, periodcentered, multiply ] };
key <AB09> { [ period, colon, U2026, division ] };
key <AB10> { [ minus, underscore, endash, emdash ] };
@@ -107,8 +107,6 @@ xkb_symbols "deadacute" {
partial alphanumeric_keys
xkb_symbols "T3" {
- include "latin(type4)"
-
name[Group1]="German (T3)";
key.type[Group1] = "EIGHT_LEVEL";
@@ -151,7 +149,7 @@ xkb_symbols "T3" {
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 <AC08> { [ k, K, dead_belowcomma, NoSymbol, kra, dead_belowcomma, dead_stroke, 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 ] };
@@ -176,10 +174,12 @@ xkb_symbols "T3" {
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)"
+ include "level5(modifier_mapping)"
+ include "level3(modifier_mapping)"
+ key.type[Group1] = "THREE_LEVEL";
+ key <LFSH> { [ Shift_L, Shift_L, ISO_Level5_Latch ] };
+ key <RTSH> { [ Shift_R, Shift_R, ISO_Level5_Latch ] };
+ key <RALT> { [ ISO_Level3_Latch, ISO_Level5_Latch, ISO_Level5_Latch ] };
};
partial alphanumeric_keys
@@ -221,7 +221,7 @@ xkb_symbols "ro_nodeadkeys" {
// 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
+partial alphanumeric_keys
xkb_symbols "dvorak" {
include "us(dvorak)"
@@ -479,13 +479,12 @@ xkb_symbols "neo" {
// Copied from macintosh_vndr/de
// olh@suse.de very close to MacOS map
-partial alphanumeric_keys
+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 ] };
@@ -497,7 +496,7 @@ xkb_symbols "mac" {
key <AD07> { [ u, U, diaeresis, Aacute ] };
key <AD08> { [ i, I, slash, Ucircumflex ] };
key <AD11> { [ udiaeresis, Udiaeresis, periodcentered, degree ] };
- key <AD12> { [ plus, asterisk, asciitilde ] };
+ key <AD12> { [ plus, asterisk, asciitilde ] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC05> { [ g, G, copyright ] };
key <AC06> { [ h, H, ordfeminine ] };
@@ -507,14 +506,14 @@ xkb_symbols "mac" {
};
-partial alphanumeric_keys
+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 <AE04> { [ 4, dollar, onequarter, currency ] };
key <AE12> { [ acute, grave, cedilla ] };
key <AD11> { [ udiaeresis, Udiaeresis, diaeresis ] };
key <AD12> { [ plus, asterisk, asciitilde, macron ] };
@@ -527,10 +526,8 @@ xkb_symbols "mac_nodeadkeys" {
partial alphanumeric_keys
xkb_symbols "dsb"
{
- name[Group1] = "Lower Sorbian";
include "latin(basic)"
- include "level3(ralt_switch)"
- include "kpdl(comma)"
+ name[Group1] = "Lower Sorbian";
key <AB01> { [ z, Z, zcaron, Zcaron ] };
key <AB02> { [ x, X, zacute, Zacute ] };
key <AB03> { [ c, C, cacute, Cacute ] };
@@ -545,15 +542,15 @@ xkb_symbols "dsb"
key <AD04> { [ r, R, racute, Racute ] };
key <AD05> { [ t, T, U20B5, EuroSign ] };
key <AD09> { [ o, O, oacute, Oacute ] };
+ include "kpdl(comma)"
+ include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "dsb_qwertz"
{
- name[Group1] = "Lower Sorbian (qwertz)";
include "latin(basic)"
- include "level3(ralt_switch)"
- include "kpdl(comma)"
+ name[Group1] = "Lower Sorbian (qwertz)";
key <AB01> { [ y, Y ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C, cacute, Cacute ] };
@@ -570,15 +567,17 @@ xkb_symbols "dsb_qwertz"
key <AD06> { [ z, Z, zcaron, Zcaron ] };
key <AD07> { [ u, U, zacute, Zacute ] };
key <AD09> { [ o, O, oacute, Oacute ] };
+ include "kpdl(comma)"
+ include "level3(ralt_switch)"
};
-partial alphanumeric_keys
+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)";
@@ -595,10 +594,10 @@ partial alphanumeric_keys
xkb_symbols "ru" {
include "de(basic)"
-
+
name[Group1]= "Russian (Germany, phonetic)";
-key.type[group1]="FOUR_LEVEL_ALPHABETIC";
+ key.type[group1]="FOUR_LEVEL_ALPHABETIC";
key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
@@ -682,6 +681,24 @@ xkb_symbols "htcdream" {
include "level3(alt_switch)"
};
+partial alphanumeric_keys
+xkb_symbols "tr" {
+
+ // add turkish-specific letters to the basic German layout.
+ // Turkish symbols are accessible with combination of <AltGr> and
+ // 'i', 's', 'g', 'c'' (+<Shift> for capital letters).
+
+ include "de(basic)"
+
+ name[Group1]="Turkish (Germany)";
+
+ key <AD08> { [ i, I, U0131, U0130 ] };
+ key <AC02> { [ s, S, U015F, U015E ] };
+ key <AC05> { [ g, G, U011F, U011E ] };
+ key <AB03> { [ c, C, U0E7, U0C7 ] };
+
+};
+
// EXTRAS:
partial alphanumeric_keys
@@ -725,11 +742,65 @@ xkb_symbols "hu" {
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)"
};
+
+partial alphanumeric_keys
+xkb_symbols "adnw_base" {
+ include "de(neo_base)"
+
+ key.type[Group1] = "EIGHT_LEVEL";
+ key <AD04> { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] };
+ key <AB04> { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] };
+
+ key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+ key <AD01> { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] };
+ key <AD02> { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] };
+ key <AD03> { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] };
+ key <AD05> { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] };
+ key <AD06> { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] };
+ key <AD07> { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] };
+ key <AD08> { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] };
+ key <AD09> { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] };
+ key <AD10> { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] };
+ key <AD11> { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] };
+ key <AC01> { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] };
+ key <AC02> { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] };
+ key <AC03> { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] };
+ key <AC04> { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] };
+ key <AC05> { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] };
+ key <AC06> { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] };
+ key <AC07> { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] };
+ key <AC08> { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] };
+ key <AC09> { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] };
+ key <AC10> { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] };
+ key <AC11> { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] };
+ key <AB01> { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] };
+ key <AB02> { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] };
+ key <AB03> { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] };
+ key <AB05> { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] };
+ key <AB06> { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] };
+ key <AB07> { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] };
+ key <AB08> { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] };
+ key <AB09> { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] };
+ key <AB10> { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] };
+};
+
+partial alphanumeric_keys modifier_keys keypad_keys
+xkb_symbols "adnw" {
+
+ include "de(adnw_base)"
+
+ name[Group1]= "German (Aus der Neo-Welt)";
+
+ include "shift(both_capslock)"
+ include "level3(caps_switch)"
+ include "level3(bksl_switch)"
+ include "level5(lsgt_switch)"
+ include "level5(ralt_switch)"
+};
+
diff --git a/test/data/symbols/empty b/test/data/symbols/empty
index cae3303..acdd677 100644
--- a/test/data/symbols/empty
+++ b/test/data/symbols/empty
@@ -1,4 +1,4 @@
-default partial alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "Empty";
};
diff --git a/test/data/symbols/group b/test/data/symbols/group
index fb2f879..8b00dff 100644
--- a/test/data/symbols/group
+++ b/test/data/symbols/group
@@ -1,108 +1,101 @@
-// using the group(switch) map, the right alt key temporarily chooses
-// the second keyboard group (until it is released).
-//
-partial modifier_keys
+// The right Alt key (while pressed) chooses the second keyboard group.
+partial modifier_keys
xkb_symbols "switch" {
- key <RALT> {
- symbols[Group1]= [ Mode_switch, Multi_key ],
- virtualMods= AltGr
+ 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
+// The left Alt key (while pressed) chooses the second keyboard group.
+partial modifier_keys
xkb_symbols "lswitch" {
- key <LALT> {
- symbols[Group1]= [ Mode_switch, Multi_key ],
- virtualMods= AltGr
+ 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.
+// Either Win key (while pressed) chooses the second keyboard group.
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.
+// The left Win key (while pressed) chooses the second keyboard group.
+// (Using this map, you should declare your 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
+ 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.
+// The right Win key (while pressed) chooses the second keyboard group.
+// (Using this map, you should declare your 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
+ key <RWIN> {
+ symbols[Group1] = [ Mode_switch, Multi_key ],
+ virtualMods= AltGr
};
};
-// Right Ctrl key temporary chooses the second keyboard group.
-// Needed mainly for Canadian keyboard
+// The right Ctrl key (while pressed) chooses the second keyboard group.
+// (Needed mainly for the Canadian keyboard.)
partial modifier_keys
xkb_symbols "rctrl_switch" {
- key <RCTL> {
- symbols[Group1]= [ Mode_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
+// Pressing the right Alt key switches to the next group.
+partial modifier_keys
xkb_symbols "toggle" {
virtual_modifiers AltGr;
- key <RALT> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= 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
+// Pressing both Shift keys switches to the next or previous group
+// (depending on which Shift is pressed first).
+partial modifier_keys
xkb_symbols "shifts_toggle" {
- key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
- key <RTSH> { [ Shift_R, ISO_Next_Group ] };
+ 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
+// Pressing Shift+Caps_Lock switches to the next group.
partial modifier_keys
xkb_symbols "shift_caps_toggle" {
- key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
+ 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
+// Pressing Caps_Lock selects the first group,
+// pressing 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
+// toggle using win + space as combo
+partial modifier_keys
+xkb_symbols "win_space_toggle" {
+ key <SPCE> {
+ type[Group1]="PC_SUPER_LEVEL2",
+ symbols[Group1]= [ space, ISO_Next_Group ]
+ };
+};
+
+// Pressing the left Win key selects the first group,
+// pressing the right Win or the Menu key selects the last group.
partial modifier_keys
xkb_symbols "win_menu_switch" {
virtual_modifiers AltGr;
@@ -120,9 +113,8 @@ xkb_symbols "win_menu_switch" {
};
};
-// using the group(lctrl_rctrl_switch) map, pressing:
-// Left Control selects the first group
-// Right Control selects the last group
+// Pressing the left Ctrl key selects the first group,
+// pressing the right Ctrl key selects the last group.
partial modifier_keys
xkb_symbols "lctrl_rctrl_switch" {
virtual_modifiers AltGr;
@@ -140,20 +132,20 @@ xkb_symbols "lctrl_rctrl_switch" {
//
// CTRL-SHIFT toggle section
//
-partial modifier_keys
+partial modifier_keys
xkb_symbols "lctrl_lshift_toggle" {
key <LFSH> {
type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ Shift_L, ISO_Next_Group ]
+ symbols[Group1] = [ Shift_L, ISO_Next_Group ]
};
key <LCTL> { [ Control_L, ISO_Next_Group ] };
};
-partial modifier_keys
+partial modifier_keys
xkb_symbols "lctrl_lshift_toggle_rev" {
key <LFSH> {
type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
+ symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
};
key <LCTL> { [ Control_L, ISO_Prev_Group ] };
};
@@ -162,18 +154,18 @@ partial modifier_keys
xkb_symbols "rctrl_rshift_toggle" {
key <RTSH> {
type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ Shift_R, ISO_Next_Group ]
+ symbols[Group1] = [ Shift_R, ISO_Next_Group ]
};
key <RCTL> { [ Control_R, ISO_Next_Group ] };
};
-partial modifier_keys
+partial modifier_keys
xkb_symbols "ctrl_shift_toggle" {
include "group(lctrl_lshift_toggle)"
include "group(rctrl_rshift_toggle)"
};
-partial modifier_keys
+partial modifier_keys
xkb_symbols "ctrl_shift_toggle_bidir" {
include "group(lctrl_lshift_toggle_rev)"
include "group(rctrl_rshift_toggle)"
@@ -188,12 +180,12 @@ xkb_symbols "lctrl_lalt_toggle" {
virtual_modifiers Alt;
key <LALT> {
type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <LCTL> {
type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Control_L, ISO_Next_Group ]
+ symbols[Group1] = [ Control_L, ISO_Next_Group ]
};
};
@@ -202,12 +194,12 @@ xkb_symbols "lctrl_lalt_toggle_rev" {
virtual_modifiers Alt;
key <LALT> {
type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
+ symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
virtualMods= Alt
};
key <LCTL> {
type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Control_L, ISO_Prev_Group ]
+ symbols[Group1] = [ Control_L, ISO_Prev_Group ]
};
};
@@ -216,22 +208,22 @@ xkb_symbols "rctrl_ralt_toggle" {
virtual_modifiers Alt;
key <RALT> {
type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <RCTL> {
type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Control_R, ISO_Next_Group ]
+ symbols[Group1] = [ Control_R, ISO_Next_Group ]
};
};
-partial modifier_keys
+partial modifier_keys
xkb_symbols "ctrl_alt_toggle" {
include "group(lctrl_lalt_toggle)"
include "group(rctrl_ralt_toggle)"
};
-partial modifier_keys
+partial modifier_keys
xkb_symbols "ctrl_alt_toggle_bidir" {
include "group(lctrl_lalt_toggle_rev)"
include "group(rctrl_ralt_toggle)"
@@ -245,12 +237,12 @@ partial modifier_keys
xkb_symbols "lalt_lshift_toggle" {
virtual_modifiers Alt;
key <LALT> {
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <LFSH> {
type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Shift_L, ISO_Next_Group ]
+ symbols[Group1] = [ Shift_L, ISO_Next_Group ]
};
};
@@ -258,12 +250,12 @@ partial modifier_keys
xkb_symbols "lalt_lshift_toggle_rev" {
virtual_modifiers Alt;
key <LALT> {
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
+ symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
virtualMods= Alt
};
key <LFSH> {
type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
+ symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
};
};
@@ -271,187 +263,186 @@ partial modifier_keys
xkb_symbols "ralt_rshift_toggle" {
virtual_modifiers Alt;
key <RALT> {
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
};
key <RTSH> {
type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Shift_R, ISO_Next_Group ]
+ symbols[Group1] = [ Shift_R, ISO_Next_Group ]
};
};
-partial modifier_keys
+partial modifier_keys
xkb_symbols "alt_shift_toggle" {
include "group(lalt_lshift_toggle)"
include "group(ralt_rshift_toggle)"
};
-partial modifier_keys
+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
+// Pressing the Menu key switches to the next group,
+// while Shift+Menu acts as Menu.
partial modifier_keys
xkb_symbols "menu_toggle" {
- key <MENU> { [ ISO_Next_Group, Menu ] };
+ 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.
+// Pressing the left Win key switches to the next group.
+// (Using this map, you should declare your 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 ]
+ 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.
+// Pressing the right Win key switches to the next group.
+// (Using this map, you should declare your 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 ]
+ virtual_modifiers AltGr;
+ key <RWIN> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_Next_Group ]
};
};
-// Both Ctrls pressed together toggle group
+// Pressing both Ctrl keys switches to the next or previous group
+// (depending on which Ctrl is pressed first).
partial modifier_keys
xkb_symbols "ctrls_toggle" {
- virtual_modifiers LControl, RControl;
+ virtual_modifiers LControl, RControl;
key <LCTL> {
- type[Group1]="PC_RCONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
- virtualMods= LControl
+ 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
+ type[Group1]="PC_LCONTROL_LEVEL2",
+ symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
+ virtualMods= RControl
};
};
-// Both Alts pressed together toggle group
+// Pressing both Alt keys switches to the next or previous group
+// (depending on which Alt is pressed first).
partial modifier_keys
xkb_symbols "alts_toggle" {
- virtual_modifiers LAlt, RAlt;
+ virtual_modifiers LAlt, RAlt;
key <LALT> {
- type[Group1]="PC_RALT_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
- virtualMods= 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
+ type[Group1]="PC_LALT_LEVEL2",
+ symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
+ virtualMods= RAlt
};
};
-// Left Shift key toggles group
+// Pressing the left Shift key switches to the next group.
partial modifier_keys
xkb_symbols "lshift_toggle" {
- virtual_modifiers AltGr;
- key <LFSH> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
+ virtual_modifiers AltGr;
+ key <LFSH> {
+ symbols[Group1] = [ ISO_Next_Group ],
+ virtualMods= AltGr
};
};
-// Right Shift key toggles group
+// Pressing the right Shift key switches to the next group.
partial modifier_keys
xkb_symbols "rshift_toggle" {
- virtual_modifiers AltGr;
- key <RTSH> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
+ virtual_modifiers AltGr;
+ key <RTSH> {
+ symbols[Group1] = [ ISO_Next_Group ],
+ virtualMods= AltGr
};
};
-// Left Alt key toggles group
+// Pressing the left Alt key switches to the next group.
partial modifier_keys
xkb_symbols "lalt_toggle" {
- virtual_modifiers AltGr;
- key <LALT> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
+ virtual_modifiers AltGr;
+ key <LALT> {
+ symbols[Group1] = [ ISO_Next_Group ],
+ virtualMods= AltGr
};
};
-// Left Ctrl key toggles group
+// Pressing the left Ctrl key switches to the next group.
partial modifier_keys
xkb_symbols "lctrl_toggle" {
- virtual_modifiers AltGr;
- key <LCTL> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
+ virtual_modifiers AltGr;
+ key <LCTL> {
+ symbols[Group1] = [ ISO_Next_Group ],
+ virtualMods= AltGr
};
};
-// Right Ctrl key toggles group
+// Pressing the right Ctrl key switches to the next group.
partial modifier_keys
xkb_symbols "rctrl_toggle" {
- virtual_modifiers AltGr;
- key <RCTL> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
+ 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
+// Pressing Alt+Caps_Lock switches to the next group,
+// pressing Caps_Lock toggles CapsLock.
partial modifier_keys
xkb_symbols "alt_caps_toggle" {
- key <CAPS> {
+ key <CAPS> {
type="PC_ALT_LEVEL2",
- symbols[Group1]= [ Caps_Lock, ISO_Next_Group]
+ symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
};
};
-partial hidden modifier_keys
+hidden partial modifier_keys
xkb_symbols "olpc" {
- key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
+ 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 ]
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1] = [ space, ISO_Next_Group ]
};
};
-// using the group(sclk_toggle) map, pressing the Scroll Lock key
-// toggles groups.
+// Pressing the Scroll Lock key switches to the next group,
partial modifier_keys
xkb_symbols "sclk_toggle" {
- virtual_modifiers AltGr;
- key <SCLK> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_Next_Group ]
+ 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).
+// Control_L+Win_L selects the first group (presumably Lat),
+// Control_R+Menu selects 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 ]
+ 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 ]
+ type[Group1] = "PC_CONTROL_LEVEL2",
+ symbols[Group1] = [ Menu, ISO_Last_Group ]
};
-}; // lctrl_lwin_rctrl_menu
+};
diff --git a/test/data/symbols/il b/test/data/symbols/il
index 7842533..48452d6 100644
--- a/test/data/symbols/il
+++ b/test/data/symbols/il
@@ -1,85 +1,81 @@
// 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
+// This is an implemetation of the Israeli standard SI-1452 (2013)
+// It does not implement changes to the English layout, as that part
+// of the standard is not normative nor really useful in the context
+// of xkb.
+// This implementation extends the standard with Yiddish digraphs
+// (a common extension) and Nun Hafukha (a fun character).
+
+default partial alphanumeric_keys
xkb_symbols "basic" {
// uses the kbd layout in use in Israel.
name[Group1]= "Hebrew";
+ key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
- 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 <AB01> { [ hebrew_zain, Z ] };
+ key <AB02> { [ hebrew_samech, X, U05B6 ] }; // Segol
+ key <AB03> { [ hebrew_bet, C, U05B1 ] }; // Hataf Segol
+ key <AB04> { [ hebrew_he, V ] };
+ key <AB05> { [ hebrew_nun, B, NoSymbol, U05C6 ]}; // Nun Hafukha
+ key <AB06> { [ hebrew_mem, N ] };
+ key <AB07> { [ hebrew_zade, M, U05B5 ] }; // Tsere
+ key <AB08> { [ hebrew_taw, greater, rightsinglequotemark ]}; // greater Mirrored
+ key <AB09> { [ hebrew_finalzade, less, singlelowquotemark ]}; // less Mirrored
- key <AC02> { [ hebrew_dalet,S ] };
+ key <AC01> { [ hebrew_shin, A, U05B0 ] }; // Shva
+ key <AC02> { [ hebrew_dalet,S, U05BC ] }; // Dagesh
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 <AC05> { [ hebrew_ayin, G, U05F1 ] }; // Yiddish Vav Yod
+ key <AC06> { [ hebrew_yod, H, U05F2 ] }; // Yiddish Double Yod
+ key <AC07> { [ hebrew_chet, J, U05B4 ] }; // Hiriq
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 <AC09> { [ hebrew_finalkaph, L, rightdoublequotemark ]};
+ key <AC10> { [ hebrew_finalpe, colon, doublelowquotemark ]};
- 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
+ key <AD01> { [ slash, Q, U05C2 ] }; // Sin Dot
+ key <AD02> { [ apostrophe, W, U05C1 ] }; // Shin Dot
+ key <AD03> { [ hebrew_qoph, E, U05B8 ] }; // Qamats
+ key <AD04> { [ hebrew_resh, R, U05B3 ] }; // Hataf Qamats
+ key <AD05> { [ hebrew_aleph,T ] };
+ key <AD06> { [ hebrew_tet, Y, U05F0 ] }; // Yiddish Double Vav
+ key <AD07> { [ hebrew_waw, U, U05B9 ] }; // Holam
+ key <AD08> { [ hebrew_finalnun, I ] };
+ key <AD09> { [ hebrew_finalmem, O ] };
+ key <AD10> { [ hebrew_pe, P, U05B7 ] }; // Patah
+
+ key.type[Group1] = "FOUR_LEVEL";
+
+ // Non-alphanumeric keys
+ key <AB10> { [ period, question, division ]};
+ key <AC11> { [ comma, quotedbl, U05F4] }; // Gershayim
+ key <AD11> { [ bracketright, braceright, U05B2 ]}; // Mirrored; Hataf Patah
+ key <AD12> { [ bracketleft, braceleft, U05BF ]}; // Mirrored; Rafe
+ key <BKSL> { [ backslash, bar, U05BB ] }; // Qubuts
+
+ // Top (digits) row
+ key <TLDE> { [ semicolon, asciitilde, U05F3 ]}; // Geresh
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, at ] };
+ key <AE03> { [ 3, numbersign, EuroSign ]};
+ key <AE04> { [ 4, dollar, NewSheqelSign ]};
+ key <AE05> { [ 5, percent, degree ]};
+ key <AE06> { [ 6, asciicircum, U05AB ]}; // Hebrew Accent Ole
+ key <AE07> { [ 7, ampersand, U05BD ]}; // Meteg
+ key <AE08> { [ 8, asterisk, multiply]};
+ key <AE09> { [ 9, parenright, U200E ]}; // LRM; Paren Mirrored
+ key <AE10> { [ 0, parenleft, U200F ]}; // RLM; Paren Mirrored
+ key <AE11> { [ minus, underscore, U05BE ]}; // Maqaf
+ key <AE12> { [ equal, plus, endash ]};
include "level3(ralt_switch)"
};
// nikud patter based on Dekel Tsur's Hebrew mapping for LyX
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "lyx" {
name[Group1]= "Hebrew (lyx)";
@@ -103,7 +99,7 @@ xkb_symbols "lyx" {
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 <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
@@ -136,13 +132,13 @@ xkb_symbols "lyx" {
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
+partial alphanumeric_keys
xkb_symbols "phonetic" {
// uses the phonetic layout from old Slackware 'il.map' file
@@ -199,7 +195,7 @@ xkb_symbols "phonetic" {
// layout below does not include 'il(basic)' but redoes the _whole_ thing from
// scratch.
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "biblical" {
name[Group1]= "Hebrew (Biblical, Tiro)";
key.type = "FOUR_LEVEL_SEMIALPHABETIC";
@@ -267,7 +263,7 @@ xkb_symbols "biblical" {
// 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
+partial alphanumeric_keys
xkb_symbols "biblicalSIL" {
name[Group1]= "Hebrew (Biblical, SIL phonetic)";
key.type = "FOUR_LEVEL_SEMIALPHABETIC";
@@ -303,7 +299,7 @@ xkb_symbols "biblicalSIL" {
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 <AC04> { [ UFB2B, hebrew_shin, U05C2 ] }; //UCSv6 Sin shin (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 -
diff --git a/test/data/symbols/in b/test/data/symbols/in
index b995fbb..04c35a2 100644
--- a/test/data/symbols/in
+++ b/test/data/symbols/in
@@ -1,9 +1,10 @@
// This layout includes all Indian layouts, including:
-// - Bengali
-// - Gujarati
-// - Kannada
+// - Devanagari (Hindi, Marathi, Sanskrit)
+// - Bangla
+// - Gujarati
+// - Kannada
// - Malayalam
-// - Oriya
+// - Oriya
// - Tamil
// - Telugu
// - Urdu
@@ -11,12 +12,12 @@
// 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):
+// - Bangla Baishakhi (Bangla layouts):
+// - Bangla Baishakhi Inscript (Bangla layouts):
+// - Bangla Bornona (Bangla layouts):
+// - Uni Gitanjali (Bangla layouts):
// http://nltr.org
-// - Ekusheyr Shadhinota (Bengali layouts):
+// - Ekusheyr Shadhinota (Bangla 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
@@ -24,7 +25,7 @@
// 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
+default partial alphanumeric_keys
xkb_symbols "deva" {
// March 2004 -- David Holl <smyrph+dev_xkb@ece.wpi.edu>
name[Group1]="Indian";
@@ -106,7 +107,7 @@ 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 ] };
@@ -134,9 +135,9 @@ xkb_symbols "bolnagri" {
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 <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
@@ -147,7 +148,7 @@ xkb_symbols "bolnagri" {
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 <AC10> { [ semicolon, colon ] };
key <AC11> { [apostrophe, quotedbl ] };
//Z Row
@@ -162,7 +163,6 @@ xkb_symbols "bolnagri" {
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 };
@@ -176,7 +176,7 @@ xkb_symbols "bolnagri" {
partial alphanumeric_keys
xkb_symbols "ben" {
- name[Group1]= "Bengali (India)";
+ name[Group1]= "Bangla (India)";
// Mainly numbers.
key <AE01> { [ U09E7 ] };
@@ -244,7 +244,7 @@ xkb_symbols "ben" {
};
xkb_symbols "ben_probhat" {
- name[Group1]= "Bengali (India, Probhat)";
+ name[Group1]= "Bangla (India, Probhat)";
key <ESC> { [ Escape ] };
// numbers
@@ -291,7 +291,7 @@ xkb_symbols "ben_probhat" {
key <AC08> { [ U0995, U0996 ] };
key <AC09> { [ U09B2, U0982 ] };
key <AC10> { [ semicolon, colon ] };
- key <AC11> { [ quoteright, quotedbl ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
// shift, z to /
// key <LFSH> { [ Shift_L ] };
@@ -318,10 +318,10 @@ xkb_symbols "ben_probhat" {
include "rupeesign(4)"
};
-// Bengali Baishakhi, Bengali Baishakhi Inscript, Bengali Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812004@gmail.com>
+// Bangla Baishakhi, Bangla Baishakhi Inscript, Bangla Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812004@gmail.com>
xkb_symbols "ben_baishakhi" {
- name[Group1]= "Bengali (India, Baishakhi)";
+ name[Group1]= "Bangla (India, Baishakhi)";
key <ESC> { [ Escape ] };
// numbers
@@ -368,7 +368,7 @@ xkb_symbols "ben_baishakhi" {
key <AC08> { [ 0x1000995, 0x1000996 ] };
key <AC09> { [ 0x10009B2, 0x1000964, 0x100098C ] };
key <AC10> { [ semicolon, colon ] };
- key <AC11> { [ quoteright, quotedbl ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
// shift, z to /
// key <LFSH> { [ Shift_L ] };
@@ -393,12 +393,10 @@ xkb_symbols "ben_baishakhi" {
// 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)";
+ name[Group1]= "Bangla (India, Baishakhi Inscript)";
// Mainly numbers.
key <TLDE> { [ 0x100200D, 0x100200C ] };
@@ -464,13 +462,13 @@ xkb_symbols "ben_inscript" {
};
xkb_symbols "ben_gitanjali" {
- name[Group1]= "Bengali (India, Uni Gitanjali)";
+ name[Group1]= "Bangla (India, Uni Gitanjali)";
key <ESC> { [ Escape ] };
// numbers
key <TLDE> { [ colon, question ] };
key <AE01> { [ 0x10009E7, 0x10009CE ] };
- key <AE02> { [ 0x10009E8, quoteright ] };
+ key <AE02> { [ 0x10009E8, apostrophe ] };
key <AE03> { [ 0x10009E9, numbersign ] };
key <AE04> { [ 0x10009EA, 0x10009F3 ] };
key <AE05> { [ 0x10009EB, slash ] };
@@ -536,13 +534,11 @@ xkb_symbols "ben_gitanjali" {
// modifier_map Shift { Shift_L };
// modifier_map Lock { Caps_Lock };
// modifier_map Control{ Control_L };
-
-
};
xkb_symbols "ben_bornona" {
- name[Group1]= "Bengali (India, Bornona)";
+ name[Group1]= "Bangla (India, Bornona)";
key <ESC> { [ Escape ] };
// numbers
@@ -589,7 +585,7 @@ xkb_symbols "ben_bornona" {
key <AC08> { [ 0x1000995, 0x1000996 ] };
key <AC09> { [ 0x10009B2, 0x1000964 ] };
key <AC10> { [ semicolon, 0x100003A ] };
- key <AC11> { [ quoteright, quotedbl ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
// shift, z to /
// key <LFSH> { [ Shift_L ] };
@@ -613,10 +609,9 @@ xkb_symbols "ben_bornona" {
// modifier_map Control{ Control_L };
// third level with right-alt
include "level3(ralt_switch)"
-
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "guj" {
name[Group1]= "Gujarati";
@@ -683,7 +678,7 @@ xkb_symbols "guj" {
include "level3(ralt_switch)"
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "kan" {
// Inscript layout for Kannada
@@ -719,7 +714,7 @@ xkb_symbols "kan" {
key <AD10> { [ U0c9c, U0c9d ] };
key <AD11> { [ U0ca1, U0ca2 ] };
key <AD12> { [ U0cbc, U0c9e ] };
-
+
key <AC01> { [ U0ccb, U0c93 ] };
key <AC02> { [ U0cc7, U0c8f ] };
key <AC03> { [ U0ccd, U0c85 ] };
@@ -757,13 +752,13 @@ xkb_symbols "kan" {
// Date : Sat Aug 17 21:10:48 IST 2002
// Mapping:
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "mal" {
name[Group1] = "Malayalam";
//From grave to backslash (\)
-
+
key <TLDE> { [ U0d4a , U0d12 ] };
// svu:
@@ -771,7 +766,7 @@ xkb_symbols "mal" {
// but the digits are replaced with the ones from 'mal_plusnum' -
// for the integrity of all Indian layouts
//
-// key <AE01> { [1 , exclam ] };
+// key <AE01> { [1 , exclam ] };
// key <AE02> { [2 , at ] };
// key <AE03> { [3 , numbersign ] };
// key <AE04> { [4 , dollar ] };
@@ -797,9 +792,9 @@ xkb_symbols "mal" {
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 ] };
@@ -814,7 +809,7 @@ xkb_symbols "mal" {
key <AD12> { [ U0200d , U0d1e ] };
// From 'a' to apostrophe (')
-
+
key <AC01> { [ U0d4b , U0d13 ] };
key <AC02> { [ U0d47 , U0d0f ] };
key <AC03> { [ U0d4d , U0d05 ] };
@@ -826,9 +821,9 @@ xkb_symbols "mal" {
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 ] };
@@ -842,7 +837,6 @@ xkb_symbols "mal" {
include "rupeesign(4)"
include "level3(ralt_switch)"
-
};
//Name : Lalitha
@@ -854,7 +848,7 @@ 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 ] };
@@ -884,7 +878,7 @@ xkb_symbols "mal_lalitha" {
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
@@ -895,7 +889,7 @@ xkb_symbols "mal_lalitha" {
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 <AC10> { [ semicolon, colon ] };
key <AC11> { [apostrophe, quotedbl ] };
//Z Row
@@ -910,7 +904,6 @@ xkb_symbols "mal_lalitha" {
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 };
@@ -920,14 +913,14 @@ xkb_symbols "mal_lalitha" {
};
-partial alphanumeric_keys
+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 ] };
@@ -953,7 +946,7 @@ xkb_symbols "ori" {
key <AD10> { [ U0b1c, U0b1d ] };
key <AD11> { [ U0b21, U0b22 ] };
key <AD12> { [ U0b3c, U0b1e ] };
-
+
key <AC01> { [ U0b4b, U0b13 ] };
key <AC02> { [ U0b47, U0b0f ] };
key <AC03> { [ U0b4d, U0b05 ] };
@@ -965,7 +958,7 @@ xkb_symbols "ori" {
key <AC09> { [ U0b24, U0b25 ] };
key <AC10> { [ U0b1a, U0b1b ] };
key <AC11> { [ U0b1f, U0b20 ] };
-
+
key <AB02> { [ U0b02, U0b01 ] };
key <AB03> { [ U0b2e, U0b23 ] };
key <AB04> { [ U0b28 ] };
@@ -986,7 +979,7 @@ xkb_symbols "ori" {
// based on a keyboard map from an 'xkb/symbols/tml' file
// INSCRIPT
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "tam" {
name[Group1]= "Tamil";
@@ -1017,7 +1010,7 @@ xkb_symbols "tam" {
// Mainly voiced consonants
key <AD07> { [ U0BB9, U0B99 ] };
- key <AD10> { [ U0B9c ] };
+ key <AD10> { [ U0B9c ] };
key <AD12> { [ U0B9E ] };
// Mainly short vowels
@@ -1052,7 +1045,7 @@ xkb_symbols "tam" {
include "rupeesign(4)"
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "tam_unicode" {
// Description: A keymap based on the TamilNet'99 typewriter keyboard
@@ -1062,7 +1055,7 @@ xkb_symbols "tam_unicode" {
// Secondary contact: Sri Ramadoss M <amachu@au-kbc.org>
// Date : Fri Sep 4 11:32:00 CST 2009
// Mapping:
-
+
name[Group1]= "Tamil (Unicode)";
// granthas
@@ -1106,7 +1099,7 @@ xkb_symbols "tam_unicode" {
key <AC09> { [ U0B9F ] };
key <AC10> { [ U0BCD, U0B83 ] };
key <AC11> { [ U0B99 ] };
-
+
// Zrow
key <AB01> { [ U0BA3 ] };
key <AB02> { [ U0B92, U0B93 ] };
@@ -1183,7 +1176,7 @@ xkb_symbols "tam_keyboard_with_numerals" {
key <AB08> { [ U0B87, U0B88 ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "tam_TSCII" {
// Description : A Tamil typewrite-style keymap
@@ -1201,7 +1194,7 @@ xkb_symbols "tam_TSCII" {
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
@@ -1227,7 +1220,7 @@ xkb_symbols "tam_TSCII" {
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
@@ -1237,10 +1230,9 @@ xkb_symbols "tam_TSCII" {
key <AB06> { [ 0x10000b6, 0x10000aa ] }; // au
key <AB07> { [ 0x10000ab, 0x10000ac ] }; // a, A
key <AB08> { [ 0x10000fe, 0x10000ae ] }; // i, I
-
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "tam_TAB" {
// Description: A keymap based on the TamilNet'99 typewriter keyboard
@@ -1258,7 +1250,7 @@ xkb_symbols "tam_TAB" {
key <AE05> { [ 0x10000fd ] } ;
key <AE06> { [ 0x10000fe ] } ;
key <AE07> { [ 0x10000ff ] } ;
-
+
// q-row
key <AD01> { [ 0x10000eb, 0x10000b3 ] };
key <AD02> { [ 0x10000f8, 0x10000c1 ] };
@@ -1284,7 +1276,7 @@ xkb_symbols "tam_TAB" {
key <AC09> { [ 0x10000ec, 0x10000b4 ] };
key <AC10> { [ 0x10000f6, 0x10000bf ] };
key <AC11> { [ 0x10000e9, 0x10000b1 ] };
-
+
// z-row
key <AB01> { [ 0x10000ed, 0x10000b5 ] };
key <AB02> { [ 0x10000e5, 0x10000e6 ] };
@@ -1296,7 +1288,7 @@ xkb_symbols "tam_TAB" {
key <AB08> { [ 0x10000de, 0x10000df ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "tel" {
// Inscript layout for Telugu using Unicode
@@ -1319,8 +1311,8 @@ xkb_symbols "tel" {
key <AE10> { [ U0c66, parenright ] };
key <AE11> { [ U0c03, underscore ] };
key <AE12> { [ U0c43, U0c0b ] };
- key <BKSP> { [ BackSpace ] };
-
+ key <BKSP> { [ BackSpace ] };
+
key <AD01> { [ U0c4c, U0c14 ] };
key <AD02> { [ U0c48, U0c10 ] };
key <AD03> { [ U0c3e, U0c06 ] };
@@ -1333,7 +1325,7 @@ xkb_symbols "tel" {
key <AD10> { [ U0c1c, U0c1d ] };
key <AD11> { [ U0c21, U0c22 ] };
key <AD12> { [ U0c1e ] };
-
+
key <AC01> { [ U0c4b, U0c13 ] };
key <AC02> { [ U0c47, U0c0f ] };
key <AC03> { [ U0c4d, U0c05 ] };
@@ -1345,7 +1337,7 @@ xkb_symbols "tel" {
key <AC09> { [ U0c24, U0c25 ] };
key <AC10> { [ U0c1a, U0c1b ] };
key <AC11> { [ U0c1f, U0c20 ] };
-
+
key <AB01> { [ U0c46, U0c0e ] };
key <AB02> { [ U0c02, U0c01 ] };
key <AB03> { [ U0c2e, U0c23 ] };
@@ -1365,19 +1357,19 @@ xkb_symbols "tel" {
include "level3(ralt_switch)"
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "urd-phonetic" {
include "pk(urd-phonetic)"
name[Group1]= "Urdu (phonetic)";
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "urd-phonetic3" {
include "pk(urd-crulp)"
name[Group1]= "Urdu (alternative phonetic)";
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "urd-winkeys" {
include "pk(urd-nla)"
name[Group1]= "Urdu (WinKeys)";
@@ -1400,7 +1392,7 @@ xkb_symbols "guru" {
key <AE08> { [ U0A6e ] };
key <AE09> { [ U0A6F, parenleft ] };
key <AE10> { [ U0A66, parenright ] };
- key <AE11> { [ gur_visarga ] };
+ key <AE11> { [ U0A03 ] };
key <AE12> { [ equal, plus ] };
// Mainly long vowels
@@ -1458,12 +1450,12 @@ xkb_symbols "guru" {
// 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 ] };
@@ -1479,7 +1471,7 @@ xkb_symbols "jhelum" {
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
@@ -1491,9 +1483,9 @@ xkb_symbols "jhelum" {
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 <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
@@ -1506,7 +1498,7 @@ xkb_symbols "jhelum" {
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
@@ -1517,9 +1509,8 @@ xkb_symbols "jhelum" {
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
+ key <AB10> { [ slash, question ] };
+
// modifier_map Shift { Shift_L };
// modifier_map Lock { Caps_Lock };
// modifier_map Control{ Control_L };
@@ -1536,15 +1527,15 @@ xkb_symbols "olpc" {
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 <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
@@ -1593,7 +1584,7 @@ xkb_symbols "olpc" {
include "level3(ralt_switch)"
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "hin-wx" {
name[Group1]= "Hindi (Wx)";
@@ -1642,12 +1633,12 @@ xkb_symbols "hin-wx" {
key <AC08> { [ 0x1000915, 0x1000916 ] };
key <AC09> { [ 0x1000932, 0x1000962, 0x1000933, 0x100090C] };
key <AC10> { [ semicolon, colon ] };
- key <AC11> { [ quoteright, quotedbl ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ 0x1000901, 0x100093C, 0x100093D, 0x1000950] };
key <AB02> { [ 0x1000926, 0x1000927 ] };
key <AB03> { [ 0x100091A, 0x100091B ] };
- key <AB04> { [ 0x1000935, dead_V ] };
+ key <AB04> { [ 0x1000935 ] };
key <AB05> { [ 0x100092C, 0x100092D ] };
key <AB06> { [ 0x1000928, 0x1000923 ] };
key <AB07> { [ 0x100092E, 0x1000902 ] };
@@ -1662,12 +1653,10 @@ xkb_symbols "hin-wx" {
partial alphanumeric_keys
xkb_symbols "eng" {
- name[Group1]= "English (India, with RupeeSign)";
-
include "us(basic)"
+ name[Group1]= "English (India, with rupee sign)";
include "rupeesign(4)"
-
include "level3(ralt_switch)"
};
@@ -1680,13 +1669,13 @@ xkb_symbols "eng" {
// Comment : Based on the Inscript Keyboard created by M Baiju
// Mapping:
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "mal_enhanced" {
- name[Group1] = "Malayalam (enhanced Inscript with Rupee Sign)";
+ name[Group1] = "Malayalam (enhanced Inscript, with rupee sign)";
//From grave to backslash (\)
-
+
key <TLDE> { [ U0d4a , U0d12 ] };
key <AE01> { [ U0d67 , exclam ] };
key <AE02> { [ U0d68 , at ] };
@@ -1705,7 +1694,7 @@ xkb_symbols "mal_enhanced" {
// From 'q' to right bracket (])
-
+
key <AD01> { [ U0d57 , U0d14 ] };
key <AD02> { [ U0d48 , U0d10 ] };
key <AD03> { [ U0d3e , U0d06 ] };
@@ -1720,7 +1709,7 @@ xkb_symbols "mal_enhanced" {
key <AD12> { [ U0200d , U0d1e ] };
// From 'a' to apostrophe (')
-
+
key <AC01> { [ U0d4b , U0d13 ] };
key <AC02> { [ U0d47 , U0d0f ] };
key <AC03> { [ U0d4d , U0d05 ] };
@@ -1732,9 +1721,9 @@ xkb_symbols "mal_enhanced" {
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 ] };
@@ -1746,10 +1735,328 @@ xkb_symbols "mal_enhanced" {
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)"
+};
+
+
+// ---- BEGIN Hindi KaGaPa phonetic ----
+// Name: KaGaPa phonetic
+// Brief: Devanagari layout (Hindi, Sanskrit, Nepali, Marathi, etc.)
+// Diagram: (Original)[http://baraha.com/help/Keyboards/dev_brhkbd.htm]
+// (This layout)[http://bdsatish.in/lang/dev-kagapa.png]
+//
+// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout)
+// which is a modified layout of the specification by Dr. K. P. Rao.
+// This is a phonetic layout with the following features:
+// [1] All letters are mapped to phonetically-similar English keys
+// as much as possible.
+// [2] The independent vowel (svara) and its dependent vowel (maatra)
+// use the same key (depending upon SHIFT, ALTGR or ALTGR + SHIFT).
+// [3] Consonant conjuncts are produced by explicitly invoking the
+// 'viraama' (key f). The 'short a' maatra is implicit in all
+// consonants.
+// [4] Zero width non-joiner and joiner are on keys 6 and 7
+// respectively. These are absolutely essential for alternative
+// glyph renderings of consonant half-forms.
+// [5] Rigvedic accent marks, visarga variants.
+//
+// Author: Satish BD <bdsatish@gmail.com>
+//
+partial alphanumeric_keys
+xkb_symbols "hin-kagapa" {
+ name[Group1] = "Hindi (KaGaPa phonetic)";
+ key.type="FOUR_LEVEL";
+
+ // Roman digits
+ key <TLDE> { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark
+ key <AE01> { [ 1, exclam, U0967 ] };
+ key <AE02> { [ 2, at, U0968, U20A8 ] }; // U20A8: generic rupee sign (Rs)
+ key <AE03> { [ 3, numbersign, U0969 ] };
+ key <AE04> { [ 4, dollar, U096A, U20B9 ] }; // U20B9: new Indian rupee sign
+ key <AE05> { [ 5, percent, U096B ] };
+ key <AE06> { [ 6, asciicircum, U096C, U200C ] }; // ZWNJ
+ key <AE07> { [ 7, ampersand, U096D, U200D ] }; // ZWJ
+ key <AE08> { [ 8, asterisk, U096E, U0901 ] }; // U0901: Devanagari candrabindu
+ key <AE09> { [ 9, parenleft, U096F ] };
+ key <AE10> { [ 0, parenright, U0966, U0970 ] }; // U0970: Devanagari abbreviation sign
+ key <AE11> { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta
+ key <AE12> { [ equal, plus ] };
+ key <BKSL> { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda
+
+ //Q Row
+ key <AD01> { [ U091F, U0920 ] }; // Q: retroflex Ta, Tha
+ key <AD02> { [ U0921, U0922, U095C, U095D ] }; // W: retroflex Da, Dha, Da-nukta, Dha-nukta
+ key <AD03> { [ U0946, U0947, U090E, U090F ] }; // E: matras, short E, long E
+ key <AD04> { [ U0930, U0943, U090B, U0931 ] }; // R: ra, vocalic R matra, vocalic R, ra-nukta
+ key <AD05> { [ U0924, U0925 ] }; // T: dental ta, tha
+ key <AD06> { [ U092F, U0948, U0910, U095F ] }; // Y: ya, ai matra, ai, ya-nukta
+ key <AD07> { [ U0941, U0942, U0909, U090A ] }; // U: matras, u, uu
+ key <AD08> { [ U093F, U0940, U0907, U0908 ] }; // I: matras, i, ii
+ key <AD09> { [ U094A, U094B, U0912, U0913 ] }; // O: matras, short o, long o
+ key <AD10> { [ U092A, U092B, U095E ] }; // P: pa, pha, pha-nukta
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+
+ //A Row
+ key <AC01> { [ U093E, U0906, U0905, U0972 ] }; // A: aa matra, aa, short a, candra a
+ key <AC02> { [ U0938, U0936 ] }; // S: sa, sha
+ key <AC03> { [ U0926, U0927 ] }; // D: dental da, dha
+ key <AC04> { [ U094D, U0944, U0960 ] }; // F: virama, vocalic RR matra, vocalic RR
+ key <AC05> { [ U0917, U0918, U095A ] }; // G: ga, gha, ga-nukta
+ key <AC06> { [ U0939, U0903, U1CF5, U1CF6 ] }; // H: ha, visarga, jihvamuliya, upadhmaniya
+ key <AC07> { [ U091C, U091D, U095B ] }; // J: ja, jha, ja-nukta
+ key <AC08> { [ U0915, U0916, U0958, U0959 ] }; // K: ka, kha, ka-nukta, kha-nukta
+ key <AC09> { [ U0932, U0933, U0962, U090C ] }; // L: la, lla, vocalic L matra, vocalic L
+ key <AC10> { [ semicolon, colon, U1CF2, U1CF3 ] }; // U1CF2/3: ardhavisarga/rotated ardhavisarga
+ key <AC11> { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta
+ // U201D: Right double quotation mark
+ //Z Row
+ key <AB01> { [ U091E, U0919 ] }; // Z: nya, nga
+ key <AB02> { [ U0937, U093C, U0934 ] }; // X: ssa, nukta below, lla-nukta
+ key <AB03> { [ U091A, U091B ] }; // C: ca, cha
+ key <AB04> { [ U0935, U094C, U0914 ] }; // V: va, matra au, au
+ key <AB05> { [ U092C, U092D ] }; // B: ba, bha
+ key <AB06> { [ U0928, U0923, U0929 ] }; // N: na, nna, nnna
+ key <AB07> { [ U092E, U0902, U093D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM
+ key <AB08> { [ comma, U003C, U0945, U090D ] }; // comma: comma, less than, matra, candra e
+ key <AB09> { [ period, U003E, U0949, U0911 ] }; // period: period, greater than, matra, candra o
+ key <AB10> { [ slash, question ] };
+
+ include "level3(ralt_switch)"
+};
+// ---- END Hindi KaGaPa ----
+
+// Sanskrit uses Devanagari layout of Hindi
+partial alphanumeric_keys
+xkb_symbols "san-kagapa" {
+ include "in(hin-kagapa)"
+ name[Group1] = "Sanskrit (KaGaPa phonetic)";
+};
+
+// Marathi uses Devanagari layout of Hindi
+partial alphanumeric_keys
+xkb_symbols "mar-kagapa" {
+ include "in(hin-kagapa)"
+ name[Group1] = "Marathi (KaGaPa phonetic)";
+};
+
+
+// ---- BEGIN Kannada KaGaPa phonetic ----
+// Name: Kannada KaGaPa phonetic
+// Diagram: (Original)[http://www.baraha.com/help/Keyboards/kan_brhkbd.htm]
+// (This layout)[http://bdsatish.in/lang/kan-kagapa.png]
+//
+// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout).
+// See the description to "hin-kagapa" above.
+// Certain punctuation characters from Devanagari block are
+// retained for compatibility.
+//
+// Author: Satish BD <bdsatish@gmail.com>
+//
+partial alphanumeric_keys
+xkb_symbols "kan-kagapa" {
+ name[Group1] = "Kannada (KaGaPa phonetic)";
+ key.type="FOUR_LEVEL";
+
+ // Roman digits
+ key <TLDE> { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark
+ key <AE01> { [ 1, exclam, U0CE7 ] };
+ key <AE02> { [ 2, at, U0CE8, U20A8 ] }; // U20A8: generic rupee sign (Rs)
+ key <AE03> { [ 3, numbersign, U0CE9 ] };
+ key <AE04> { [ 4, dollar, U0CEA, U20B9 ] }; // U20B9: new Indian rupee sign
+ key <AE05> { [ 5, percent, U0CEB ] };
+ key <AE06> { [ 6, asciicircum, U0CEC, U200C ] }; // ZWNJ
+ key <AE07> { [ 7, ampersand, U0CED, U200D ] }; // ZWJ
+ key <AE08> { [ 8, asterisk, U0CEE, U0901 ] }; // U0901: Devanagari candrabindu
+ key <AE09> { [ 9, parenleft, U0CEF ] };
+ key <AE10> { [ 0, parenright, U0CE6 ] };
+ key <AE11> { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta
+ key <AE12> { [ equal, plus ] };
+ key <BKSL> { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda
+
+ //Q Row
+ key <AD01> { [ U0C9F, U0CA0 ] }; // Q: retroflex Ta, Tha
+ key <AD02> { [ U0CA1, U0CA2 ] }; // W: retroflex Da, Dha
+ key <AD03> { [ U0CC6, U0CC7, U0C8E, U0C8F ] }; // E: matras, short E, long E
+ key <AD04> { [ U0CB0, U0CC3, U0C8B, U0CB1 ] }; // R: ra, vocalic R matra, vocalic R, RRA
+ key <AD05> { [ U0CA4, U0CA5 ] }; // T: dental ta, tha
+ key <AD06> { [ U0CAF, U0CC8, U0C90 ] }; // Y: ya, ai matra, ai
+ key <AD07> { [ U0CC1, U0CC2, U0C89, U0C8A ] }; // U: matras, u, uu
+ key <AD08> { [ U0CBF, U0CC0, U0C87, U0C88 ] }; // I: matras, i, ii
+ key <AD09> { [ U0CCA, U0CCB, U0C92, U0C93 ] }; // O: matras, short o, long o
+ key <AD10> { [ U0CAA, U0CAB ] }; // P: pa, pha
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+
+ //A Row
+ key <AC01> { [ U0CBE, U0C86, U0C85 ] }; // A: aa matra, aa, short a
+ key <AC02> { [ U0CB8, U0CB6 ] }; // S: sa, sha
+ key <AC03> { [ U0CA6, U0CA7 ] }; // D: dental da, dha
+ key <AC04> { [ U0CCD, U0CC4, U0CE0 ] }; // F: virama, vocalic RR matra, vocalic RR
+ key <AC05> { [ U0C97, U0C98 ] }; // G: ga, gha
+ key <AC06> { [ U0CB9, U0C83, U0CF1, U0CF2 ] }; // H: ha, visarga, jihvanuliya, upadhmaniya
+ key <AC07> { [ U0C9C, U0C9D ] }; // J: ja, jha
+ key <AC08> { [ U0C95, U0C96 ] }; // K: ka, kha
+ key <AC09> { [ U0CB2, U0CB3, U0CE2, U0C8C ] }; // L: la, lla, vocalic L matra, vocalic L
+ key <AC10> { [ semicolon, colon ] };
+ key <AC11> { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta
+ // U201D: Right double quotation mark
+ //Z Row
+ key <AB01> { [ U0C9E, U0C99 ] }; // Z: nya, nga
+ key <AB02> { [ U0CB7, U0CBC, U0CDE ] }; // X: ssa, nukta below, LLLA
+ key <AB03> { [ U0C9A, U0C9B ] }; // C: ca, cha
+ key <AB04> { [ U0CB5, U0CCC, U0C94 ] }; // V: va, matra au, au
+ key <AB05> { [ U0CAC, U0CAD ] }; // B: ba, bha
+ key <AB06> { [ U0CA8, U0CA3 ] }; // N: na, nna
+ key <AB07> { [ U0CAE, U0C82, U0CBD, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM
+ key <AB08> { [ comma, U003C, U0CB1 ] }; // comma: comma, less than, RRA
+ key <AB09> { [ period, U003E, U0CDE ] }; // period: period, greater than, LLLA
+ key <AB10> { [ slash, question ] };
+
+ include "level3(ralt_switch)"
+};
+// ---- END Kannada KaGaPa ----
+
+// ---- BEGIN Telugu KaGaPa phonetic ----
+// Name: Telugu KaGaPa phonetic
+// Diagram: (Original)[http://www.baraha.com/help/Keyboards/tel_brhkbd.htm]
+// (This layout)[http://bdsatish.in/lang/tel-kagapa.png]
+//
+// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout).
+// See the description to "hin-kagapa" above.
+// Certain punctuation characters from Devanagari block are
+// retained for compatibility.
+//
+// Author: Satish BD <bdsatish@gmail.com>
+//
+partial alphanumeric_keys
+xkb_symbols "tel-kagapa" {
+ name[Group1] = "Telugu (KaGaPa phonetic)";
+ key.type="FOUR_LEVEL";
+
+ // Roman digits
+ key <TLDE> { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark
+ key <AE01> { [ 1, exclam, U0C67 ] };
+ key <AE02> { [ 2, at, U0C68, U20A8 ] }; // U20A8: generic rupee sign (Rs)
+ key <AE03> { [ 3, numbersign, U0C69 ] };
+ key <AE04> { [ 4, dollar, U0C6A, U20B9 ] }; // U20B9: new Indian rupee sign
+ key <AE05> { [ 5, percent, U0C6B ] };
+ key <AE06> { [ 6, asciicircum, U0C6C, U200C ] }; // ZWNJ
+ key <AE07> { [ 7, ampersand, U0C6D, U200D ] }; // ZWJ
+ key <AE08> { [ 8, asterisk, U0C6E, U0C01 ] }; // U0C01: Telugu arasunna
+ key <AE09> { [ 9, parenleft, U0C6F ] };
+ key <AE10> { [ 0, parenright, U0C66 ] };
+ key <AE11> { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta
+ key <AE12> { [ equal, plus ] };
+ key <BKSL> { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda
+
+ //Q Row
+ key <AD01> { [ U0C1F, U0C20 ] }; // Q: retroflex Ta, Tha
+ key <AD02> { [ U0C21, U0C22 ] }; // W: retroflex Da, Dha
+ key <AD03> { [ U0C46, U0C47, U0C0E, U0C0F ] }; // E: matras, short E, long E
+ key <AD04> { [ U0C30, U0C43, U0C0B, U0C31 ] }; // R: ra, vocalic R matra, vocalic R, RRA
+ key <AD05> { [ U0C24, U0C25 ] }; // T: dental ta, tha
+ key <AD06> { [ U0C2F, U0C48, U0C10 ] }; // Y: ya, ai matra, ai
+ key <AD07> { [ U0C41, U0C42, U0C09, U0C0A ] }; // U: matras, u, uu
+ key <AD08> { [ U0C3F, U0C40, U0C07, U0C08 ] }; // I: matras, i, ii
+ key <AD09> { [ U0C4A, U0C4B, U0C12, U0C13 ] }; // O: matras, short o, long o
+ key <AD10> { [ U0C2A, U0C2B ] }; // P: pa, pha
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+
+ //A Row
+ key <AC01> { [ U0C3E, U0C06, U0C05 ] }; // A: aa matra, aa, short a
+ key <AC02> { [ U0C38, U0C36 ] }; // S: sa, sha
+ key <AC03> { [ U0C26, U0C27 ] }; // D: dental da, dha
+ key <AC04> { [ U0C4D, U0C44, U0C60 ] }; // F: virama, vocalic RR matra, vocalic RR
+ key <AC05> { [ U0C17, U0C18 ] }; // G: ga, gha
+ key <AC06> { [ U0C39, U0C03 ] }; // H: ha, visarga
+ key <AC07> { [ U0C1C, U0C1D ] }; // J: ja, jha
+ key <AC08> { [ U0C15, U0C16 ] }; // K: ka, kha
+ key <AC09> { [ U0C32, U0C33, U0C62, U0C0C ] }; // L: la, lla, vocalic L matra, vocalic L
+ key <AC10> { [ semicolon, colon ] };
+ key <AC11> { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta
+ // U201D: Right double quotation mark
+ //Z Row
+ key <AB01> { [ U0C1E, U0C19 ] }; // Z: nya, nga
+ key <AB02> { [ U0C37 ] }; // X: ssa
+ key <AB03> { [ U0C1A, U0C1B ] }; // C: ca, cha
+ key <AB04> { [ U0C35, U0C4C, U0C14 ] }; // V: va, matra au, au
+ key <AB05> { [ U0C2C, U0C2D ] }; // B: ba, bha
+ key <AB06> { [ U0C28, U0C23 ] }; // N: na, nna
+ key <AB07> { [ U0C2E, U0C02, U0C3D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM
+ key <AB08> { [ comma, U003C, U0C58 ] }; // comma: comma, less than, TSA
+ key <AB09> { [ period, U003E, U0C59 ] }; // period: period, greater than, DZA
+ key <AB10> { [ slash, question ] };
+
+ include "level3(ralt_switch)"
};
+// Description : Keymap for Manipuri language (Meetei mayek script)
+// Encoding : Unicode (http://www.unicode.org)
+// Author : Santosh Heigrujam <santosh.tomba@gmail.com>
+// Date : December, 2013
+// Source :
+// Comment :
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "eeyek" {
+
+ name[Group1]= "Manipuri (Eeyek)";
+
+ key <TLDE> { [ grave, asciitilde ] };
+ key <AE01> { [ Uabf1, exclam ] };
+ key <AE02> { [ Uabf2, at ] };
+ key <AE03> { [ Uabf3, numbersign ] };
+ key <AE04> { [ Uabf4, dollar ] };
+ key <AE05> { [ Uabf5, percent ] };
+ key <AE06> { [ Uabf6, asciicircum ] };
+ key <AE07> { [ Uabf7, ampersand ] };
+ key <AE08> { [ Uabf8, asterisk ] };
+ key <AE09> { [ Uabf9, parenleft ] };
+ key <AE10> { [ Uabf0, parenright ] };
+ key <AE11> { [ minus, underscore ] };
+ key <AE12> { [ equal, plus ] };
+
+ key <AD01> { [ Uabc8, Uabd8 ] };
+ key <AD02> { [ Uabcb, Uabcb ] };
+ key <AD03> { [ Uabcf, Uabe2 ] };
+ key <AD04> { [ Uabd4, Uabd4 ] };
+ key <AD05> { [ Uabc7, Uabe0 ] };
+ key <AD06> { [ Uabcc, Uabe6 ] };
+ key <AD07> { [ Uabce, Uabe8 ] };
+ key <AD08> { [ Uabe4, Uabe9 ] };
+ key <AD09> { [ Uabe3, Uabe7 ] };
+ key <AD10> { [ Uabc4, Uabde ] };
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+
+ key <AC01> { [ Uabd1, Uabe5 ] };
+ key <AC02> { [ Uabc1, Uabd3 ] };
+ key <AC03> { [ Uabd7, Uabd9 ] };
+ key <AC04> { [ Uabd0, Uabda ] };
+ key <AC05> { [ Uabd2, Uabd8 ] };
+ key <AC06> { [ Uabcd, Uabea ] };
+ key <AC07> { [ Uabd6, Uabd3 ] };
+ key <AC08> { [ Uabc0, Uabdb ] };
+ key <AC09> { [ Uabc2, Uabdc ] };
+ key <AC10> { [ semicolon, colon ] };
+ key <AC11> { [ apostrophe, quotedbl ] };
+
+ key <AB01> { [ Uabc9, Uabe1 ] };
+ key <AB02> { [ Uabca, Uabd9 ] };
+ key <AB03> { [ Uabc6, Uabeb ] };
+ key <AB04> { [ Uabda, Uabed ] };
+ key <AB05> { [ Uabd5, Uabec ] };
+ key <AB06> { [ Uabc5, Uabdf ] };
+ key <AB07> { [ Uabc3, Uabdd ] };
+ key <AB08> { [ comma, less ] };
+ key <AB09> { [ period, greater ] };
+ key <AB10> { [ slash, question ] };
+
+ key <BKSL> { [ backslash, bar ] };
+
+ include "level3(ralt_switch)"
+};
diff --git a/test/data/symbols/inet b/test/data/symbols/inet
index 839439a..33b0583 100644
--- a/test/data/symbols/inet
+++ b/test/data/symbols/inet
@@ -1,8 +1,8 @@
-// EAK (Easy Access, Internet, Multimedia, PDA) keyboards
+// EAK (Easy Access keyboards: Internet, Multimedia, PDA)
// Copyright (C) 2002 Stanislav Brabec <sbrabec@suse.cz>
//
-// Based on LinEAK project
-// LinEAK - Linux support for Easy Access and Internet Keyboards
+// Based on the LinEAK project.
+// LinEAK - Linux support for Easy Access and Internet Keyboards
// Copyright (C) 2001, 2002 Mark Smulders <Mark@PIRnet.nl>
// Usage in XF86Config:
@@ -13,28 +13,25 @@
// 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
+// Very common set of media keys.
+hidden partial alphanumeric_keys
xkb_symbols "media_common" {
- key <I01> { [ XF86AudioMedia ] };
+ key <I01> { [ XF86AudioMedia ] };
key <I10> { [ XF86AudioPrev ] };
key <I19> { [ XF86AudioNext ] };
key <I20> { [ XF86AudioMute ] };
key <I22> { [ XF86AudioPlay, XF86AudioPause ] };
key <I24> { [ XF86AudioStop, XF86Eject ] };
- key <I2E> { [ XF86AudioLowerVolume ] };
+ key <I2E> { [ XF86AudioLowerVolume ] };
key <I30> { [ XF86AudioRaiseVolume ] };
key <K5A> { [ XF86Eject ] };
key <K6C> { [ XF86Eject ] };
};
-// popular web navigation combination
-partial hidden alphanumeric_keys
+// Popular web navigation keys.
+hidden partial alphanumeric_keys
xkb_symbols "nav_common" {
- key <I21> { [ XF86Calculator ] };
+ key <I21> { [ XF86Calculator ] };
key <I32> { [ XF86WWW ] };
key <I65> { [ XF86Search ] };
key <I66> { [ XF86Favorites ] };
@@ -44,11 +41,11 @@ xkb_symbols "nav_common" {
key <I6A> { [ XF86Back ] };
key <I6B> { [ XF86MyComputer ] };
key <I6C> { [ XF86Mail ] };
- key <I6D> { [ XF86AudioMedia ] };
+ key <I6D> { [ XF86AudioMedia ] };
};
// ACPI Standard
-partial hidden alphanumeric_keys
+hidden partial alphanumeric_keys
xkb_symbols "acpi_common" {
key <I5E> { [ XF86PowerOff ] };
key <I5F> { [ XF86Standby ] };
@@ -58,27 +55,27 @@ xkb_symbols "acpi_common" {
key <I16> { [ XF86Sleep ] };
};
-// Combined sections, for simplicity
-partial hidden alphanumeric_keys
+// Combined sections, for simplicity.
+hidden partial alphanumeric_keys
xkb_symbols "media_nav_common" {
include "inet(media_common)"
include "inet(nav_common)"
};
-partial hidden alphanumeric_keys
+hidden partial alphanumeric_keys
xkb_symbols "media_nav_acpi_common" {
include "inet(media_common)"
include "inet(nav_common)"
include "inet(acpi_common)"
};
-partial hidden alphanumeric_keys
+hidden partial alphanumeric_keys
xkb_symbols "nav_acpi_common" {
include "inet(nav_common)"
include "inet(acpi_common)"
};
-partial hidden alphanumeric_keys
+hidden partial alphanumeric_keys
xkb_symbols "media_acpi_common" {
include "inet(media_common)"
include "inet(acpi_common)"
@@ -122,7 +119,7 @@ xkb_symbols "evdev" {
key <FK20> { [ XF86AudioMicMute ] };
-// key <I120> { [ ] }; // KEY_MACRO
+// key <I120> { [ ] }; // KEY_MACRO
key <I126> { [ plusminus ] };
key <I128> { [ XF86LaunchA ] };
key <I147> { [ XF86MenuKB ] };
@@ -139,8 +136,8 @@ xkb_symbols "evdev" {
key <I158> { [ XF86WWW ] };
key <I159> { [ XF86DOS ] };
key <I160> { [ XF86ScreenSaver ] };
-// key <I161> { [ ] }; // KEY_DIRECTION
- key <I162> { [ XF86RotateWindows ] };
+ key <I161> { [ XF86RotateWindows ] };
+ key <I162> { [ XF86TaskPane ] };
key <I163> { [ XF86Mail ] };
key <I164> { [ XF86Favorites ] };
key <I165> { [ XF86MyComputer ] };
@@ -220,7 +217,7 @@ xkb_symbols "evdev" {
// 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 ] };
@@ -230,6 +227,8 @@ xkb_symbols "evdev" {
};
+// Acer
+
// Acer AirKey V
partial alphanumeric_keys
xkb_symbols "airkey" {
@@ -257,7 +256,7 @@ xkb_symbols "acer_c300" {
key <I30> { [ XF86AudioRaiseVolume ] };
key <I5E> { [ XF86Launch2 ] };
key <I75> { [ Help ] };
- key <XFER> { [ XF86Launch1 ] };
+ key <IR7C> { [ XF86Launch1 ] };
};
// Acer Ferrari 4000 Keyboard
@@ -299,15 +298,16 @@ xkb_symbols "acer_laptop" {
key <K66> { [ XF86Launch3 ] }; // Fn+F2 (HAL)
// Special Characters
- // To avoid setting a precedent/ standard that will be broken in later
+ // 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
+ // to make the keys work.
// key <K5D> { [ EuroSign ] }; // Euro (HAL)
// key <K5E> { [ dollar ] }; // Dollar (HAL)
};
+
// Azona
// Azona RF2300 wireless Internet Keyboard
@@ -374,7 +374,6 @@ xkb_symbols "btc5113rf" {
key <I32> { [ XF86Search ] };
};
-
// BTC 9000
partial alphanumeric_keys
xkb_symbols "btc9000" {
@@ -444,7 +443,8 @@ xkb_symbols "btc9019u" {
key <I02> { [ XF86HomePage ] };
};
-// Cherry Blue Line
+
+// Cherry
// Cherry Blue Line CyBo@rd
partial alphanumeric_keys
@@ -461,7 +461,7 @@ xkb_symbols "cherryblue" {
key <I26> { [ XF86AudioMute ] };
key <I63> { [ XF86Standby ] };
key <PRSC> { [ XF86Terminal ] };
- key <XFER> { [ XF86Go ] };
+ key <IR7C> { [ XF86Go ] };
};
// Cherry CyMotion Master XPress
@@ -488,7 +488,7 @@ xkb_symbols "cherryblueb" {
key <I71> { [ XF86Book ] };
key <I72> { [ XF86Book ] };
key <PRSC> { [ XF86Terminal ] };
- key <XFER> { [ XF86Go ] };
+ key <IR7C> { [ XF86Go ] };
};
// Cherry Blue Line CyBo@rd (alternate option)
@@ -505,11 +505,11 @@ xkb_symbols "cherrycyboard" {
key <FK17> { [ XF86Search ] };
key <I02> { [ XF86HomePage ] };
key <K67> { [ XF86Terminal ] };
- key <XFER> { [ XF86AudioMedia ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
// Cherry CyMotion Expert
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "cherrycmexpert" {
include "inet(cherryblueb)"
include "inet(acpi_common)"
@@ -520,7 +520,7 @@ xkb_symbols "cherrycmexpert" {
// Chicony
// Chicony Internet Keyboard
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "chicony" {
include "inet(acpi_common)"
key <I12> { [ XF86AudioMute ] };
@@ -542,7 +542,7 @@ xkb_symbols "chicony" {
};
// Chicony KU-0108
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "chicony0108" {
include "inet(cherrycyboard)"
};
@@ -592,7 +592,7 @@ xkb_symbols "compaqeak8" {
};
// Compaq Internet Keyboard (7 keys)
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "compaqik7" {
key <I12> { [ XF86LightBulb ] };
key <I1E> { [ XF86Mail ] };
@@ -630,7 +630,6 @@ xkb_symbols "compaqik18" {
key <I68> { [ Print ] };
};
-
// Laptop/notebook Compaq (eg. Armada, Evo) Laptop Keyboard
partial alphanumeric_keys
xkb_symbols "armada" {
@@ -639,9 +638,9 @@ xkb_symbols "armada" {
key <I1E> { [ XF86Mail ] };
key <I1F> { [ XF86HomePage ] };
key <I23> { [ XF86WWW ] };
- key <I59> { [ XF86Launch2 ] }; // Battery Monitor
+ key <I59> { [ XF86Launch2 ] }; // Battery Monitor
key <I6F> { [ XF86AudioMedia ] };
- key <I75> { [ XF86Launch0 ] }; // Info Center
+ key <I75> { [ XF86Launch0 ] }; // Info Center
};
// Laptop/notebook Compaq (eg. Presario) Internet Keyboard
@@ -696,8 +695,8 @@ xkb_symbols "inspiron" {
key <I04> { [ XF86AudioNext ] };
key <I21> { [ XF86Eject ] };
key <I56> { [ XF86Display ] };
- key <NFER> { [ XF86AudioPrev ] };
- key <XFER> { [ XF86AudioPlay, XF86AudioPause ] };
+ key <IR7D> { [ XF86AudioPrev ] };
+ key <IR7C> { [ XF86AudioPlay, XF86AudioPause ] };
};
// DELL USB Multimedia Keyboard (former 8135, generalized, superset of 8125)
@@ -707,8 +706,8 @@ xkb_symbols "dellusbmm" {
// 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 ] };
+ key <K67> { [ XF86MyComputer ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
@@ -728,7 +727,7 @@ xkb_symbols "diamond" {
partial alphanumeric_keys
xkb_symbols "ennyah_dkb1008" {
include "inet(media_nav_acpi_common)"
- key <XFER> { [ XF86AudioMedia ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
@@ -751,8 +750,7 @@ xkb_symbols "genius" {
key <I32> { [ XF86WWW ] };
};
-
-// GeniusComfy21e
+// Genius Comfy 21e
partial alphanumeric_keys
xkb_symbols "geniuscomfy2" {
// Describes the extra keys on a Genius Comfy KB-21e-Scroll
@@ -761,6 +759,7 @@ xkb_symbols "geniuscomfy2" {
key <I23> { [ Return ] };
};
+
// Gyration
partial alphanumeric_keys
@@ -781,7 +780,7 @@ xkb_symbols "gyration" {
// Hewlett-Packard
// Hewlett-Packard Internet Keyboard
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "hpi6" {
include "inet(media_nav_acpi_common)"
key <I02> { [ XF86HomePage ] };
@@ -944,9 +943,8 @@ xkb_symbols "honeywell_euroboard" {
// IBM
-
// IBM Rapid Access
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "rapidaccess" {
key <I12> { [ XF86AudioMute ] };
key <I17> { [ XF86Launch2 ] };
@@ -965,7 +963,7 @@ xkb_symbols "rapidaccess" {
};
// IBM Rapid Access II
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "rapidaccess2" {
include "inet(acpi_common)"
key <I12> { [ XF86AudioNext ] };
@@ -999,10 +997,11 @@ xkb_symbols "ibm_spacesaver" {
};
};
+
// Logitech
// Logitech common definitions
-partial hidden alphanumeric_keys
+hidden partial alphanumeric_keys
xkb_symbols "logitech_base" {
include "inet(media_nav_acpi_common)"
key <I02> { [ XF86HomePage ] };
@@ -1018,7 +1017,7 @@ xkb_symbols "logitech_base" {
};
// Logitech second set of common keys
-partial hidden alphanumeric_keys
+hidden partial alphanumeric_keys
xkb_symbols "logitech_set3" {
key <I17> { [ XF86AudioStop ] };
key <I1E> { [ XF86AudioRaiseVolume ] };
@@ -1034,15 +1033,15 @@ xkb_symbols "logitech_set3" {
key <I55> { [ XF86Save ] }; // F8
key <I56> { [ XF86Documents ] }; // F10
key <I69> { [ XF86Go ] };
- key <XFER> { [ XF86AudioMedia ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
// Logitech Access Keyboard
partial alphanumeric_keys
xkb_symbols "logiaccess" {
include "inet(logitech_base)"
- key <FK13> { [ XF86MailForward ] };
- key <FK14> { [ XF86Send ] };
+ key <FK13> { [ XF86MailForward ] };
+ key <FK14> { [ XF86Send ] };
key <I11> { [ XF86Messenger ] };
key <I12> { [ XF86WebCam ] };
};
@@ -1069,10 +1068,9 @@ 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
+// 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
@@ -1163,7 +1161,7 @@ xkb_symbols "logiultraxc" {
key <KPDC> { [ XF86AudioRaiseVolume ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "logidinovo" {
include "inet(media_nav_common)"
key <I02> { [ XF86HomePage ] };
@@ -1172,16 +1170,16 @@ xkb_symbols "logidinovo" {
key <I21> { [ XF86AudioRaiseVolume ] };
key <K66> { [ XF86AudioLowerVolume ] };
key <KPDC> { [ XF86AudioMute ] };
- key <XFER> { [ XF86AudioMedia ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "logidinovoedge" {
include "inet(media_acpi_common)"
key <I02> { [ XF86HomePage ] };
key <I6C> { [ XF86Mail ] };
key <FK17> { [ XF86Search ] };
- key <XFER> { [ XF86AudioMedia ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
partial alphanumeric_keys
@@ -1220,8 +1218,8 @@ xkb_symbols "logitech_g15" {
key <K74> { [ XF86WWW ] };
key <K75> { [ XF86LaunchE ] };
key <II5D> { [ XF86Launch1 ] };
- key <NFER> { [ XF86Launch2 ] };
- key <XFER> { [ XF86Launch8 ] };
+ key <IR7D> { [ XF86Launch2 ] };
+ key <IR7C> { [ XF86Launch8 ] };
};
@@ -1273,7 +1271,7 @@ xkb_symbols "mx2750" {
// Microsoft
-// Microsoft Natural Wireless Ergonomic Keyboard 4000
+// Microsoft Natural Ergonomic Keyboard 4000
partial alphanumeric_keys
xkb_symbols "microsoft4000" {
include "inet(media_nav_common)"
@@ -1315,39 +1313,39 @@ xkb_symbols "microsoftinet" {
key <I68> { [ XF86AudioStop ] };
};
-// Microsoft Natural Keyboard Pro USB
-partial alphanumeric_keys
- xkb_symbols "microsoftprousb" {
+// 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" {
+ 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
+ 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
@@ -1366,7 +1364,7 @@ xkb_symbols "microsoftprose" {
key <I63> { [ XF86Standby ] };
key <I68> { [ XF86AudioStop ] };
key <PRSC> { [ XF86MyComputer ] };
- key <XFER> { [ XF86AudioMedia ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
// Microsoft Office Keyboard
@@ -1401,28 +1399,28 @@ xkb_symbols "microsoftoffice" {
key <RCTL> { [ XF86Paste ] };
};
-// Microsoft Wireless Multimedia Keyboard 1.0A
-partial alphanumeric_keys
-xkb_symbols "microsoftmult" {
+// 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 ] };
-};
+ 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
@@ -1513,7 +1511,7 @@ xkb_symbols "samsung4500" {
key <I18> { [ XF86Eject ] };
key <I26> { [ Help ] };
key <I59> { [ XF86Explorer ] };
- key <NFER> { [ XF86Launch2 ] };
+ key <IR7D> { [ XF86Launch2 ] };
};
// Samsung SDM 4510P
@@ -1523,7 +1521,7 @@ xkb_symbols "samsung4510" {
key <I02> { [ XF86Launch1 ] };
key <I04> { [ XF86Launch3 ] };
key <I18> { [ XF86Eject ] };
- key <NFER> { [ XF86Launch2 ] };
+ key <IR7D> { [ XF86Launch2 ] };
};
@@ -1646,6 +1644,7 @@ xkb_symbols "symplon" {
key <UP> { [ XF86MenuPB ] };
};
+
// Toshiba
// Toshiba Satellite S3000
@@ -1663,6 +1662,7 @@ xkb_symbols "toshiba_s3000" {
key <I76> { [ XF86AudioLowerVolume ] };
};
+
// Trust
// Trust Wireless Keyboard Classic
@@ -1673,7 +1673,6 @@ xkb_symbols "trust" {
key <I1E> { [ XF86Eject ] };
};
-
// Trust Direct Access Keyboard
partial alphanumeric_keys
xkb_symbols "trustda" {
@@ -1711,6 +1710,7 @@ xkb_symbols "yahoo" {
key <I28> { [ XF86WWW ] };
};
+
// Apple keyboards (macbooks, powerbooks, powermac G5, etc)
partial alphanumeric_keys
xkb_symbols "apple" {
@@ -1748,17 +1748,18 @@ xkb_symbols "cymotionlinux" {
key <I78> { [ XF86Copy ] };
key <K65> { [ XF86Paste ] };
key <K75> { [ XF86ScrollUp ] };
- key <XFER> { [ XF86AudioMedia ] };
+ key <IR7C> { [ XF86AudioMedia ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "silvercrest" {
include "inet(media_nav_acpi_common)"
- key <I02> { [ XF86HomePage ] };
+ key <I02> { [ XF86HomePage ] };
key <I21> { [ XF86Launch2 ] };
key <K67> { [ XF86Launch1 ] };
};
+
// eMachines
partial alphanumeric_keys
@@ -1782,13 +1783,12 @@ xkb_symbols "emachines" {
key <KPSU> { [ KP_Subtract ] };
};
+
// BenQ
+// BenQ X* (X730, X500, X800)
//
-// BenQ X*
-// (X730, X500, X800)
-//
-// to make the FN_LOCK and CONFIG key work on the BenQ X500 , use ...
+// 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
@@ -1800,15 +1800,17 @@ xkb_symbols "benqx" {
key <I31> { [ XF86Calendar ] };
};
+
// Intel
// Intel Classmate
partial alphanumeric_keys
xkb_symbols "classmate" {
- key <I2E> { [ XF86AudioLowerVolume ] };
+ key <I2E> { [ XF86AudioLowerVolume ] };
key <I30> { [ XF86AudioRaiseVolume ] };
};
+
// Unitek
partial alphanumeric_keys
@@ -1822,6 +1824,7 @@ xkb_symbols "unitekkb1925" {
key <I1A> { [ XF86Reload ] };
};
+
// Creative
// Creative Desktop Wireless 7000
@@ -1831,6 +1834,7 @@ xkb_symbols "creativedw7000" {
key <I66> { [ XF86Pictures ] };
};
+
// Compal
// Compal FL90
@@ -1846,13 +1850,13 @@ 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 ] };
@@ -1864,12 +1868,10 @@ xkb_symbols "htcdream" {
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> };
};
diff --git a/test/data/symbols/keypad b/test/data/symbols/keypad
index 85d4d6e..1efc02b 100644
--- a/test/data/symbols/keypad
+++ b/test/data/symbols/keypad
@@ -1,13 +1,11 @@
-partial hidden keypad_keys
+hidden partial keypad_keys
xkb_symbols "overlay" {
include "keypad(overlay1)"
};
-partial hidden keypad_keys
+hidden partial 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> };
@@ -21,7 +19,7 @@ xkb_symbols "overlay1" {
key <KP3> { [ KP_Next ], overlay1=<KO3> };
key <KP0> { [ KP_Insert ], overlay1=<KO0> };
- key <KPDL> { [ KP_Delete ], overlay1=<KODL> };
+ key <KPDL> { [ KP_Delete ], overlay1=<KODL> };
key <KO7> { [ KP_7 ] };
key <KO8> { [ KP_8 ] };
@@ -36,16 +34,12 @@ xkb_symbols "overlay1" {
key <KO3> { [ KP_3 ] };
key <KO0> { [ KP_0 ] };
- key <KODL> { [ KP_Decimal ] };
-
- // End "Keypad" section
+ key <KODL> { [ KP_Decimal ] };
};
-partial hidden keypad_keys
+hidden partial 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> };
@@ -59,7 +53,7 @@ xkb_symbols "overlay2" {
key <KP3> { [ KP_Next ], overlay2=<KO3> };
key <KP0> { [ KP_Insert ], overlay2=<KO0> };
- key <KPDL> { [ KP_Delete ], overlay2=<KODL> };
+ key <KPDL> { [ KP_Delete ], overlay2=<KODL> };
key <KO7> { [ KP_7 ] };
key <KO8> { [ KP_8 ] };
@@ -74,41 +68,40 @@ xkb_symbols "overlay2" {
key <KO3> { [ KP_3 ] };
key <KO0> { [ KP_0 ] };
- key <KODL> { [ KP_Decimal ] };
-
- // End "Keypad" section
+ key <KODL> { [ KP_Decimal ] };
};
-partial hidden default keypad_keys
-xkb_symbols "x11" {
-// Ungrab cancels server/keyboard/pointer grabs
+hidden partial keypad_keys
+xkb_symbols "operators" {
+ // Puts some commands to control the X server on
+ // the fifth level of the keypad's operator keys.
key <KPDV> {
- type="CTRL+ALT",
+ type="CTRL+ALT", // Ungrab cancels server/keyboard/pointer grabs
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",
+ type="CTRL+ALT", // ClsGrb kills whichever client has a grab in effect
symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]
};
-
-// -VMode switches to the previous video mode
key <KPSU> {
- type="CTRL+ALT",
+ type="CTRL+ALT", // -VMode switches to the previous video mode
symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]
};
+ key <KPAD> {
+ type="CTRL+ALT", // +VMode switches to the next video mode
+ symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]
+ };
+};
+
+default hidden partial keypad_keys
+xkb_symbols "x11" {
+
+ include "keypad(operators)"
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 ] };
@@ -116,12 +109,12 @@ xkb_symbols "x11" {
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 <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 ] };
+ key <KPDL> { [ KP_Delete, KP_Decimal ] };
+ key <KPPT> { [ KP_Decimal, KP_Decimal ] };
};
@@ -218,7 +211,7 @@ xkb_symbols "core" {
modifier_map Mod2 { Num_Lock };
- key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+ key <NMLK> { [ Num_Lock ] };
key <KPEN> { [ KP_Enter ] };
key <KPEQ> { [ KP_Equal ] };
};
@@ -247,7 +240,6 @@ xkb_symbols "legacymath" {
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>
-
};
@@ -272,8 +264,8 @@ xkb_symbols "ossmath" {
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>
+ key <KPAD> { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
};
@@ -333,19 +325,19 @@ xkb_symbols "ossmath_latin9" {
// 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
+// ┏━━━━━┱
+// ┃Num ┃ ⇱ Home
+// ┃Lock⇭┃ ⇲ End
+// ┡━━━━━╃─────┼─────┼ ⇞ Page up
+// │ 7 │ 8 │ 9 │ ⇟ Page down
// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions
// │ ⇦ │ │ ⇨ │
// ├─────┼─────┼─────╆
// │ 1 │ 2 │ 3 ┃
-// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None
-// ├─────┴─────┼─────┨ 2 Num Lock ⇭
+// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None
+// ├─────┴─────┼─────┨ 2 Num Lock ⇭
// │ 0 │
// │ ⎀ │
// └───────────┴
@@ -357,7 +349,7 @@ xkb_symbols "legacynumber" {
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
@@ -375,11 +367,11 @@ xkb_symbols "legacynumber" {
// 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
+// ┏━━━━━┱
+// ┃Num ┃ ⇱ Home
+// ┃Lock⇭┃ ⇲ End
+// ┡━━━━━╃─────┼─────┼ ⇞ Page up
+// │ 7 │ 8 │ 9 │ ⇟ Page down
// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions
@@ -399,7 +391,7 @@ xkb_symbols "legacynumber_wang" {
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 $
@@ -415,15 +407,15 @@ xkb_symbols "legacynumber_wang" {
// 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
+// ┏━━━━━┱
+// ┃Num ┃ ⇱ Home
+// ┃Lock⇭┃ ⇲ End
+// ┡━━━━━╃─────┼─────┼ ⇞ Page up
+// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇟ Page down
// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
-// │ 4 ⇐ │ 5 ⇔ │ 6 ⇗ │ ⇦⇧⇨⇩ Directions
-// │ ⇦ ← │ ↔ │ ⇨ ↗ │ ⍽ narrow no-break space
+// │ 4 ⇐ │ 5 ⇔ │ 6 ⇒ │ ⇦⇧⇨⇩ Directions
+// │ ⇦ ← │ ↔ │ ⇨ → │ ⍽ narrow no-break space
// ├─────┼─────┼─────╆
// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃
// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None
@@ -439,7 +431,7 @@ xkb_symbols "ossnumber" {
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 → ⇒
@@ -455,11 +447,11 @@ xkb_symbols "ossnumber" {
// 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
+// ┏━━━━━┱
+// ┃Num ┃ ⇱ Home
+// ┃Lock⇭┃ ⇲ End
+// ┡━━━━━╃─────┼─────┼ ⇞ Page up
+// │ 7 ↖ │ 8 ↑ │ 9 ↗ │ ⇟ Page down
// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert
// ├─────┼─────┼─────┤ ␥ Delete
// │ 4 ← │ 5 ↔ │ 6 → │ ⇦⇧⇨⇩ Directions
@@ -479,7 +471,7 @@ xkb_symbols "ossnumber_wang" {
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 $ →
@@ -530,7 +522,7 @@ partial keypad_keys
xkb_symbols "hex" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
- // None NumLock AltGr
+ // None NumLock AltGr
// symbol row
key <KPDV> { [ NoSymbol, NoSymbol, parenleft ] };
key <KPMU> { [ NoSymbol, NoSymbol, parenright ] };
@@ -540,7 +532,7 @@ xkb_symbols "hex" {
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 ] };
@@ -579,9 +571,10 @@ xkb_symbols "atm" {
partial modifier_keys
xkb_symbols "pointerkeys" {
- key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+ key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
};
+
// Only numbers, operators and decimal separator,
// as seen on keypad overlay on Japanese keyboard.
// ┌─┬─┬─┬─┐
diff --git a/test/data/symbols/latin b/test/data/symbols/latin
index 424768e..25a7d73 100644
--- a/test/data/symbols/latin
+++ b/test/data/symbols/latin
@@ -1,6 +1,6 @@
// Common Latin alphabet layout
-default partial
+default partial
xkb_symbols "basic" {
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
@@ -105,7 +105,7 @@ xkb_symbols "type3" {
key <AC05> { [ g, G, bracketright, ENG ] };
key <AC08> { [ k, K, lstroke, ampersand ] };
- key <AB01> { [ y, Y, guillemotleft, less ] };
+ key <AB01> { [ y, Y, guillemotleft, less ] };
key <AB04> { [ v, V, at, grave ] };
key <AB05> { [ b, B, braceleft, apostrophe ] };
key <AB06> { [ n, N, braceright, braceright ] };
@@ -114,9 +114,9 @@ xkb_symbols "type3" {
key <AB09> { [ period, colon, greater, division ] };
};
-// Another one Latin common layout
+// Another common Latin layout
// (German, Estonian, Spanish, Icelandic, Italian, Latin American, Portuguese)
-
+
partial
xkb_symbols "type4" {
@@ -150,7 +150,7 @@ xkb_symbols "nodeadkeys" {
partial
xkb_symbols "type2_nodeadkeys" {
-
+
include "latin(nodeadkeys)"
key <AD11> { [ aring, Aring, diaeresis, degree ] };
@@ -162,13 +162,13 @@ xkb_symbols "type2_nodeadkeys" {
partial
xkb_symbols "type3_nodeadkeys" {
-
+
include "latin(nodeadkeys)"
};
partial
xkb_symbols "type4_nodeadkeys" {
-
+
include "latin(nodeadkeys)"
key <AB10> { [ minus, underscore, dead_belowdot, abovedot ] };
@@ -178,12 +178,12 @@ xkb_symbols "type4_nodeadkeys" {
// 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
-// └────┘
+// ┌─────┐
+// │ 2 4 │ 2 = Shift, 4 = Level3 + Shift
+// │ 1 3 │ 1 = Normal, 3 = Level3
+// └─────┘
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
-// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ˙ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back ┃
+// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ̇ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back- ┃
// │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃ space ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { « │ } » ┃ Enter ┃
@@ -198,7 +198,7 @@ xkb_symbols "type4_nodeadkeys" {
// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
-
+
partial
xkb_symbols "intl" {
diff --git a/test/data/symbols/level3 b/test/data/symbols/level3
index 2f5575c..1aef970 100644
--- a/test/data/symbols/level3
+++ b/test/data/symbols/level3
@@ -1,65 +1,64 @@
-// these variants assign various XKB keycodes to ISO_Level3_Shift so that
-// the third shift level can be reached
-//
+// These partial variants assign ISO_Level3_Shift to various XKB keycodes
+// so that the third shift level can be reached.
-// Ensure a mapping to a real modifier for LevelThree
+// The default behaviour:
+// the right Alt key (AltGr) chooses the third symbol engraved on a key.
+default partial modifier_keys
+xkb_symbols "ralt_switch" {
+ key <RALT> {
+ type[Group1]="ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level3_Shift ]
+ };
+ include "level3(modifier_mapping)"
+};
+
+// Ensure a mapping to a real modifier for LevelThree.
partial modifier_keys
xkb_symbols "modifier_mapping" {
- key.type[Group1] = "ONE_LEVEL";
-
replace key <LVL3> {
+ type[Group1] = "ONE_LEVEL",
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.
+// The right Alt key never chooses the third level.
+// This option attempts to undo the effect of a layout's inclusion of
+// 'ralt_switch'. You may want to also select another level3 option
+// to map the level3 shift to some other key.
partial modifier_keys
xkb_symbols "ralt_alt" {
- key <RALT> {
+ 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[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> };
+ };
+ modifier_map Mod1 { <RALT> };
};
+// The right Alt key (while pressed) chooses the third shift level,
+// and Compose is mapped to its second level.
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
+// A special case of the right-Alt switch -- for use with grp:alts_toggle.
+hidden partial modifier_keys
xkb_symbols "ralt_switch_for_alts_toggle" {
- virtual_modifiers LAlt, AlGr;
+ virtual_modifiers LAlt, AltGr;
key <LALT> {
type[Group1]="PC_RALT_LEVEL2",
- symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
+ symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
virtualMods= LAlt
};
key <RALT> {
@@ -70,89 +69,85 @@ xkb_symbols "ralt_switch_for_alts_toggle" {
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.)
+// Either Alt key (while pressed) chooses the third shift level.
+// (To be used mostly to imitate Mac OS functionality.)
partial modifier_keys
xkb_symbols "alt_switch" {
include "level3(lalt_switch)"
include "level3(ralt_switch)"
};
+// The left Alt key (while pressed) chooses the third shift level.
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).
+// The right Ctrl key (while pressed) chooses the third shift level.
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).
+// The Menu key (while pressed) chooses the third shift level.
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.
+// Either Win key (while pressed) 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.
+// The left Win key (while pressed) 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.
+// The right Win key (while pressed) chooses the third shift level.
+// (When using this map, you should set 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.
+// The Enter key on the kepypad (while pressed) 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)"
};
+// The CapsLock key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "caps_switch" {
key <CAPS> {
@@ -162,6 +157,7 @@ xkb_symbols "caps_switch" {
include "level3(modifier_mapping)"
};
+// The Backslash key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "bksl_switch" {
key <BKSL> {
@@ -171,6 +167,7 @@ xkb_symbols "bksl_switch" {
include "level3(modifier_mapping)"
};
+// The Less/Greater key (while pressed) chooses the third shift level.
partial modifier_keys
xkb_symbols "lsgt_switch" {
key <LSGT> {
@@ -180,6 +177,8 @@ xkb_symbols "lsgt_switch" {
include "level3(modifier_mapping)"
};
+// The CapsLock key (while pressed) chooses the third shift level,
+// and latches when pressed together with another third-level chooser.
partial modifier_keys
xkb_symbols "caps_switch_latch" {
key <CAPS> {
@@ -189,6 +188,8 @@ xkb_symbols "caps_switch_latch" {
include "level3(modifier_mapping)"
};
+// The Backslash key (while pressed) chooses the third shift level,
+// and latches when pressed together with another third-level chooser.
partial modifier_keys
xkb_symbols "bksl_switch_latch" {
key <BKSL> {
@@ -198,6 +199,8 @@ xkb_symbols "bksl_switch_latch" {
include "level3(modifier_mapping)"
};
+// The Less/Greater key (while pressed) chooses the third shift level,
+// and latches when pressed together with another third-level chooser.
partial modifier_keys
xkb_symbols "lsgt_switch_latch" {
key <LSGT> {
diff --git a/test/data/symbols/level5 b/test/data/symbols/level5
index 09d71cd..1ae2e6d 100644
--- a/test/data/symbols/level5
+++ b/test/data/symbols/level5
@@ -1,61 +1,55 @@
-// these variants assign various XKB keycodes to ISO_Level5_Shift so that
-// the third shift level can be reached
-//
+// These partial variants assign ISO_Level5_Shift to various XKB keycodes
+// so that the fifth 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).
+// The right Ctrl key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "rctrl_switch" {
key <RCTL> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
- };
+ };
include "level5(modifier_mapping)"
};
+// The Less/Greater key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "lsgt_switch" {
key <LSGT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
- };
+ };
include "level5(modifier_mapping)"
};
+// The right Alt key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
- };
+ };
include "level5(modifier_mapping)"
};
+// Ensure a mapping to a real modifier for LevelFive.
+partial modifier_keys
+xkb_symbols "modifier_mapping" {
+ replace key <MDSW> {
+ type[Group1] = "ONE_LEVEL",
+ symbols[Group1] = [ ISO_Level5_Shift ]
+ };
+ modifier_map Mod3 { <MDSW> };
+};
-// The following modifier keys are used to switch to the third shift and to set a
-// corresponding lock, implemented as NumLock.
+// 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)
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 ],
@@ -64,90 +58,85 @@ xkb_symbols "lock" {
modifier_map Mod2 { <HYPR> };
};
+// The following modifier keys are used to switch to the third shift level
+// and to set a corresponding lock, implemented as NumLock.
+
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 ]
+ 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 ]
+ 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 ]
+ 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 ]
+ 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 ]
+ 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 ]
+ 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 ]
+ 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 ]
+ 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 ]
};
};
diff --git a/test/data/symbols/pc b/test/data/symbols/pc
index d259709..0199713 100644
--- a/test/data/symbols/pc
+++ b/test/data/symbols/pc
@@ -1,14 +1,14 @@
-default partial alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
- key <ESC> { [ Escape ] };
+ key <ESC> { [ Escape ] };
- // the extra key on most European keyboards
- key <LSGT> { [ less, greater, bar, brokenbar ] };
+ // The extra key on many European keyboards:
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
- // these keys are common to all layouts
- key <BKSL> { [ backslash, bar ] };
- key <SPCE> { [ space ] };
+ // The following keys are common to all layouts.
+ key <BKSL> { [ backslash, bar ] };
+ key <SPCE> { [ space ] };
include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
@@ -17,32 +17,28 @@ xkb_symbols "pc105" {
key <BKSP> { [ BackSpace, BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <RTRN> { [ Return ] };
+ key <RTRN> { [ Return ] };
- key <CAPS> { [ Caps_Lock ] };
+ key <CAPS> { [ Caps_Lock ] };
+ key <NMLK> { [ Num_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 <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
+ // Beginning of 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
+ // Fake keys for virtual<->real modifiers mapping:
key <LVL3> { [ ISO_Level3_Shift ] };
key <MDSW> { [ Mode_switch ] };
modifier_map Mod5 { <LVL3>, <MDSW> };
@@ -58,6 +54,7 @@ xkb_symbols "pc105" {
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
+ // End of modifier mappings.
key <OUTP> { [ XF86Display ] };
key <KITG> { [ XF86KbdLightOnOff ] };
@@ -65,13 +62,13 @@ xkb_symbols "pc105" {
key <KIUP> { [ XF86KbdBrightnessUp ] };
};
-partial hidden alphanumeric_keys
+hidden partial alphanumeric_keys
xkb_symbols "editing" {
key <PRSC> {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
- key <SCLK> { [ Scroll_Lock ] };
+ key <SCLK> { [ Scroll_Lock ] };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
diff --git a/test/data/symbols/ru b/test/data/symbols/ru
index a761c30..c4f4818 100644
--- a/test/data/symbols/ru
+++ b/test/data/symbols/ru
@@ -1,89 +1,89 @@
-// based on
-// russian standard keyboard
+// Keyboard layouts for Russia.
// 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
+default partial alphanumeric_keys
xkb_symbols "winkeys" {
- include "ru(common)"
+ 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 <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 <AB10> { [ period, comma ] };
+ key <BKSL> { [ backslash, slash ] };
};
-partial hidden alphanumeric_keys
+hidden partial 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";
+ 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 ] };
include "kpdl(comma)"
};
partial alphanumeric_keys
xkb_symbols "legacy" {
- include "ru(common)"
+ include "ru(common)"
name[Group1]= "Russian (legacy)";
};
@@ -92,60 +92,65 @@ 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 ] };
+ 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 ] };
+
+ 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 ] };
+
+ 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
@@ -153,57 +158,57 @@ 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 ] };
+ 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
@@ -212,146 +217,128 @@ 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 ] };
-
+ 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 ] };
+ 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
+partial alphanumeric_keys
xkb_symbols "os_legacy" {
- include "ru(common)"
+ 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 ] };
+ key <TLDE> { [ Cyrillic_e, Cyrillic_E ] };
+ key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
+ key <AC11> { [ 0x010004D5, 0x010004D4 ] };
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "os_winkeys" {
- include "ru(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 ] };
+ 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)"
+ 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 ] };
+ key <AD03> { [ Cyrillic_u, Cyrillic_U, 0x010004f3, 0x010004f2 ] };
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE, 0x010004d7, 0x010004d6 ] };
+ key <AC04> { [ Cyrillic_a, Cyrillic_A, 0x010004d1, 0x010004d0 ] };
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES, 0x010004ab, 0x010004aa ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "udm" {
- include "ru(winkeys)"
+ 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 ] };
+ 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)"
+ 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 ] };
+ 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
+// last changes 2007/10/23
+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 ] };
+ // 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)"
};
@@ -364,37 +351,23 @@ 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 ] };
+ 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)"
};
@@ -404,38 +377,37 @@ xkb_symbols "sah" {
//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)"
+ 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 ] };
+ 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)"
};
@@ -444,84 +416,84 @@ 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 <TLDE> { [ parenright, parenleft ] };
+ key <AE04> { [ 4, currency ] };
+ key <AE09> { [ 9, question ] };
+ key <AE10> { [ 0, percent ] };
- key <AB10> { [ Cyrillic_io, Cyrillic_IO ] };
+ key <AB10> { [ Cyrillic_io, Cyrillic_IO ] };
};
partial alphanumeric_keys
xkb_symbols "bak" {
- include "ru(winkeys)"
+ 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 ]};
-
+ 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.
-
+// Serbian characters are added as third-level symbols to Russian keyboard layout.
partial alphanumeric_keys
xkb_symbols "srp" {
- include "ru(common)"
- include "level3(ralt_switch)"
+ include "ru(common)"
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 ] };
+ 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 ] };
+
+ include "level3(ralt_switch)"
};
// 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 ] };
+
+ key <AC04> { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] };
+ key <AD03> { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] };
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] };
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] };
+ key <AC11> { [ Cyrillic_e, Cyrillic_E, U04E9, U04E8 ] };
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, U04EB, U04EA ] };
+ key <AC01> { [ Cyrillic_ef, Cyrillic_EF, UF537, UF536 ] };
include "level3(ralt_switch)"
};
@@ -529,71 +501,73 @@ xkb_symbols "chm" {
// 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>
-
+// based on the Russian standard keyboard
+// by 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 ] };
+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 digraph 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 ] }; // \ / : ? NB: 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]
+// This is a modified Russian standard keyboard, with the third level containing
+// Ukrainian and Belorusian alphabetic letters and commonly used Unicode symbols.
+// For a description see http://wiki.opennet.ru/RUU [in Russian].
// Vasyĺ V. Vercynśkyj <fuckel@ukr.net>
-// Last Changes 2011/05/11
+// last changes 2011/05/11
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫ ┃
@@ -611,43 +585,43 @@ xkb_symbols "chu"
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
// ┃ Ctrl ┃ Meta ┃ Alt ┃ Space ┃AltGr ⇮┃ Menu ┃ Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
-
-
-
partial alphanumeric_keys
xkb_symbols "ruu" {
- include "ru(common)"
+ 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 ] };
+ 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)"
};
@@ -660,18 +634,18 @@ partial alphanumeric_keys
// Apple layout
partial alphanumeric_keys
xkb_symbols "mac" {
-include "ru(common)"
+ 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 ] };
+ 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 ] };
};
diff --git a/test/data/symbols/shift b/test/data/symbols/shift
index 6fbec5b..8f90223 100644
--- a/test/data/symbols/shift
+++ b/test/data/symbols/shift
@@ -1,4 +1,5 @@
-partial modifier_keys
+// Cancel CapsLock when a Shift key is pressed.
+partial modifier_keys
xkb_symbols "breaks_caps" {
key <LFSH> {
type = "ALPHABETIC",
@@ -16,20 +17,21 @@ xkb_symbols "breaks_caps" {
};
};
-// When pressed together with another Shift key, set/release Lock.
+
+// Toggle CapsLock when pressed together with the other Shift key.
partial modifier_keys
xkb_symbols "lshift_both_capslock" {
key <LFSH> {
type[Group1]="TWO_LEVEL",
- symbols[Group1] = [ Shift_L, Caps_Lock ]
+ symbols[Group1] = [ Shift_L, Caps_Lock ]
};
};
-// When pressed together with another Shift key, set or unset Lock.
+// Toggle CapsLock when pressed together with the other Shift key.
partial modifier_keys
xkb_symbols "rshift_both_capslock" {
key <RTSH> {
type[Group1]="TWO_LEVEL",
- symbols[Group1] = [ Shift_R, Caps_Lock ]
+ symbols[Group1] = [ Shift_R, Caps_Lock ]
};
};
partial modifier_keys
@@ -38,20 +40,21 @@ xkb_symbols "both_capslock" {
include "shift(rshift_both_capslock)"
};
-// Release Lock when pressed alone and set Lock when pressed with another Shift key.
+
+// Set CapsLock when pressed with the other Shift key, release it when pressed alone.
partial modifier_keys
xkb_symbols "lshift_both_capslock_cancel" {
key <LFSH> {
type[Group1]="ALPHABETIC",
- symbols[Group1] = [ Shift_L, Caps_Lock ]
+ symbols[Group1] = [ Shift_L, Caps_Lock ]
};
};
-// Release Lock when pressed alone and set Lock when pressed with another Shift key.
+// Set CapsLock when pressed with the other Shift key, release it when pressed alone.
partial modifier_keys
xkb_symbols "rshift_both_capslock_cancel" {
key <RTSH> {
type[Group1]="ALPHABETIC",
- symbols[Group1] = [ Shift_R, Caps_Lock ]
+ symbols[Group1] = [ Shift_R, Caps_Lock ]
};
};
partial modifier_keys
@@ -61,20 +64,20 @@ xkb_symbols "both_capslock_cancel" {
};
-// When pressed together with another Shift key, lock/unlock Shift.
+// Toggle ShiftLock when pressed together with the other Shift key.
partial modifier_keys
xkb_symbols "lshift_both_shiftlock" {
key <LFSH> {
type[Group1]="TWO_LEVEL",
- symbols[Group1] = [ Shift_L, Shift_Lock ]
+ symbols[Group1] = [ Shift_L, Shift_Lock ]
};
};
-// When pressed together with another Shift key, lock/unlock Shift.
+// Toggle ShiftLock when pressed together with the other Shift key.
partial modifier_keys
xkb_symbols "rshift_both_shiftlock" {
key <RTSH> {
type[Group1]="TWO_LEVEL",
- symbols[Group1] = [ Shift_R, Shift_Lock ]
+ symbols[Group1] = [ Shift_R, Shift_Lock ]
};
};
partial modifier_keys
diff --git a/test/data/symbols/srvr_ctrl b/test/data/symbols/srvr_ctrl
index 73b5af2..902c51c 100644
--- a/test/data/symbols/srvr_ctrl
+++ b/test/data/symbols/srvr_ctrl
@@ -1,41 +1,12 @@
-// Actions which control the server's behavior
+// Actions which control the server's behavior.
partial keypad_keys function_keys
xkb_symbols "xfree86" {
- include "srvr_ctrl(stdkeypad)"
+ include "keypad(operators)"
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
+partial function_keys
xkb_symbols "fkey2vt" {
key <FK01> {
@@ -97,7 +68,6 @@ xkb_symbols "fkey2vt" {
type="CTRL+ALT",
symbols[Group1]= [ F12, F12, F12, F12, XF86_Switch_VT_12 ]
};
-
};
partial function_keys keypad_keys
@@ -123,3 +93,18 @@ xkb_symbols "no_srvr_keys" {
key <KPSU> { [ KP_Subtract, KP_Subtract ] };
key <KPAD> { [ KP_Add, KP_Add ] };
};
+
+partial function_keys
+xkb_symbols "grab_debug" {
+
+ key <FK11> {
+ type="CTRL+ALT",
+ symbols[Group1]= [ F11, F11, F11, F11, XF86LogGrabInfo ]
+ };
+
+ key <FK12> {
+ type="CTRL+ALT",
+ symbols[Group1]= [ F12, F12, F12, F12, XF86LogWindowTree ]
+ };
+
+};
diff --git a/test/data/symbols/terminate b/test/data/symbols/terminate
index c74220b..a43f2b9 100644
--- a/test/data/symbols/terminate
+++ b/test/data/symbols/terminate
@@ -1,4 +1,4 @@
-partial default modifier_keys
+default partial modifier_keys
xkb_symbols "ctrl_alt_bksp" {
key <BKSP> {
type="CTRL+ALT",
diff --git a/test/data/symbols/us b/test/data/symbols/us
index 4a5228b..35eb166 100644
--- a/test/data/symbols/us
+++ b/test/data/symbols/us
@@ -1,10 +1,8 @@
-default
-partial alphanumeric_keys modifier_keys
+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 ] };
@@ -56,15 +54,13 @@ xkb_symbols "basic" {
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)"
+ name[Group1]= "English (US, with euro on 5)";
include "eurosign(5)"
@@ -75,11 +71,9 @@ xkb_symbols "euro" {
partial alphanumeric_keys
xkb_symbols "intl" {
- name[Group1]= "English (US, international with dead keys)";
-
include "us(basic)"
+ name[Group1]= "English (US, international with dead keys)";
- // Alphanumeric section
key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
@@ -132,6 +126,8 @@ xkb_symbols "intl" {
key <AB10> { [ slash, question, questiondown, dead_hook ] };
key <BKSL> { [ backslash, bar, notsign, brokenbar ] };
+ key <LSGT> { [ backslash, bar, backslash, bar ] };
+
include "level3(ralt_switch)"
};
@@ -165,9 +161,8 @@ xkb_symbols "intl" {
partial alphanumeric_keys
xkb_symbols "alt-intl" {
- name[Group1]= "English (US, alternative international)";
-
include "us"
+ name[Group1]= "English (US, alternative international)";
key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
key <AE05> { [ 5, percent, EuroSign ] };
@@ -186,6 +181,8 @@ xkb_symbols "alt-intl" {
key <AB09> { [ period, greater, dead_abovedot, dead_circumflex ] };
key <AB10> { [ slash, question, dead_hook, dead_hook ] };
+ key <LSGT> { [ backslash, bar, backslash, bar ] };
+
include "level3(ralt_switch)"
};
@@ -196,8 +193,6 @@ xkb_symbols "dvorak" {
name[Group1]= "English (Dvorak)";
- // Alphanumeric section
-
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam ] };
@@ -259,9 +254,8 @@ xkb_symbols "dvorak" {
partial alphanumeric_keys
xkb_symbols "dvorak-intl" {
- name[Group1]= "English (Dvorak, international with dead keys)";
-
include "us(dvorak)"
+ name[Group1]= "English (Dvorak, international with dead keys)";
key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
@@ -338,9 +332,8 @@ xkb_symbols "dvorak-intl" {
partial alphanumeric_keys
xkb_symbols "dvorak-alt-intl" {
- name[Group1]= "English (Dvorak alternative international no dead keys)";
-
include "us(dvorak)"
+ name[Group1]= "English (Dvorak alternative international no dead keys)";
key <AE04> { [ 4, dollar, EuroSign ] };
@@ -427,7 +420,7 @@ xkb_symbols "dvorak-l" {
partial alphanumeric_keys
xkb_symbols "dvorak-r" {
-
+
include "us(dvorak)"
name[Group1]= "English (right handed Dvorak)";
@@ -490,8 +483,6 @@ xkb_symbols "dvorak-classic" {
name[Group1]= "English (classic Dvorak)";
- // Alphanumeric section
-
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ bracketleft, braceleft ] };
@@ -552,8 +543,8 @@ xkb_symbols "dvorak-classic" {
// symbols that usually follows, accented characters are possible for I18N.
partial alphanumeric_keys
xkb_symbols "dvp" {
- include "us(dvorak)"
+ include "us(dvorak)"
name[Group1] = "English (programmer Dvorak)";
// Unmodified Shift AltGr Shift+AltGr
@@ -571,13 +562,13 @@ xkb_symbols "dvp" {
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 <AE11> { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang
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 <AD02> { [ comma, less, guillemotleft, ellipsis ] };
key <AD03> { [ period, greater, guillemotright ] };
key <AD04> { [ p, P, paragraph, section ] };
key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
@@ -585,7 +576,7 @@ xkb_symbols "dvp" {
// upper row, right side
key <AD08> { [ c, C, ccedilla, Ccedilla ] };
key <AD09> { [ r, R, registered, trademark ] };
- key <AD11> { [ slash, question, questiondown ] };
+ key <AD11> { [ slash, question, questiondown, U203D ] }; // interrobang
key <AD12> { [ at, asciicircum, dead_circumflex, dead_caron ] };
// home row, left side
@@ -600,11 +591,12 @@ xkb_symbols "dvp" {
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 <AC11> { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
key <BKSL> { [ backslash, bar ] };
// lower row, left side
key <AB01> { [ apostrophe, quotedbl, dead_acute ] };
+ key <AB07> { [ m, M, mu ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
include "level3(ralt_switch)"
};
@@ -622,9 +614,8 @@ xkb_symbols "dvp" {
partial alphanumeric_keys
xkb_symbols "rus" {
- name[Group1]= "Russian (US, phonetic)";
-
include "us(basic)"
+ name[Group1]= "Russian (US, phonetic)";
key.type[group1]="FOUR_LEVEL_ALPHABETIC";
@@ -729,16 +720,16 @@ xkb_symbols "mac" {
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 ] };
@@ -816,9 +807,8 @@ xkb_symbols "colemak" {
partial alphanumeric_keys
xkb_symbols "altgr-intl" {
- name[Group1]= "English (international AltGr dead keys)";
-
include "us(intl)"
+ name[Group1]= "English (international AltGr dead keys)";
// five dead keys moved into level3:
@@ -853,7 +843,7 @@ xkb_symbols "altgr-intl" {
partial alphanumeric_keys
xkb_symbols "classmate" {
include "us(basic)"
- name[Group1]= "USA - ClassmatePC";
+ name[Group1]= "English (US)";
key <LSGT> { [ backslash, bar, backslash, bar ] };
@@ -898,11 +888,11 @@ xkb_symbols "classmate-intl" {
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 ] };
+ dead_abovedot, dead_caron ] };
key <KPDV> { [ KP_Divide, KP_Divide,
questiondown, dead_hook ] };
@@ -931,9 +921,9 @@ xkb_symbols "classmate-alt-intl" {
key <KPAD> { [ KP_Add, KP_Add,
dead_ogonek, dead_diaeresis ] };
-
+
key <KPDL> { [ KP_Delete, KP_Decimal,
- dead_abovedot, dead_circumflex ] };
+ dead_abovedot, dead_circumflex ] };
key <KPDV> { [ KP_Divide, KP_Divide,
dead_hook, dead_hook ] };
@@ -979,11 +969,11 @@ xkb_symbols "classmate-altgr-intl" {
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 ] };
+ dead_abovedot, dead_caron ] };
key <KPDV> { [ KP_Divide, KP_Divide,
questiondown, dead_hook ] };
@@ -1052,14 +1042,14 @@ xkb_symbols "olpc" {
partial alphanumeric_keys
xkb_symbols "olpc2" {
include "us(olpc)"
- name[Group1]= "English (layout toggle on multiply/divide key)";
+ name[Group1]= "English (the divide/multiply keys toggle the layout)";
include "group(olpc)"
};
xkb_symbols "olpcm" {
include "us(basic)"
- name[Group1]= "USA";
+ name[Group1]= "English (US)";
// Mechanical (non-membrane) OLPC int'l US English keyboard layout.
// See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard
@@ -1122,7 +1112,6 @@ xkb_symbols "chr" {
name[Group1]= "Cherokee";
key.type[group1]="ALPHABETIC";
- // Alphanumeric section
key <TLDE> { [ grave, U13CA ] };
key <AE01> { [ 1, U13B1 ] };
key <AE02> { [ 2, U13C7 ] };
@@ -1173,8 +1162,6 @@ xkb_symbols "chr" {
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.
@@ -1182,9 +1169,8 @@ xkb_symbols "chr" {
partial alphanumeric_keys
xkb_symbols "hbs" {
- name[Group1]= "Serbo-Croatian (US)";
-
include "us"
+ name[Group1]= "Serbo-Croatian (US)";
key <TLDE> { [ grave, asciitilde ] };
key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
@@ -1254,11 +1240,9 @@ xkb_symbols "htcdream" {
partial alphanumeric_keys
xkb_symbols "workman" {
- name[Group1]= "English (Workman)";
-
include "us(basic)"
+ name[Group1]= "English (Workman)";
- // Alphanumeric section
key <AD01> { [ q, Q ] };
key <AD02> { [ d, D ] };
key <AD03> { [ r, R ] };
@@ -1288,7 +1272,6 @@ xkb_symbols "workman" {
key <AB05> { [ v, V ] };
key <AB06> { [ k, K ] };
key <AB07> { [ l, L ] };
- // End alphanumeric section
key <CAPS> { [ BackSpace, Escape, BackSpace, BackSpace ] };
@@ -1298,11 +1281,9 @@ xkb_symbols "workman" {
partial alphanumeric_keys
xkb_symbols "workman-intl" {
- name[Group1]= "English (Workman, international with dead keys)";
-
include "us(intl)"
+ name[Group1]= "English (Workman, international with dead keys)";
- // Alphanumeric section
key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
key <AD02> { [ d, D, eth, ETH ] };
key <AD03> { [ r, R, registered, registered ] };
@@ -1332,18 +1313,65 @@ xkb_symbols "workman-intl" {
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)"
};
+// Norman keyboard layout symbols for xkb on X.Org Server 7.x
+// Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info
+// To the extent possible under law, the author(s) have dedicated all
+// copyright and related and neighboring rights to this software to the
+// public domain worldwide. This software is distributed without any warranty.
+
+partial alphanumeric_keys
+xkb_symbols "norman" {
+
+ include "us(basic)"
+ name[Group1]= "English (Norman)";
+
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ d, D ] };
+ key <AD04> { [ f, F ] };
+ key <AD05> { [ k, K ] };
+ key <AD06> { [ j, J ] };
+ key <AD07> { [ u, U ] };
+ key <AD08> { [ r, R ] };
+ key <AD09> { [ l, L ] };
+ key <AD10> { [ semicolon, colon ] };
+
+ key <AC01> { [ a, A ] };
+ key <AC02> { [ s, S ] };
+ key <AC03> { [ e, E ] };
+ key <AC04> { [ t, T ] };
+ key <AC05> { [ g, G ] };
+ key <AC06> { [ y, Y ] };
+ key <AC07> { [ n, N ] };
+ key <AC08> { [ i, I ] };
+ key <AC09> { [ o, O ] };
+ key <AC10> { [ h, H ] };
+
+ key <AB01> { [ z, Z ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ b, B ] };
+ key <AB06> { [ p, P ] };
+ key <AB07> { [ m, M ] };
+
+ key <CAPS> { [ 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)";
@@ -1360,7 +1388,7 @@ xkb_symbols "cz_sk_de" {
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 ] };
@@ -1475,11 +1503,10 @@ xkb_symbols "alt-intl-unicode" {
};
-partial alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "ats" {
include "us"
-
name[Group1]= "Atsina";
//Using Dead key to get COMBINING COMMA ABOVE for ejectives on
@@ -1496,7 +1523,6 @@ xkb_symbols "ats" {
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 ] };
@@ -1510,28 +1536,24 @@ 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 ] };
+ name[Group1]= "Coeur d'Alene Salish";
+
+ 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
};
diff --git a/test/data/types/basic b/test/data/types/basic
index 552b834..fff06be 100644
--- a/test/data/types/basic
+++ b/test/data/types/basic
@@ -1,7 +1,8 @@
default xkb_types "basic" {
// Fairly standard definitions for
- // the four required key types
+ // three of the four required key types.
+ // The fourth type "KEYPAD" is defined in the "numpad" file.
virtual_modifiers NumLock;
@@ -19,11 +20,11 @@ default xkb_types "basic" {
};
type "ALPHABETIC" {
- modifiers = Shift+Lock;
- map[Shift] = Level2;
- map[Lock] = Level2;
- level_name[Level1] = "Base";
- level_name[Level2] = "Caps";
+ modifiers = Shift+Lock;
+ map[Shift] = Level2;
+ map[Lock] = Level2;
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Caps";
};
};
diff --git a/test/data/types/extra b/test/data/types/extra
index 465796b..e7529f4 100644
--- a/test/data/types/extra
+++ b/test/data/types/extra
@@ -1,20 +1,20 @@
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".
+
+ // Defines a type with a four-level shift, similar to the three-level
+ // type used for iso9995, but it lets the Shift key behave "normally".
virtual_modifiers LevelThree;
type "FOUR_LEVEL" {
- modifiers = Shift+LevelThree;
+ 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";
+ level_name[Level3] = "Alt Base";
+ level_name[Level4] = "Shift Alt";
};
type "FOUR_LEVEL_ALPHABETIC" {
@@ -40,7 +40,7 @@ partial default xkb_types "default" {
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[Lock+LevelThree] = Level3;
- map[Lock+Shift+LevelThree] = Level4;
+ map[Lock+Shift+LevelThree] = Level4;
preserve[Lock+LevelThree] = Lock;
preserve[Lock+Shift+LevelThree] = Lock;
level_name[Level1] = "Base";
@@ -49,11 +49,9 @@ partial default xkb_types "default" {
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
+ // A four-level keypad variant. The first two levels are controlled by
+ // NumLock (with active shifting like in KEYPAD). LevelThree overrides
+ // this mode, with two additional shifted levels.
type "FOUR_LEVEL_MIXED_KEYPAD" {
modifiers = Shift+NumLock+LevelThree;
map[None] = Level1;
@@ -61,32 +59,32 @@ partial default xkb_types "default" {
map[NumLock] = Level2;
map[Shift] = Level2;
map[LevelThree] = Level3;
- map[NumLock+LevelThree] = Level3;
+ map[NumLock+LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
- map[Shift+NumLock+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
+ // Base level, two shifted 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;
+ 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";
+ 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)
+// A special type for keys used in the Serbian Latin Unicode keymap.
+// 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; etcetera).
type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
modifiers = Shift+Lock+LevelThree;
@@ -105,21 +103,20 @@ partial default xkb_types "default" {
level_name[Level4] = "Shift AltGr";
};
-// type for e.g. german ssharp which is capitalized SS.
+// A key type for the German ssharp (for example), which is capitalized as 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.
+// 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.
+// The capital form of ssharp (called sharp s) only exists for completely
+// capitalized text, not for words at the beginning of sentences nor for
+// nouns (nouns in German normally start with a captial letter).
+// The ssharp key, to the right of the zero key, takes this into account
+// and has a questionmark mapped to 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;
@@ -139,7 +136,7 @@ partial default xkb_types "default" {
};
};
-// This enables the four level shifting also for the keypad.
+// This enables the four-level shifting also for the keypad.
partial xkb_types "keypad" {
virtual_modifiers LevelThree;
@@ -157,5 +154,5 @@ partial xkb_types "keypad" {
level_name[Level2] = "Number";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Alt Number";
- };
+ };
};
diff --git a/test/data/types/iso9995 b/test/data/types/iso9995
index 0cf3420..d3c4e0b 100644
--- a/test/data/types/iso9995
+++ b/test/data/types/iso9995
@@ -1,8 +1,8 @@
partial default xkb_types "default" {
- // Definition for a key type which
- // can be used to implement ISO9995
- // style level three shift
+ // A key type which can be used to implement
+ // an ISO9995-style level-three shift.
+
virtual_modifiers LevelThree;
type "THREE_LEVEL" {
diff --git a/test/data/types/level5 b/test/data/types/level5
index 672f0a1..1796f50 100644
--- a/test/data/types/level5
+++ b/test/data/types/level5
@@ -1,12 +1,12 @@
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".
+
+ // Defines a type with an eight-level shift, similar to the 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;
+ modifiers = Shift+LevelThree+LevelFive;
map[None] = Level1;
map[Shift] = Level2;
map[LevelThree] = Level3;
@@ -17,8 +17,8 @@ partial default xkb_types "default" {
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[Level3] = "Alt Base";
+ level_name[Level4] = "Shift Alt";
level_name[Level5] = "X";
level_name[Level6] = "X Shift";
level_name[Level7] = "X Alt Base";
@@ -33,7 +33,7 @@ partial default xkb_types "default" {
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[Lock+LevelThree] = Level4;
- map[Lock+Shift+LevelThree] = Level3;
+ map[Lock+Shift+LevelThree] = Level3;
map[LevelFive] = Level5;
map[Shift+LevelFive] = Level6;
@@ -41,7 +41,7 @@ partial default xkb_types "default" {
map[LevelThree+LevelFive] = Level7;
map[Shift+LevelThree+LevelFive] = Level8;
map[Lock+LevelThree+LevelFive] = Level8;
- map[Lock+Shift+LevelThree+LevelFive] = Level7;
+ map[Lock+Shift+LevelThree+LevelFive] = Level7;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
@@ -54,9 +54,9 @@ partial default xkb_types "default" {
};
// type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
-// // Level5-Lock is implemented by using NumLock, because a real modifier
-// // is required.
-//
+// // Level5-Lock is implemented by using NumLock, because a real modifier
+// // is required.
+//
// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
//
// map[None] = Level1;
@@ -116,11 +116,11 @@ partial default xkb_types "default" {
// };
//
// type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
-// // Level5-Lock is implemented by using NumLock, because a real modifier
-// // is required.
-//
+// // 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;
@@ -183,7 +183,7 @@ partial default xkb_types "default" {
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[Lock+LevelThree] = Level3;
- map[Lock+Shift+LevelThree] = Level4;
+ map[Lock+Shift+LevelThree] = Level4;
map[LevelFive] = Level5;
map[Shift+LevelFive] = Level6;
@@ -192,7 +192,7 @@ partial default xkb_types "default" {
map[LevelThree+LevelFive] = Level7;
map[Shift+LevelThree+LevelFive] = Level8;
map[Lock+LevelThree+LevelFive] = Level7;
- map[Lock+Shift+LevelThree+LevelFive] = Level8;
+ map[Lock+Shift+LevelThree+LevelFive] = Level8;
preserve[Lock+LevelThree] = Lock;
preserve[Lock+Shift+LevelThree] = Lock;
diff --git a/test/data/types/mousekeys b/test/data/types/mousekeys
index 88d88a2..901848a 100644
--- a/test/data/types/mousekeys
+++ b/test/data/types/mousekeys
@@ -2,9 +2,9 @@ partial default xkb_types "default" {
virtual_modifiers Alt;
type "SHIFT+ALT" {
- modifiers = Shift+Alt;
- map[Shift+Alt] = Level2;
- level_name[Level1] = "Base";
+ modifiers = Shift+Alt;
+ map[Shift+Alt] = Level2;
+ level_name[Level1] = "Base";
level_name[Level2] = "Shift+Alt";
};
};
diff --git a/test/data/types/numpad b/test/data/types/numpad
index 7888d7d..5861f11 100644
--- a/test/data/types/numpad
+++ b/test/data/types/numpad
@@ -11,7 +11,7 @@ partial default xkb_types "pc" {
include "extra(keypad)"
};
-// On Mac keypads, level 1 and 2 are swapped
+// On Mac keypads, level 1 and 2 are swapped.
partial xkb_types "mac" {
type "KEYPAD" {
modifiers = None;
@@ -33,11 +33,11 @@ partial xkb_types "microsoft" {
include "extra(keypad)"
};
-// Swiss-German style numeric keypad: Shift and NumLock operates as
+// Swiss-German style numeric keypad: Shift and NumLock operate 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.
+// Closest type is actually FOUR_LEVEL_X, but most numpad layouts use
+// 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;
diff --git a/test/data/types/pc b/test/data/types/pc
index daebe74..404e3c9 100644
--- a/test/data/types/pc
+++ b/test/data/types/pc
@@ -2,7 +2,8 @@ partial default xkb_types "default" {
// Some types that are necessary
// for a full implementation of
- // a PC compatible keyboard.
+ // a PC-compatible keyboard.
+
virtual_modifiers Alt;
virtual_modifiers LevelThree;
virtual_modifiers LAlt;
@@ -10,6 +11,14 @@ partial default xkb_types "default" {
virtual_modifiers RControl;
virtual_modifiers LControl;
+ type "PC_SUPER_LEVEL2" {
+ modifiers = Mod4;
+ map[None] = Level1;
+ map[Mod4] = Level2;
+ level_name[Level1] = "Base";
+ level_name[Level2] = "Super";
+ };
+
type "PC_CONTROL_LEVEL2" {
modifiers = Control;
map[None] = Level1;
@@ -74,13 +83,13 @@ partial default xkb_types "default" {
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
+ // Local eight level.
+ // Needed when you want part of your layout eight-level but cannot use
+ // LevelFive as modifier, as this will take over the right Ctrl by default
+ // for the whole layout and is too invasive for the average four-level user.
+ // Needed to fix bug #9529.
+ // FIXME: Should really use RControl but it seems not to be enabled by
+ // default and touching this requires a lot of testing.
type "LOCAL_EIGHT_LEVEL" {
modifiers = Shift+Lock+LevelThree+Control;