Merge pull request #134 from rk-zero/upstream

XKB Patch reworked
This commit is contained in:
SolidHal 2019-10-28 04:13:56 +00:00 committed by GitHub
commit a099220fc6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 560 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,14 @@
#!/bin/bash
sudo apt -y install git libx11-dev meson pkg-config python3-setuptools python3-mako zlib1g-dev libexpat1-dev libdrm-dev bison flex libwayland-dev wayland-protocols libwayland-egl-backend-dev libxext-dev libxdamage-dev libx11-xcb-dev libxcb-glx0-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev gettext
sudo apt -y install mesa-utils
cd /tmp
git clone https://gitlab.freedesktop.org/mesa/mesa -b "19.2"
cd mesa
mkdir build
cd build
meson .. . -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=panfrost,kmsro -Dlibunwind=false
sudo ninja install
echo "You may now reboot"

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