I have installed Ubuntu Mate 16.04 Lts 32bit on my Toshiba Chromebook. The keys on the top wont work as they should. Arrows, light up and down, sound key wont work. I can't fint out how to change it. On a Chromebook there is no F keys, I guess this is the problem.
-
2Does this answer your question? How to make media keys work on a Chromebook natively running Ubuntu MATE 22.04? – Archisman Panigrahi Jan 22 '23 at 17:08
1 Answers
Edit: I was curious and spent more time trying to bring up support for this layout in Ubuntu 18.04. There is a repository which mostly consists of one patch against the Ubuntu packages. I decided to download the latest package of xkeyboard-config
from here which worked as expected for XFCE/Xubuntu. The Chromebook layouts can be selected from the layout list. It gets more difficult getting it to work with Gnome. I tried adding 'chromebook_m:overlay'
to /org/gnome/desktop/input-sources/xkb-options
in dconf after reading this and this but it did not work. Setting XKBMODEL="chromebook_m"
in /etc/default/keyboard
worked, but not in Gnome Wayland on 18.04. That's as far as I got. Gnome Wayland should work with XKB maps but I don't have much time to investigate further at the moment.
You need to configure a matching keyboard layout, the Ubuntu based Gallium OS comes with additional configuration files to make such keyboards work. I have not yet dug deeper into this problem and how they solved it but I think /usr/share/X11/xkb/symbols/chromebook
is where the configuration is stored, but you'd better try Gallium OS itself first.
// 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 ] };
};

- 28,763