I wasn't registered yet when I tried to send the previous email and I
did resend it after registration I forgot to add the attachment.

Here it is.
diff --git a/usr/share/X11/xkb/symbols/us b/usr/share/X11/xkb/symbols/us
index c732de6..0d26ccc 100644
--- a/usr/share/X11/xkb/symbols/us
+++ b/usr/share/X11/xkb/symbols/us
@@ -10,6 +10,9 @@ xkb_symbols "basic" {
 
     name[Group1]= "USA";
 
+    include "us(redirecting)"
+    include "us(redirected)"
+
     // Alphanumeric section
     key <TLDE> {       [     grave,    asciitilde      ]       };
     key <AE01> {       [         1,    exclam          ]       };
@@ -44,9 +47,6 @@ xkb_symbols "basic" {
     key <AC04> {       [         f,    F               ]       };
     key <AC05> {       [         g,    G               ]       };
     key <AC06> {       [         h,    H               ]       };
-    key <AC07> {       [         j,    J               ]       };
-    key <AC08> {       [         k,    K               ]       };
-    key <AC09> {       [         l,    L               ]       };
     key <AC10> {       [ semicolon,    colon           ]       };
     key <AC11> {       [ apostrophe,   quotedbl        ]       };
 
@@ -66,6 +66,27 @@ xkb_symbols "basic" {
 };
 
 partial alphanumeric_keys
+xkb_symbols "redirecting" {
+    key.type           = "REDIRECTING";
+    key.repeat         = yes;
+    Redirect.clearmods = all;
+
+    key <AC07> { [     j,          J ],
+         actions = [   NoAction(), NoAction(), Redirect(key=<I155>) ] };
+    key <AC08> { [     k,          K ],
+         actions = [   NoAction(), NoAction(), Redirect(key=<I156>) ] };
+    key <AC09> { [     l,          L ],
+         actions = [   NoAction(), NoAction(), Redirect(key=<I157>) ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "redirected" {
+    key <I155> { [      Left ] };
+    key <I156> { [      Down ] };
+    key <I157> { [     Right ] };
+};
+
+partial alphanumeric_keys
 xkb_symbols "euro" {
 
     name[Group1]= "USA - With EuroSign on 5";
diff --git a/usr/share/X11/xkb/types/complete b/usr/share/X11/xkb/types/complete
index 96d4fd5..f7271e1 100644
--- a/usr/share/X11/xkb/types/complete
+++ b/usr/share/X11/xkb/types/complete
@@ -14,4 +14,24 @@ default xkb_types "complete" {
     include "level5"
     include "extra"
     include "numpad"
+    include "complete(redirecting)"
+};
+
+xkb_types "redirecting" {
+    virtual_modifiers LevelThree;
+
+    type "REDIRECTING" {
+        modifiers = Shift+Lock+LevelThree+Control;
+        map[None]            = Level1;
+        map[Shift]           = Level2;
+        map[Control]         = Level4;
+
+        map[Lock]            = Level2;
+        map[Lock+Shift]      = Level2;
+        map[Lock+Control]    = Level3;
+
+        level_name[Level1]   = "Base";
+        level_name[Level2]   = "Shift";
+        level_name[Level3]   = "Control";
+    };
 };

Reply via email to