diff --git a/xkb-data_xmod/README.md b/xkb-data_xmod/README.md
index fad75ca..86f8b42 100644
--- a/xkb-data_xmod/README.md
+++ b/xkb-data_xmod/README.md
@@ -20,6 +20,8 @@ For more general info, see the [main repo README][BBREADME].
The [xkeyboard-config][XKBgitHb] files in this folder are updated to [XKB-data v2.23.1-1ubuntu1][XKB-Ub18], 2018.
They work fine with other versions though, in nearly all cases.
+
+Note that the `base` and `evdev` rules are compiled slightly differently, so I provide both. Their `.lst` and `.xml` counterparts are identical/aliases.
@@ -33,9 +35,13 @@ TODO:
- Commit bc927671 "symbols/latam: remove a hobbled Colemak variant" by Benno Schulenberg 2022-07-04
- https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/bc927671
+* Add comments in evdev.xml? There are some now, typically like ``.
+ - Change my arrow format: Using `-->` arrows is confusing vis-a-vis html/xml. Use `»->`/`<-«`? That causes encoding trouble. So, `>>-->`/`<--<<`.
+
* Is `any` equivalent to `NoSymbol` in the definitions? If so, we could make symbols/extend tidier!
- - Maybe? There are some compact forms of notation, like leaving out symbols entirely, but those are less clear.
- - In the repo, I've seen `NoSymbol` been replaced with `any`, and `VoidSymbol` with `none`. This may be the new syntax.
+ - According to Benno Schulenberg, yes, but there's little documentation for it.
+ - There are some other compact forms of notation, like leaving out symbols entirely, but those are less clear.
+ - In the repo, I've seen `NoSymbol` been replaced with `any`, and `VoidSymbol` with `none`.
- Is it implemented everywhere yet, though? Hard to find good docs on it, methinks.
* Sym mod implementation
diff --git a/xkb-data_xmod/xkb/symbols/extend b/xkb-data_xmod/xkb/symbols/extend
index 22ec5de..806b260 100644
--- a/xkb-data_xmod/xkb/symbols/extend
+++ b/xkb-data_xmod/xkb/symbols/extend
@@ -40,21 +40,24 @@
// | Cust | Undo | Cut | Copy | Paste | *Bt1 | , | KP_0 | KP_0 | KP_. | KP_/ | Spc | K_Ent |
// +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
//
-// TODO: A lv7 modifier to reach the second Extend layer directly.
-// Test out this:
-// key { [ ISO_Level5_Shift ], actions[Group1] = [ SetMods(mods=LevelThree+LevelFive) ] };
+// TODO:
+// - A lv7 modifier to reach the second Extend layer directly.
+// - Test out this:
+// key { [ ISO_Level5_Shift ], actions[Group1] = [ SetMods(mods=LevelThree+LevelFive) ] };
//
-// NOTE: A lv7 (Level5+Level3) modifier might be necessary to use the KeyPad level sensibly
+// NOTE:
+// - A lv7 (Level5+Level3) modifier might be necessary to use the KeyPad level sensibly
// - One idea is to use AltGr+Caps as a lv7_lock (Caps+AltGr is already lv7_switch)
-// NOTE: If a hex pad is needed, the lv7(8?)+KBHDJG -> ABCDEF mappings are one solution
-// NOTE: There's a KP key named KP_BEGIN; it seems like a hack? Ignored for now.
-// NOTE: I've duplicated KP_0 to make it easy to hit. Useful for bigrams with 0.
+// - If a hex pad is needed, the lv7(8?)+KBHDJG -> ABCDEF mappings are one possible solution
+// - There's a KP key named KP_BEGIN; it seems like a hack? Ignored for now.
+// - I've duplicated KP_0 to make it easy to hit. Useful for bigrams with 0. Physical NumPad often has a wide zero.
//
-// NOTE: The Big Bag image has the PointerEnable key on LSGT, but ANSI users don't have that key. Moved it to TLDE.
-// NOTE: Autorepeat is lost for keys with actions set. This is probably an XKB bug?
+// - The Big Bag image has the PointerEnable key on LSGT, but ANSI users don't have that key. Moved it to TLDE.
+// - Autorepeat is lost for keys with actions set. This is probably an XKB bug?
// - One fix is to run xset afterwards: 'seq -s " r " 8 255 | xargs xset r' supposedly does the trick.
// - Added the following to each key's symbols[Group1] definition: `repeat=true`
-// NOTE: The lv5 mod should be eaten up by xkb but isn't. Must manually clearmod it from all necessary keys.
+// - The lv5 mod should be eaten up by xkb but isn't. Must manually clearmod it from all necessary keys.
+// - The first 4 states are defined as `any` (a synonym of `NoSymbol`) to pass-through any existing ones.
// +=======+==============================+=======+
@@ -76,84 +79,84 @@ xkb_symbols "lv5_fk" {
// |=======| F1-F12 |=======|
// +=======+==============================+=======+
// NOTE: Many use Ctrl+Alt+ for TTY server control keys. With Extend, you may use Ext+AltGr+ instead.
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F01
+ key { symbols[Group1]=[Any , Any , Any , Any , // F01
XF86AudioPlay , XF86AudioPause , // Audio Play/Pause
- XF86_Switch_VT_1 , NoSymbol ] , // Virtual Terminal 1
+ XF86_Switch_VT_1 , Any ] , // Virtual Terminal 1
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=1,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F02
+ key { symbols[Group1]=[Any , Any , Any , Any , // F02
XF86AudioPrev , XF86AudioRewind , // Audio Previous/Rewind
- XF86_Switch_VT_2 , NoSymbol ] , // Virtual Terminal 2
+ XF86_Switch_VT_2 , Any ] , // Virtual Terminal 2
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=2,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F03
+ key { symbols[Group1]=[Any , Any , Any , Any , // F03
XF86AudioNext , XF86AudioForward , // Audio Next/Forward
- XF86_Switch_VT_3 , NoSymbol ] , // Virtual Terminal 3
+ XF86_Switch_VT_3 , Any ] , // Virtual Terminal 3
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=3,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F04
+ key { symbols[Group1]=[Any , Any , Any , Any , // F04
XF86AudioStop , XF86Eject , // Audio Stop/Eject
- XF86_Switch_VT_4 , NoSymbol ] , // Virtual Terminal 4
+ XF86_Switch_VT_4 , Any ] , // Virtual Terminal 4
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=4,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F05
+ key { symbols[Group1]=[Any , Any , Any , Any , // F05
XF86AudioMute , XF86Reload , // Audio Mute/Reload
- XF86_Switch_VT_5 , NoSymbol ] , // Virtual Terminal 5
+ XF86_Switch_VT_5 , Any ] , // Virtual Terminal 5
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=5,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F06
+ key { symbols[Group1]=[Any , Any , Any , Any , // F06
XF86AudioLowerVolume , XF86MonBrightnessDown , // Audio Vol- / Brightness-
- XF86_Switch_VT_6 , NoSymbol ] , // Virtual Terminal 6
+ XF86_Switch_VT_6 , Any ] , // Virtual Terminal 6
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=6,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F07
+ key { symbols[Group1]=[Any , Any , Any , Any , // F07
XF86AudioRaiseVolume , XF86MonBrightnessUp , // Audio Vol+ / Brightness+
- XF86_Switch_VT_7 , NoSymbol ] , // Virtual Terminal 7
+ XF86_Switch_VT_7 , Any ] , // Virtual Terminal 7
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=7,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F08
+ key { symbols[Group1]=[Any , Any , Any , Any , // F08
XF86AudioMedia , XF86Sleep , // MediaPlayer / Sleep
- XF86_Switch_VT_8 , NoSymbol ] , // Virtual Terminal 8
+ XF86_Switch_VT_8 , Any ] , // Virtual Terminal 8
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=8,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F09
+ key { symbols[Group1]=[Any , Any , Any , Any , // F09
XF86HomePage , XF86WWW , // HomePage / Web
- XF86_Switch_VT_9 , NoSymbol ] , // Virtual Terminal 9
+ XF86_Switch_VT_9 , Any ] , // Virtual Terminal 9
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=9,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F10
+ key { symbols[Group1]=[Any , Any , Any , Any , // F10
XF86Search , XF86Mail , // Search / Mail
- XF86_Switch_VT_10 , NoSymbol ] , // Virtual Terminal 10
+ XF86_Switch_VT_10 , Any ] , // Virtual Terminal 10
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=10,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F11
+ key { symbols[Group1]=[Any , Any , Any , Any , // F11
XF86Explorer , XF86Launch1 , // Explorer / App1
XF86_Switch_VT_11 , XF86LogGrabInfo ] , // Virtual Terminal 11 / Debug
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(), // (in inet, XF86Launch3 is )
Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(‡‡)
SwitchScreen(screen=11,!same) , NoAction() ] ,
repeat=yes };
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F12
+ key { symbols[Group1]=[Any , Any , Any , Any , // F12
XF86Calculator , XF86Launch2 , // Calculator / App2
XF86_Switch_VT_12 , XF86LogWindowTree ] , // Virtual Terminal 12 / Debug
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(), // (in inet, XF86Launch4 is )
@@ -172,90 +175,90 @@ xkb_symbols "lv5" {
// +=======+==============================+=======+
// NOTE: Earlier, if I set lv5-6 of Esc to Caps_Lock, lv1-4 would be CapsLock PLUS Esc! Is this fixed now?
// - If not, I might not have to send the Caps_Lock keysymbol as long as the LockMods action is there?
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // Esc
+ key { symbols[Group1]=[Any , Any , Any , Any , // Esc
Caps_Lock , Caps_Lock , // Caps_Lock
Caps_Lock , Caps_Lock ] ,
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
LockMods(mods=Lock) , LockMods(mods=Lock) , // Lock mod for
LockMods(mods=Lock) , LockMods(mods=Lock) ] ,
repeat=yes }; // Esc
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // Tilde/Grave (` ~)
+ key { symbols[Group1]=[Any , Any , Any , Any , // Tilde/Grave (` ~)
Pointer_EnableKeys , Pointer_EnableKeys , // Ptr_On
Pointer_EnableKeys , Pointer_EnableKeys ] , // (Enable MouseKeys)
repeat=yes }; // ` ~
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 1
+ key { symbols[Group1]=[Any , Any , Any , Any , // 1
F1 , F1 , exclam , exclam ] , // F1 / !
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 1
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 2
+ key { symbols[Group1]=[Any , Any , Any , Any , // 2
F2 , F2 , at , at ] , // F2 / @
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 2
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 3
+ key { symbols[Group1]=[Any , Any , Any , Any , // 3
F3 , F3 , numbersign , numbersign ] , // F3 / #
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 3
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 4
+ key { symbols[Group1]=[Any , Any , Any , Any , // 4
F4 , F4 , dollar , sterling ] , // F4 / $ £
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 4
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 5
+ key { symbols[Group1]=[Any , Any , Any , Any , // 5
F5 , F5 , percent , EuroSign ] , // F5 / % €
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 5
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 6
+ key { symbols[Group1]=[Any , Any , Any , Any , // 6
F6 , F6 , asciicircum , asciicircum ] , // F6 / ^
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 6
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 7
+ key { symbols[Group1]=[Any , Any , Any , Any , // 7
F7 , F7 , KP_7 , U21D6 ] , // F7 / KP_7 ↖ ⇖
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 7
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 8
+ key { symbols[Group1]=[Any , Any , Any , Any , // 8
F8 , F8 , KP_8 , U21D1 ] , // F8 / KP_8 ↑ ⇑
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 8
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 9
+ key { symbols[Group1]=[Any , Any , Any , Any , // 9
F9 , F9 , KP_9 , U21D7 ] , // F9 / KP_9 ↗ ⇗
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 9
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // 0
+ key { symbols[Group1]=[Any , Any , Any , Any , // 0
F10 , F10 , KP_Multiply , KP_Multiply ] , // F10 / KP_*
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // 0
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // - _
+ key { symbols[Group1]=[Any , Any , Any , Any , // - _
F11 , F11 , KP_Subtract , KP_Subtract ] , // F11 / KP_-
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // - _
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // = +
+ key { symbols[Group1]=[Any , Any , Any , Any , // = +
F12 , F12 , KP_Equal , KP_Equal ] , // F12 / KP_=
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // = +
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // BackSpace
+ key { symbols[Group1]=[Any , Any , Any , Any , // BackSpace
Pause , Pause , // Pause/Break
Pause , Pause ] , // ( is special)
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
@@ -266,91 +269,91 @@ xkb_symbols "lv5" {
// +=======+==============================+=======+
// |=======| Upper Row |=======|
// +=======+==============================+=======+
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // Q
+ key { symbols[Group1]=[Any , Any , Any , Any , // Q
Escape , Escape , // Esc
Home , KP_Home ] , // Home
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive) , Redirect(key=,clearmods=LevelFive) ,
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive) ] ,
repeat=yes }; // Q
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // W
+ key { symbols[Group1]=[Any , Any , Any , Any , // W
XF86ScrollUp , XF86ScrollUp , // ScrollUp(††)
Up , KP_Up ] , // ↑
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
PtrBtn(button=4) , PtrBtn(button=4) , // PtrWhBtUp/Ri
NoAction() , NoAction() ] ,
repeat=yes }; // W // (ScrlR/L & Btn 6/7 may cause crashes now?!)
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // E
+ key { symbols[Group1]=[Any , Any , Any , Any , // E
XF86Back , XF86Back , // BrBck
End , KP_End ] , // End
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive), // (‡‡)
NoAction() , NoAction() ] ,
repeat=yes }; // QWE E, Cmk F
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // R
+ key { symbols[Group1]=[Any , Any , Any , Any , // R
XF86Forward , XF86Forward , // BrFwd
Delete , KP_Delete ] , // Del
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive), // (‡‡)
NoAction() , NoAction() ] ,
repeat=yes }; // QWE R, Cmk P
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // T
+ key { symbols[Group1]=[Any , Any , Any , Any , // T
Pointer_Up , Pointer_Up , // PtrUp(††)
Escape , Escape ] , // Esc
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
MovePtr(x=+0,y=-8) , MovePtr(x=+0,y=-8) , // PtrUp(††)
Redirect(key=,clearmods=LevelFive) , Redirect(key=,clearmods=LevelFive) ] ,
repeat=yes }; // QWE T, Cmk G
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // Y
+ key { symbols[Group1]=[Any , Any , Any , Any , // Y
Page_Up , Page_Up , // PgUp
Page_Up , KP_Prior ] , // PgUp / KP_PgUp
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
Redirect(key=) , NoAction() ] ,
repeat=yes }; // QWE Y, Cmk J
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // U
+ key { symbols[Group1]=[Any , Any , Any , Any , // U
Home , Home , // Home
KP_4 , U21D0 ] , // KP_4 / ← ⇐
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE U, Cmk L
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // I
+ key { symbols[Group1]=[Any , Any , Any , Any , // I
Up , Up , // ↑
KP_5 , U21D4 ] , // KP_5 / ↔ ⇔
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE I, Cmk U
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // O
+ key { symbols[Group1]=[Any , Any , Any , Any , // O
End , End , // End
KP_6 , U21D2 ] , // KP_6 / → ⇒
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE O, Cmk Y
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // P
+ key { symbols[Group1]=[Any , Any , Any , Any , // P
Delete , Delete , // Del
KP_Add , KP_Add ] , // KP_+
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE P, Cmk ; :
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // [ {
+ key { symbols[Group1]=[Any , Any , Any , Any , // [ {
Escape , Escape , // Esc
parenleft , braceleft ] , // (
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive) , Redirect(key=,clearmods=LevelFive),
NoAction() , NoAction() ] ,
repeat=yes }; // [ {
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // ] }
+ key { symbols[Group1]=[Any , Any , Any , Any , // ] }
Insert , Insert , // Ins
parenright , braceright ] , // )
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // ] }
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // \ |
+ key { symbols[Group1]=[Any , Any , Any , Any , // \ |
XF86Favorites , XF86MyComputer , // BrFav
colon , bar ] , // :
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
@@ -361,84 +364,84 @@ xkb_symbols "lv5" {
// +=======+==============================+=======+
// |=======| Middle Row |=======|
// +=======+==============================+=======+
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // A
+ key { symbols[Group1]=[Any , Any , Any , Any , // A
Alt_L , Alt_L , //
Left , KP_Left ] , // ←
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
SetMods(mods=Alt) , SetMods(mods=Alt) , // Alt mod
NoAction() , NoAction() ] ,
repeat=yes }; // QWE A, Cmk A
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // S
+ key { symbols[Group1]=[Any , Any , Any , Any , // S
XF86ScrollDown , XF86ScrollDown , // ScrlDown(††)
Down , KP_Down ] , // ↓
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
PtrBtn(button=5) , PtrBtn(button=5) , // PtrWhBtDn/Le
NoAction() , NoAction() ] ,
repeat=yes }; // QWE S, Cmk R // (ScrlR/L & Btn 6/7 may cause crashes now?!)
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // D
+ key { symbols[Group1]=[Any , Any , Any , Any , // D
Shift_L , Shift_L , //
Right , KP_Right ], // →
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
SetMods(mods=Shift) , SetMods(mods=Shift) , // Shift mod
NoAction() , NoAction() ] ,
repeat=yes }; // QWE D, Cmk S
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // F
+ key { symbols[Group1]=[Any , Any , Any , Any , // F
Control_L , Control_L , //
BackSpace , BackSpace ] , // Back
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
SetMods(mods=Control) , SetMods(mods=Shift+Control) , // Ctrl mod
NoAction() , NoAction() ] ,
repeat=yes }; // QWE F, Cmk T
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // G
+ key { symbols[Group1]=[Any , Any , Any , Any , // G
Pointer_Down , Pointer_Down , // PtrDn(††)
Num_Lock , Num_Lock ] , // NumLock
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
MovePtr(x=+0,y=+8) , MovePtr(x=+0,y=+8) , // PtrDn(††)
NoAction() , NoAction() ] ,
repeat=yes }; // QWE G, Cmk D
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // H
+ key { symbols[Group1]=[Any , Any , Any , Any , // H
Page_Down , Page_Down , // PgDn
Page_Down , KP_Next ] , // PgDn / KP_PgDn
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
Redirect(key=) , NoAction() ] ,
repeat=yes }; // H
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // J
+ key { symbols[Group1]=[Any , Any , Any , Any , // J
Left , Left , // ←
KP_1 , U21D9 ] , // KP_1 / ↙ ⇙
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE J, Cmk N
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // K
+ key { symbols[Group1]=[Any , Any , Any , Any , // K
Down , Down , // ↓
KP_2 , U21D3 ] , // KP_2 / ↓ ⇓
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE K, Cmk E
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // L
+ key { symbols[Group1]=[Any , Any , Any , Any , // L
Right , Right , // →
KP_3 , U21D8 ] , // KP_3 / ↘ ⇘
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE L, Cmk I
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // ; :
+ key { symbols[Group1]=[Any , Any , Any , Any , // ; :
BackSpace , BackSpace , // Back
KP_Enter , KP_Enter ] , // KP_Enter
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=) , Redirect(key=) , //
NoAction() , NoAction() ] ,
repeat=yes }; // QWE ;, Cmk O
- key { symbols[Group1]=[NoSymbol , NoSymbol , NoSymbol , NoSymbol , // ' "
+ key { symbols[Group1]=[Any , Any , Any , Any , // ' "
Menu , Menu , // Menu
apostrophe , quotedbl ] , // ' "
actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive) , //