Chromebook on Linux: Search + top row as media keys, without losing F1–F12

On a Chromebook running Linux, the top row sends plain F1–F10, so brightness and volume keys do nothing. Most remap scripts flip it: media keys by default and Search for F-keys. That makes Ctrl+Alt+F1 a four-key chord. Doing it the other way keeps both: F-keys by default, and Search acts like Fn.

Install keyd (it's packaged in Debian 13) and write /etc/keyd/default.conf:

# internal keyboard only (vendor:product of "AT Translated Set 2 keyboard")
[ids]
0001:0001

# Search is leftmeta; holding it turns the top row into Chromebook actions
[meta]
f1 = back
f2 = forward
f3 = refresh
f4 = f11
f6 = brightnessdown
f7 = brightnessup
f8 = mute
f9 = volumedown
f10 = volumeup

Then restart it:

sudo systemctl restart keyd
sudo journalctl -u keyd -b -o cat | grep match

You should see a DEVICE: match 0001:0001:... line. One gotcha: the Debian package starts keyd as soon as it's installed, before your config exists. The running daemon then logs ignoring for every device until you restart it. Debian also ships the binary as keyd.rvaiya, so keyd check isn't on your PATH.

Restricting [ids] to the built-in keyboard leaves an external USB keyboard's real F-keys alone. You can find your IDs with grep -A4 'AT Translated' /proc/bus/input/devices. The mapping above matches the classic Chromebook top row (back, forward, refresh, fullscreen, overview, brightness −/+, mute, volume −/+).

Comments

  1. Markdown is allowed. HTML tags allowed: <strong>, <em>, <blockquote>, <code>, <pre>, <a>.