rework xkb patch for Pull Request

This commit is contained in:
rk-zero 2019-10-21 06:48:15 +02:00
parent d12c6b88e1
commit d5d621c29b
15 changed files with 546 additions and 0 deletions

View File

@ -0,0 +1,7 @@
// Overlay1_Enable is a latch key for overlay1
default partial xkb_compatibility "overlay" {
interpret Overlay1_Enable+AnyOfOrNone(all) {
action= SetControls(controls=Overlay1);
};
};

View File

@ -0,0 +1,10 @@
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="chromebook"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"

View File

@ -0,0 +1,24 @@
default xkb_keycodes "media" {
<FK01> = 166; //Back
<FK02> = 167; //Forward
<FK03> = 181; //Refresh
<FK04> = 160; //Video next
<FK05> = 235; //Video mode
<FK06> = 232; //Brightness down
<FK07> = 233; //Brightness up
<FK08> = 121; //Mute
<FK09> = 122; //Volume -
<FK10> = 123; //Volume +
<I166> = 67; // #define KEY_BACK
<I167> = 68; // #define KEY_FORWARD
<I181> = 69; // #define KEY_REFRESH
<I160> = 70; // #define KEY_COFFEE
<I235> = 71; // #define KEY_SWITCHVIDEOMODE
<I232> = 72; // #define KEY_BRIGHTNESSDOWN
<I233> = 73; // #define KEY_BRIGHTNESSUP
<MUTE> = 74;
<VOL-> = 75;
<VOL+> = 76;
};

View File

@ -0,0 +1,17 @@
#!/bin/bash
cd /InstallResources/xkb
cp ./compat/* /usr/share/X11/xkb/compat/
cp ./keycodes/* /usr/share/X11/xkb/keycodes/
cp ./symbols/* /usr/share/X11/xkb/symbols/
patch /usr/share/X11/xkb/rules/base < ./rules/base.chromebook.patch
patch /usr/share/X11/xkb/rules/base.lst < ./rules/base.lst.chromebook.patch
patch /usr/share/X11/xkb/rules/base.xml < ./rules/base.xml.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev < ./rules/evdev.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev.lst < ./rules/evdev.lst.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev.xml < ./rules/evdev.xml.chromebook.patch
cp keyboard /etc/default/keyboard

View File

@ -0,0 +1,41 @@
--- base 2019-02-11 20:25:45.000000000 +0100
+++ base.chromebook 2019-10-09 17:05:50.841342168 +0200
@@ -939,7 +939,7 @@
btc5126t = +inet(nav_acpi_common)
btc9116u = +inet(btc9019u)
btc6301urf = +inet(media_nav_acpi_common)
- chromebook = +inet(chromebook)
+
dellsk8125 = +inet(dell)
dellsk8135 = +inet(dell)
cherrybunlim = +inet(nav_common)
@@ -1042,9 +1042,29 @@
* jp = complete+japan
olpc * = olpc
olpcm * = olpc
+ chromebook * = complete+chromebook
+ chromebook_ralt * = complete+chromebook
+ chromebook_m * = complete+chromebook
+ chromebook_m_ralt * = complete+chromebook
+ chromebook_falco * = complete+chromebook
+ chromebook_falco_ralt * = complete+chromebook
+ chromebook_m_falco * = complete+chromebook
+ chromebook_m_falco_ralt * = complete+chromebook
+ chromebook_no_m * = complete
* * = complete
+
! model layout[1] = compat
+ chromebook * = complete+chromebook
+ chromebook_ralt * = complete+chromebook
+ chromebook_m * = complete+chromebook
+ chromebook_m_ralt * = complete+chromebook
+ chromebook_falco * = complete+chromebook
+ chromebook_falco_ralt * = complete+chromebook
+ chromebook_m_falco * = complete+chromebook
+ chromebook_m_falco_ralt * = complete+chromebook
+ chromebook_no_m * = complete
+
* * = complete
! model = types

View File

@ -0,0 +1,19 @@
--- base.lst 2019-02-11 20:25:45.000000000 +0100
+++ base.lst.chromebook 2019-10-09 17:08:04.838382882 +0200
@@ -187,7 +187,15 @@
teck227 Truly Ergonomic 227
teck229 Truly Ergonomic 229
apex300 SteelSeries Apex 300 (Apex RAW)
- chromebook Chromebook
+ chromebook Chromebook (most models) | Search overlay
+ chromebook_ralt Chromebook (most models) | Right alt overlay
+ chromebook_m Chromebook (most models) | Search overlay | F keys mapped to media keys
+ chromebook_m_ralt Chromebook (most models) | Right alt overlay | F keys mapped to media keys
+ chromebook_falco Chromebook Falco/Pixel/Pixel2 | Search overlay
+ chromebook_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay
+ chromebook_m_falco Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys
+ chromebook_m_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys
+ chromebook_no_m Chromebook (most models) | No overlay | F keys mapped to media keys
teck227 Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)
teck229 Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)

View File

@ -0,0 +1,75 @@
--- base.xml 2019-02-11 20:25:45.000000000 +0100
+++ base.xml.chromebook 2019-10-09 17:20:59.304823438 +0200
@@ -1316,12 +1316,68 @@
<vendor>SteelSeries</vendor>
</configItem>
</model>
+ <model>
+ <configItem>
+ <name>chromebook</name>
+ <description>Chromebook (most models) | Search overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
<model>
<configItem>
- <name>chromebook</name>
- <description>Chromebook</description>
- <vendor>Google</vendor>
- </configItem>
+ <name>chromebook_ralt</name>
+ <description>Chromebook (most models) | Right alt overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m</name>
+ <description>Chromebook (most models) | Search overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m_ralt</name>
+ <description>Chromebook (most models) | Right alt overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_falco</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Search overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_falco_ralt</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Right alt overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m_falco</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m_falco_ralt</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_no_m</name>
+ <description>Chromebook (most models) | No overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
</model>
<model>
<configItem>

View File

@ -0,0 +1,61 @@
--- evdev 2019-02-11 20:25:45.000000000 +0100
+++ evdev.chromebook 2019-10-09 17:15:08.145221521 +0200
@@ -97,6 +97,13 @@
$jollamodels = evdev+jolla(jolla)
olpc = evdev+olpc(olpc)
olpcm = evdev+olpc(olpcm)
+ chromebook_m = evdev+chromebook_m(media)
+ chromebook_m_ralt = evdev+chromebook_m(media)
+ chromebook_falco_m = evdev+chromebook_m_falco(media)
+ chromebook_falco = evdev+chromebook_falco(fkeys)
+ chromebook_falco_ralt = evdev+chromebook_falco(fkeys)
+ chromebook_no_m = evdev+chromebook_m(media)
+
* = evdev
! layout[1] = keycodes
@@ -868,7 +875,15 @@
! model = symbols
$evdevkbds = +inet(evdev)+inet(%m)
- chromebook = +inet(evdev)+inet(chromebook)
+ chromebook = +inet(evdev)+chromebook(overlay)
+ chromebook_ralt = +inet(evdev)+chromebook_ralt(overlay)
+ chromebook_m = +inet(evdev)+chromebook_m(overlay)
+ chromebook_m_ralt = +inet(evdev)+chromebook_m_ralt(overlay)
+ chromebook_falco = +inet(evdev)+chromebook(overlay)
+ chromebook_falco_ralt = +inet(evdev)+chromebook_ralt(overlay)
+ chromebook_m_falco = +inet(evdev)+chromebook_m(overlay)
+ chromebook_m_falco_ralt = +inet(evdev)+chromebook_m_ralt(overlay)
+ chromebook_no_m = +inet(evdev)
applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys)
* = +inet(evdev)
@@ -929,9 +944,27 @@
* jp = complete+japan
olpc * = olpc
olpcm * = olpc
+ chromebook * = complete+chromebook
+ chromebook_ralt * = complete+chromebook
+ chromebook_m * = complete+chromebook
+ chromebook_m_ralt * = complete+chromebook
+ chromebook_falco * = complete+chromebook
+ chromebook_falco_ralt * = complete+chromebook
+ chromebook_m_falco * = complete+chromebook
+ chromebook_m_falco_ralt * = complete+chromebook
+ chromebook_no_m * = complete
* * = complete
! model layout[1] = compat
+ chromebook * = complete+chromebook
+ chromebook_ralt * = complete+chromebook
+ chromebook_m * = complete+chromebook
+ chromebook_m_ralt * = complete+chromebook
+ chromebook_falco * = complete+chromebook
+ chromebook_falco_ralt * = complete+chromebook
+ chromebook_m_falco * = complete+chromebook
+ chromebook_m_falco_ralt * = complete+chromebook
+ chromebook_no_m * = complete
* * = complete
! model = types

View File

@ -0,0 +1,19 @@
--- evdev.lst 2019-02-11 20:25:45.000000000 +0100
+++ evdev.lst.chromebook 2019-10-09 17:24:33.479737679 +0200
@@ -187,7 +187,15 @@
teck227 Truly Ergonomic 227
teck229 Truly Ergonomic 229
apex300 SteelSeries Apex 300 (Apex RAW)
- chromebook Chromebook
+ chromebook Chromebook (most models) | Search overlay
+ chromebook_ralt Chromebook (most models) | Right alt overlay
+ chromebook_m Chromebook (most models) | Search overlay | F keys mapped to media keys
+ chromebook_m_ralt Chromebook (most models) | Right alt overlay | F keys mapped to media keys
+ chromebook_falco Chromebook Falco/Pixel/Pixel2 | Search overlay
+ chromebook_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay
+ chromebook_m_falco Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys
+ chromebook_m_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys
+ chromebook_no_m Chromebook (most models) | No overlay | F keys mapped to media keys
teck227 Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)
teck229 Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)

View File

@ -0,0 +1,73 @@
--- evdev.xml 2019-02-11 20:25:45.000000000 +0100
+++ evdev.xml.chromebook 2019-10-09 17:17:03.873093072 +0200
@@ -1318,10 +1318,66 @@
</model>
<model>
<configItem>
- <name>chromebook</name>
- <description>Chromebook</description>
- <vendor>Google</vendor>
- </configItem>
+ <name>chromebook</name>
+ <description>Chromebook (most models) | Search overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_ralt</name>
+ <description>Chromebook (most models) | Right alt overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m</name>
+ <description>Chromebook (most models) | Search overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m_ralt</name>
+ <description>Chromebook (most models) | Right alt overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_falco</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Search overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_falco_ralt</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Right alt overlay</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m_falco</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_m_falco_ralt</name>
+ <description>Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>chromebook_no_m</name>
+ <description>Chromebook (most models) | No overlay | F keys mapped to media keys</description>
+ <vendor>Google</vendor>
+ </configItem>
</model>
<model>
<configItem>

View File

@ -0,0 +1,49 @@
// This mapping assumes that inet(evdev) will also be sourced
partial
xkb_symbols "overlay" {
key <LWIN> { [ Overlay1_Enable ], overlay1=<LWIN> };
key <I225> { [ Overlay1_Enable ], overlay1=<I225> };
key <AB09> { overlay1=<INS> };
key <LEFT> { overlay1=<HOME> };
key <RGHT> { overlay1=<END> };
key <UP> { overlay1=<PGUP> };
key <DOWN> { overlay1=<PGDN> };
key <FK01> { overlay1=<I166> };
key <FK02> { overlay1=<I167> };
key <FK03> { overlay1=<I181> };
key <FK04> { overlay1=<I160> };
key <FK05> { overlay1=<I235> };
key <FK06> { overlay1=<I232> }; // XF86MonBrightnessDown
key <FK07> { overlay1=<I233> }; // XF86MonBrightnessUp
key <FK08> { overlay1=<MUTE> };
key <FK09> { overlay1=<VOL-> };
key <FK10> { overlay1=<VOL+> };
key <AE01> { overlay1=<FK01> };
key <AE02> { overlay1=<FK02> };
key <AE03> { overlay1=<FK03> };
key <AE04> { overlay1=<FK04> };
key <AE05> { overlay1=<FK05> };
key <AE06> { overlay1=<FK06> };
key <AE07> { overlay1=<FK07> };
key <AE08> { overlay1=<FK08> };
key <AE09> { overlay1=<FK09> };
key <AE10> { overlay1=<I236> }; // KEY_KBDILLUMTOGGLE
key <AE11> { overlay1=<I237> }; // KEY_KBDILLUMDOWN
key <AE12> { overlay1=<I238> }; // KEY_KBDILLUMUP
key <BKSP> { overlay1=<DELE> };
key <LALT> { overlay1=<CAPS> };
key <RALT> { overlay1=<CAPS> };
// For some strange reason, some Super_R events are triggered when
// the Search key is released (i.e. with overlay on).
// This maps RWIN to a dummy key (<I253>), to make sure we catch it.
key <RWIN> { [ NoSymbol ], overlay1=<I253> };
// Map dummy key to no symbol
key <I253> { [ NoSymbol ] };
};

View File

@ -0,0 +1,49 @@
// This mapping assumes that inet(evdev) will also be sourced
partial
xkb_symbols "overlay" {
key <LWIN> { [ Overlay1_Enable ], overlay1=<LWIN> };
key <I225> { [ Overlay1_Enable ], overlay1=<I225> };
key <AB09> { overlay1=<INS> };
key <LEFT> { overlay1=<HOME> };
key <RGHT> { overlay1=<END> };
key <UP> { overlay1=<PGUP> };
key <DOWN> { overlay1=<PGDN> };
key <I166> { overlay1=<FK01> };
key <I167> { overlay1=<FK02> };
key <I181> { overlay1=<FK03> };
key <I160> { overlay1=<FK04> };
key <I235> { overlay1=<FK05> };
key <I232> { overlay1=<FK06> };
key <I233> { overlay1=<FK07> };
key <MUTE> { overlay1=<FK08> };
key <VOL-> { overlay1=<FK09> };
key <VOL+> { overlay1=<FK10> };
key <AE01> { overlay1=<FK01> };
key <AE02> { overlay1=<FK02> };
key <AE03> { overlay1=<FK03> };
key <AE04> { overlay1=<FK04> };
key <AE05> { overlay1=<FK05> };
key <AE06> { overlay1=<FK06> };
key <AE07> { overlay1=<FK07> };
key <AE08> { overlay1=<FK08> };
key <AE09> { overlay1=<FK09> };
key <AE10> { overlay1=<I236> }; // KEY_KBDILLUMTOGGLE
key <AE11> { overlay1=<I237> }; // KEY_KBDILLUMDOWN
key <AE12> { overlay1=<I238> }; // KEY_KBDILLUMUP
key <BKSP> { overlay1=<DELE> };
key <LALT> { overlay1=<CAPS> };
key <RALT> { overlay1=<CAPS> };
// For some strange reason, some Super_R events are triggered when
// the Search key is released (i.e. with overlay on).
// This maps RWIN to a dummy key (<I253>), to make sure we catch it.
key <RWIN> { [ NoSymbol ], overlay1=<I253> };
// Map dummy key to no symbol
key <I253> { [ NoSymbol ] };
};

View File

@ -0,0 +1,39 @@
// This mapping assumes that inet(evdev) will also be sourced
partial
xkb_symbols "overlay" {
key <RALT> { [ Overlay1_Enable ], overlay1=<RALT> };
key <AB09> { overlay1=<INS> };
key <LEFT> { overlay1=<HOME> };
key <RGHT> { overlay1=<END> };
key <UP> { overlay1=<PGUP> };
key <DOWN> { overlay1=<PGDN> };
key <I166> { overlay1=<FK01> };
key <I167> { overlay1=<FK02> };
key <I181> { overlay1=<FK03> };
key <I160> { overlay1=<FK04> };
key <I235> { overlay1=<FK05> };
key <I232> { overlay1=<FK06> };
key <I233> { overlay1=<FK07> };
key <MUTE> { overlay1=<FK08> };
key <VOL-> { overlay1=<FK09> };
key <VOL+> { overlay1=<FK10> };
key <AE01> { overlay1=<FK01> };
key <AE02> { overlay1=<FK02> };
key <AE03> { overlay1=<FK03> };
key <AE04> { overlay1=<FK04> };
key <AE05> { overlay1=<FK05> };
key <AE06> { overlay1=<FK06> };
key <AE07> { overlay1=<FK07> };
key <AE08> { overlay1=<FK08> };
key <AE09> { overlay1=<FK09> };
key <AE10> { overlay1=<I236> }; // KEY_KBDILLUMTOGGLE
key <AE11> { overlay1=<I237> }; // KEY_KBDILLUMDOWN
key <AE12> { overlay1=<I238> }; // KEY_KBDILLUMUP
key <BKSP> { overlay1=<DELE> };
key <RTSH> { overlay1=<CAPS> };
};

View File

@ -0,0 +1,39 @@
// This mapping assumes that inet(evdev) will also be sourced
partial
xkb_symbols "overlay" {
key <RALT> { [ Overlay1_Enable ], overlay1=<RALT> };
key <AB09> { overlay1=<INS> };
key <LEFT> { overlay1=<HOME> };
key <RGHT> { overlay1=<END> };
key <UP> { overlay1=<PGUP> };
key <DOWN> { overlay1=<PGDN> };
key <FK01> { overlay1=<I166> };
key <FK02> { overlay1=<I167> };
key <FK03> { overlay1=<I181> };
key <FK04> { overlay1=<I160> };
key <FK05> { overlay1=<I235> };
key <FK06> { overlay1=<I232> }; // XF86MonBrightnessDown
key <FK07> { overlay1=<I233> }; // XF86MonBrightnessUp
key <FK08> { overlay1=<MUTE> };
key <FK09> { overlay1=<VOL-> };
key <FK10> { overlay1=<VOL+> };
key <AE01> { overlay1=<FK01> };
key <AE02> { overlay1=<FK02> };
key <AE03> { overlay1=<FK03> };
key <AE04> { overlay1=<FK04> };
key <AE05> { overlay1=<FK05> };
key <AE06> { overlay1=<FK06> };
key <AE07> { overlay1=<FK07> };
key <AE08> { overlay1=<FK08> };
key <AE09> { overlay1=<FK09> };
key <AE10> { overlay1=<I236> }; // KEY_KBDILLUMTOGGLE
key <AE11> { overlay1=<I237> }; // KEY_KBDILLUMDOWN
key <AE12> { overlay1=<I238> }; // KEY_KBDILLUMUP
key <BKSP> { overlay1=<DELE> };
key <RTSH> { overlay1=<CAPS> };
};

View File

@ -0,0 +1,24 @@
#!/bin/bash
echo "
This Patch allows you to select all Chromebook Layouts.
For default behaviour, select chromebook_m in /etc/default/keyboard or
Chromebook (most models) | Search overlay in your DE Keyboard Selector.
Other Options:
chromebook_ralt Chromebook (most models) | Right alt overlay
chromebook_m Chromebook (most models) | Search overlay | F keys mapped to media keys
chromebook_m_ralt Chromebook (most models) | Right alt overlay | F keys mapped to media keys
chromebook_falco Chromebook Falco/Pixel/Pixel2 | Search overlay
chromebook_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay
chromebook_m_falco Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys
chromebook_m_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys
chromebook_no_m Chromebook (most models) | No overlay | F keys mapped to media keys
After this patch, chromebook_m will be the default in /etc/default/keyboard with us layout
"
sudo /InstallResources/xkb/patchxkb.sh