diff options
author | Ran Benita <ran234@gmail.com> | 2014-10-16 17:48:00 +0300 |
---|---|---|
committer | Ran Benita <ran234@gmail.com> | 2014-10-17 01:19:03 +0300 |
commit | c6ee6371b5c3cef7884bff790b3d366cb18e84be (patch) | |
tree | 8166fb6f2e07d441344adee4a836178c43c89bc7 /test | |
parent | 30e7445d846e45f68dd21fd6d954eb7806adc8bd (diff) | |
download | xorg-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>
Diffstat (limited to 'test')
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; |