Просмотр исходного кода

Merge pull request #134 from rk-zero/upstream

XKB Patch reworked
SolidHal 4 лет назад
Родитель
Сommit
a099220fc6

+ 7 - 0
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);
+    };
+};

+ 10 - 0
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"

+ 24 - 0
resources/InstallResources/xkb/keycodes/chromebook_m

@@ -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;
+};
+

+ 17 - 0
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
+

+ 41 - 0
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

+ 19 - 0
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)
+ 

+ 75 - 0
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 @@
+        <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>

+ 61 - 0
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

+ 19 - 0
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)
+ 

+ 73 - 0
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 @@
+     </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>

+ 49 - 0
resources/InstallResources/xkb/symbols/chromebook

@@ -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 ] };
+};

+ 49 - 0
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 <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 ] };
+};

+ 39 - 0
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 <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> };
+};

+ 39 - 0
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 <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> };
+};

+ 14 - 0
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"

+ 24 - 0
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
+