Index: x11-misc/xkeyboard-config/files/xkeyboard-config-1.7-nav-keys.patch |
diff --git a/x11-misc/xkeyboard-config/files/xkeyboard-config-1.7-nav-keys.patch b/x11-misc/xkeyboard-config/files/xkeyboard-config-1.7-nav-keys.patch |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b2dd39ff02dd30fb070f28f896e83f0cd25800cb |
--- /dev/null |
+++ b/x11-misc/xkeyboard-config/files/xkeyboard-config-1.7-nav-keys.patch |
@@ -0,0 +1,65 @@ |
+diff --git a/symbols/pc b/symbols/pc |
+index 9f3da66..fa2e251 100644 |
+--- a/symbols/pc |
++++ b/symbols/pc |
+@@ -141,9 +141,27 @@ xkb_symbols "editing" { |
+ key <END> { [ End ] }; |
+ key <PGDN> { [ Next ] }; |
+ |
+- key <UP> { [ Up ] }; |
++ key <UP> { |
++ type="ARROW", |
++ repeat=yes, |
++ [ Up, Up, Prior ], |
++ actions[Group1] = [ |
++ NoAction(), |
++ NoAction(), |
++ RedirectKey(key=<PGUP>, clearmods=Alt) |
++ ] |
++ }; |
++ key <DOWN> { |
++ type="ARROW", |
++ repeat=yes, |
++ [ Down, Down, Next ], |
++ actions[Group1] = [ |
++ NoAction(), |
++ NoAction(), |
++ RedirectKey(key=<PGDN>, clearmods=Alt) |
++ ] |
++ }; |
++ |
+ key <LEFT> { [ Left ] }; |
+- key <DOWN> { [ Down ] }; |
+ key <RGHT> { [ Right ] }; |
+ }; |
+- |
+diff --git a/types/basic b/types/basic |
+index cf1ee64..90c2e5b 100644 |
+--- a/types/basic |
++++ b/types/basic |
+@@ -5,6 +5,7 @@ default xkb_types "basic" { |
+ // Fairly standard definitions for |
+ // the four required key types |
+ |
++ virtual_modifiers Alt; |
+ virtual_modifiers NumLock; |
+ |
+ type "ONE_LEVEL" { |
+@@ -28,4 +29,17 @@ default xkb_types "basic" { |
+ level_name[Level2] = "Caps"; |
+ }; |
+ |
++ // Extra type for up and down arrow keys, which we modify to send |
++ // Page Up and Page Down. |
++ type "ARROW" { |
++ modifiers = Shift+Lock+Alt; |
++ map[Shift] = Level2; |
++ map[Lock] = Level2; |
++ map[Alt] = Level3; |
++ map[Alt+Shift] = Level3; |
++ map[Alt+Lock] = Level3; |
++ level_name[Level1] = "Base"; |
++ level_name[Level2] = "Caps"; |
++ level_name[Level3] = "Alt"; |
++ }; |
+ }; |