diff --git a/resources/InstallResources/xkb/compat/chromebook b/resources/InstallResources/xkb/compat/chromebook new file mode 100644 index 0000000..fc488d1 --- /dev/null +++ b/resources/InstallResources/xkb/compat/chromebook @@ -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); + }; +}; diff --git a/resources/InstallResources/xkb/keyboard b/resources/InstallResources/xkb/keyboard new file mode 100644 index 0000000..93a6069 --- /dev/null +++ b/resources/InstallResources/xkb/keyboard @@ -0,0 +1,10 @@ +# KEYBOARD CONFIGURATION FILE + +# Consult the keyboard(5) manual page. + +XKBMODEL="chromebook" +XKBLAYOUT="us" +XKBVARIANT="" +XKBOPTIONS="" + +BACKSPACE="guess" diff --git a/resources/InstallResources/xkb/keycodes/chromebook_m b/resources/InstallResources/xkb/keycodes/chromebook_m new file mode 100644 index 0000000..c684625 --- /dev/null +++ b/resources/InstallResources/xkb/keycodes/chromebook_m @@ -0,0 +1,24 @@ +default xkb_keycodes "media" { + = 166; //Back + = 167; //Forward + = 181; //Refresh + = 160; //Video next + = 235; //Video mode + = 232; //Brightness down + = 233; //Brightness up + = 121; //Mute + = 122; //Volume - + = 123; //Volume + + + = 67; // #define KEY_BACK + = 68; // #define KEY_FORWARD + = 69; // #define KEY_REFRESH + = 70; // #define KEY_COFFEE + = 71; // #define KEY_SWITCHVIDEOMODE + = 72; // #define KEY_BRIGHTNESSDOWN + = 73; // #define KEY_BRIGHTNESSUP + = 74; + = 75; + = 76; +}; + diff --git a/resources/InstallResources/xkb/patchxkb.sh b/resources/InstallResources/xkb/patchxkb.sh new file mode 100755 index 0000000..354b033 --- /dev/null +++ b/resources/InstallResources/xkb/patchxkb.sh @@ -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 + diff --git a/resources/InstallResources/xkb/rules/base.chromebook.patch b/resources/InstallResources/xkb/rules/base.chromebook.patch new file mode 100644 index 0000000..740a747 --- /dev/null +++ b/resources/InstallResources/xkb/rules/base.chromebook.patch @@ -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 diff --git a/resources/InstallResources/xkb/rules/base.lst.chromebook.patch b/resources/InstallResources/xkb/rules/base.lst.chromebook.patch new file mode 100644 index 0000000..5948329 --- /dev/null +++ b/resources/InstallResources/xkb/rules/base.lst.chromebook.patch @@ -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) + diff --git a/resources/InstallResources/xkb/rules/base.xml.chromebook.patch b/resources/InstallResources/xkb/rules/base.xml.chromebook.patch new file mode 100644 index 0000000..c5fa0d8 --- /dev/null +++ b/resources/InstallResources/xkb/rules/base.xml.chromebook.patch @@ -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 @@ + SteelSeries + + ++ ++ ++ chromebook ++ Chromebook (most models) | Search overlay ++ Google ++ ++ + + +- chromebook +- Chromebook +- Google +- ++ chromebook_ralt ++ Chromebook (most models) | Right alt overlay ++ Google ++ ++ ++ ++ ++ chromebook_m ++ Chromebook (most models) | Search overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_m_ralt ++ Chromebook (most models) | Right alt overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_falco ++ Chromebook Falco/Pixel/Pixel2 | Search overlay ++ Google ++ ++ ++ ++ ++ chromebook_falco_ralt ++ Chromebook Falco/Pixel/Pixel2 | Right alt overlay ++ Google ++ ++ ++ ++ ++ chromebook_m_falco ++ Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_m_falco_ralt ++ Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_no_m ++ Chromebook (most models) | No overlay | F keys mapped to media keys ++ Google ++ + + + diff --git a/resources/InstallResources/xkb/rules/evdev.chromebook.patch b/resources/InstallResources/xkb/rules/evdev.chromebook.patch new file mode 100644 index 0000000..531aad8 --- /dev/null +++ b/resources/InstallResources/xkb/rules/evdev.chromebook.patch @@ -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 diff --git a/resources/InstallResources/xkb/rules/evdev.lst.chromebook.patch b/resources/InstallResources/xkb/rules/evdev.lst.chromebook.patch new file mode 100644 index 0000000..76690a7 --- /dev/null +++ b/resources/InstallResources/xkb/rules/evdev.lst.chromebook.patch @@ -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) + diff --git a/resources/InstallResources/xkb/rules/evdev.xml.chromebook.patch b/resources/InstallResources/xkb/rules/evdev.xml.chromebook.patch new file mode 100644 index 0000000..de13c37 --- /dev/null +++ b/resources/InstallResources/xkb/rules/evdev.xml.chromebook.patch @@ -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 @@ + + + +- chromebook +- Chromebook +- Google +- ++ chromebook ++ Chromebook (most models) | Search overlay ++ Google ++ ++ ++ ++ ++ chromebook_ralt ++ Chromebook (most models) | Right alt overlay ++ Google ++ ++ ++ ++ ++ chromebook_m ++ Chromebook (most models) | Search overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_m_ralt ++ Chromebook (most models) | Right alt overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_falco ++ Chromebook Falco/Pixel/Pixel2 | Search overlay ++ Google ++ ++ ++ ++ ++ chromebook_falco_ralt ++ Chromebook Falco/Pixel/Pixel2 | Right alt overlay ++ Google ++ ++ ++ ++ ++ chromebook_m_falco ++ Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_m_falco_ralt ++ Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys ++ Google ++ ++ ++ ++ ++ chromebook_no_m ++ Chromebook (most models) | No overlay | F keys mapped to media keys ++ Google ++ + + + diff --git a/resources/InstallResources/xkb/symbols/chromebook b/resources/InstallResources/xkb/symbols/chromebook new file mode 100644 index 0000000..0011c59 --- /dev/null +++ b/resources/InstallResources/xkb/symbols/chromebook @@ -0,0 +1,49 @@ +// This mapping assumes that inet(evdev) will also be sourced +partial +xkb_symbols "overlay" { + key { [ Overlay1_Enable ], overlay1= }; + key { [ Overlay1_Enable ], overlay1= }; + + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; // XF86MonBrightnessDown + key { overlay1= }; // XF86MonBrightnessUp + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; // KEY_KBDILLUMTOGGLE + key { overlay1= }; // KEY_KBDILLUMDOWN + key { overlay1= }; // KEY_KBDILLUMUP + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + + // 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 (), to make sure we catch it. + key { [ NoSymbol ], overlay1= }; + + // Map dummy key to no symbol + key { [ NoSymbol ] }; +}; diff --git a/resources/InstallResources/xkb/symbols/chromebook_m b/resources/InstallResources/xkb/symbols/chromebook_m new file mode 100644 index 0000000..f60c628 --- /dev/null +++ b/resources/InstallResources/xkb/symbols/chromebook_m @@ -0,0 +1,49 @@ +// This mapping assumes that inet(evdev) will also be sourced +partial +xkb_symbols "overlay" { + key { [ Overlay1_Enable ], overlay1= }; + key { [ Overlay1_Enable ], overlay1= }; + + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; // KEY_KBDILLUMTOGGLE + key { overlay1= }; // KEY_KBDILLUMDOWN + key { overlay1= }; // KEY_KBDILLUMUP + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + + // 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 (), to make sure we catch it. + key { [ NoSymbol ], overlay1= }; + + // Map dummy key to no symbol + key { [ NoSymbol ] }; +}; diff --git a/resources/InstallResources/xkb/symbols/chromebook_m_ralt b/resources/InstallResources/xkb/symbols/chromebook_m_ralt new file mode 100644 index 0000000..01f817a --- /dev/null +++ b/resources/InstallResources/xkb/symbols/chromebook_m_ralt @@ -0,0 +1,39 @@ +// This mapping assumes that inet(evdev) will also be sourced +partial +xkb_symbols "overlay" { + key { [ Overlay1_Enable ], overlay1= }; + + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; // KEY_KBDILLUMTOGGLE + key { overlay1= }; // KEY_KBDILLUMDOWN + key { overlay1= }; // KEY_KBDILLUMUP + key { overlay1= }; + + key { overlay1= }; +}; diff --git a/resources/InstallResources/xkb/symbols/chromebook_ralt b/resources/InstallResources/xkb/symbols/chromebook_ralt new file mode 100644 index 0000000..1983813 --- /dev/null +++ b/resources/InstallResources/xkb/symbols/chromebook_ralt @@ -0,0 +1,39 @@ +// This mapping assumes that inet(evdev) will also be sourced +partial +xkb_symbols "overlay" { + key { [ Overlay1_Enable ], overlay1= }; + + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; // XF86MonBrightnessDown + key { overlay1= }; // XF86MonBrightnessUp + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; + key { overlay1= }; // KEY_KBDILLUMTOGGLE + key { overlay1= }; // KEY_KBDILLUMDOWN + key { overlay1= }; // KEY_KBDILLUMUP + key { overlay1= }; + + key { overlay1= }; +}; diff --git a/scripts/InstallScripts/PanfrostCompile.sh b/scripts/InstallScripts/PanfrostCompile.sh new file mode 100755 index 0000000..c1e7455 --- /dev/null +++ b/scripts/InstallScripts/PanfrostCompile.sh @@ -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" diff --git a/scripts/InstallScripts/XKBPatch.sh b/scripts/InstallScripts/XKBPatch.sh new file mode 100755 index 0000000..34d7a67 --- /dev/null +++ b/scripts/InstallScripts/XKBPatch.sh @@ -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 +