7.2 KiB
Other neon customizations on hp-chell
Reconstructed on 2026-09-27 from ~matt/.bash_history (551 lines,
roughly early March 2026 onward), /root/.bash_history, and the live
system. Topics with their own docs:
AUDIO.md, ZRAM.md,
CHROMEOS-FLEX.md, and the kernel 7.x black-screen
fix in CLAUDE.md.
Keyboard: keyd remapping for the Chromebook layout
The Chromebook keyboard has no F-keys, Delete, Home/End, PgUp/PgDn or Caps Lock; there's a "Search" key where Caps Lock would be. keyd remaps it at the evdev level, so it works everywhere (console, X, Wayland, the login screen).
- Built from source, not from apt (apt has no keyd for noble):
~/github/keyd(https://github.com/rvaiya/keyd,7c0aecb, v2.6.0),make && sudo make install, which puts the binary at/usr/local/bin/keyd. Thensudo systemctl enable --now keyd. Neither apt nor unattended upgrades will ever update it; rebuild from the checkout to upgrade. - Config:
/etc/keyd/default.conf. Apply edits withsudo keyd reload; find key names and device IDs withsudo keyd monitor. Summary:[ids] 0001:0001: only the internal keyboard (AT Translated Set 2 keyboard); external USB keyboards are left alone (use*to include them).leftmeta = overload(meta, leftmeta): Search acts as Meta when held and taps as Meta (opens the KDE launcher).- Search + top row gives F1 to F10 (back, forward, refresh, zoom,
scale, brightness down/up, mute, volume down/up). Search +
-/=gives F11/F12. - The same top-row to F-key mapping with Alt, Ctrl or Shift held. The
A-/C-/S-prefixes re-apply the modifier, which keyd otherwise strips, so e.g. Alt+F4 works as Alt+Search+Zoom. - Search + Backspace = Delete; Search + arrows = Home/End/PgUp/PgDn.
- Alt + Backspace = Delete; Alt + Search = Caps Lock.
USB-C DisplayPort output: load the cros_ec Type-C drivers
/etc/modules-load.d/cros-video.conf (2026-03-12):
cros_ec_typec
typec_displayport
These don't autoload on chell, and without them the USB-C ports don't negotiate DisplayPort alt mode, so there's no video out over USB-C. Both are loaded as of 2026-09-27.
Kernel: HWE-edge meta package
linux-generic-hwe-24.04-edge is installed (alongside the plain
linux-generic-hwe-24.04), and it's why the machine is on 7.x kernels
(7.0.0-34 now), not noble's regular HWE line. Also installed
deliberately as a known-good fallback: linux-image-generic-6.17 /
linux-headers-generic-6.17 (6.17.0-42), which is the fallback kernel
named in the black-screen notes in CLAUDE.md. Old 7.x kernels
(7.0.0-30, 7.0.0-14) are still installed as well.
/etc/default/grub (edited by hand several times; both matt and root
history show nano /etc/default/grub + update-grub): GRUB_DEFAULT=0,
GRUB_TIMEOUT=5, GRUB_TIMEOUT_STYLE=menu,
GRUB_CMDLINE_LINUX_DEFAULT='splash' (see setup-i915-kernel7-fix.sh).
Storage / wear on the USB-card root
neon's root is an external USB/SD card, so a few changes cut down writes and space use:
/tmpis tmpfs (in/etc/fstab:tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0). Not in the shell history, so it was probably added in the samenano /etc/fstabedit that disabled the swapfile.- The swapfile was replaced by zram (see
ZRAM.md). localepurgeis installed and configured (viadpkg-reconfigure localepurge) to keep onlyen,en_CA.UTF-8,en_US.UTF-8andfr_CA.UTF-8, and delete other locales' files on every package install (USE_DPKG,MANDELETE). If another language's translations or man pages are ever needed, add them withsudo dpkg-reconfigure localepurge.
Networking
- Realtek USB Ethernet (
enx00e04c68003e, r8152-family 2.5G adapter): the out-of-tree driver from https://github.com/awesometic/realtek-r8152-dkms (~/github/realtek-r8152-dkms) was once installed with DKMS, together with unloadingcdc_ether/cdc_ncm/cdc_mbimand testing withiperf3againstpet630, MTU 9000 andethtool -Koffloads. It was later removed (sudo ./dkms-remove.sh) because it failed to build against the 7.x kernels (confirmed by matt, 2026-09-27).dkms statusis empty now, so the adapter gets the in-kernel driver. The MTU and offload tweaks were runtime-only and aren't persisted anywhere. - Tailscale is installed (repo in
tailscale.list) buttailscaledis disabled (systemctl disable tailscaled, around the time the agent account was created).
Firmware and access
- MrChromebox firmware utility run twice
(
curl -LOf https://mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh); the second run was the 2026-09-03 update toMrChromebox-2606.1(seeCLAUDE.md). agent-usercreated withcreate-agent-user.shfromhttps://gist.ergosteur.com/ergosteur/41df939a435741bfac431ac3d4b888d0(a copy is in~matt).
Software and third-party apt repos
Not hardware-specific, but needed to rebuild the machine. The
repositories in /etc/apt/sources.list.d/ beyond neon's own:
| Source file | What | Set up via |
|---|---|---|
vscodium.sources |
VSCodium (codium) |
paulcarroty key into /usr/share/keyrings/vscodium-archive-keyring.gpg |
google-chrome.sources |
Google Chrome | installing the .deb from Downloads; set as x-www-browser / gnome-www-browser via update-alternatives |
docker.sources |
Docker CE | Docker's official apt instructions; matt added to the docker group |
ansible-ubuntu-ansible-noble.sources |
ansible-core |
ppa:ansible/ansible |
nodesource.sources |
Node.js 24 | deb.nodesource.com/setup_24.x; then npm i -g @google/gemini-cli |
tailscale.list |
Tailscale | (disabled, see above) |
Other tools installed by hand:
bws(Bitwarden Secrets Manager CLI) v2.0.0: unzipped into/opt/bitwarden/bws/, symlinked to/usr/local/bin/bws, with completions in/opt/bitwarden/bws/completions.bashsourced from~/.bashrc.- GlobalProtect VPN (
PanGPLinux-6.3.3-c31,gp_install.sh, from~/Downloads). pipx:mkdocsplus the injectedmkdocs-material.- Claude Code (
curl -fsSL https://claude.ai/install.sh | bash).
Notable apt packages installed on top of neon: codium ffmpeg yt-dlp imagemagick python3-pip python3-venv pipx python3-bs4 build-essential ncdu bwm-ng wireshark mpv filezilla rpi-imager ntfs-3g exfatprogs exfat-fuse hfsutils hfsprogs samba samba-vfs-modules krdc remmina ssh iperf3 netcat-openbsd htop btop git pavucontrol-qt bash-completion tesseract-ocr{,-eng,-fra,-kor} inxi lsscsi qrencode localepurge zram-tools dkms.
Git identities: ~/.gitconfig plus ~/.gitconfig.ergosteur and
~/.gitconfig.tfo, with SSH key aliases in ~/.ssh:
git_ssh_id_ergosteur → id_rsa, and git_ssh_id_myip4tfo →
id_ed25519.
Dead ends in the history (nothing left installed)
~/github/chell_audio(iofq's chell audio repo) was cloned andlinux-modules-extra/snd_soc_sklpoked at, before switching to WeirdTreeThing's scripts (seeAUDIO.md).ntfs2btrfs/ntfsfixagainst a/dev/sda1of the time. That was an external data card before this layout, not the current neon install, whosesda1is its ESP.