About this project

chromebook-fixer is a per-user utility that collects hardware enablement fixes for Chromebooks running mainstream Linux distributions, where cameras, sensors, audio and power behaviour often depend on ChromeOS firmware blobs or vendor kernel trees. It also installs and configures Nightfall Boot Manager, a touch-driven GRUB front end. The tool's defining feature is that every fix is gated on detection: `detect.sh` determines whether the problem is actually present on the machine before anything is changed, and `verify.sh` checks whether the fix's own marker is in place — deliberately distinct from "the symptom is gone," so that upstream fixes or package upgrades that silently clobber a fix are visible. It ships 21 fixes grouped by subsystem: IPU3 camera stack (IOMMU passthrough, ImgU grableak, VCM autofocus, orientation), screen/brightness/rotation (accelerometer, backlight permissions, autorotate, panel brightness via AUX and DPCD, tablet-mode switch, touch resume rebind), audio AVS DSP, EC button polling, the ChromeOS fingerprint reader bridged to GNOME's lock screen, Nightfall boot manager install and default, Waydroid hooks/netfilter/USB, and zram swap. Usage is explicit: `status` shows what the machine needs, `list -v` describes every fix, `apply <id>` installs one, `verify` checks it, `revert` undoes it. High-risk fixes require typing the fix id to confirm. The `--kernel` flag targets a specific installed kernel for module-building fixes. Nothing is applied unless requested by name and confirmed by detection. Nightfall management covers boot menu timeouts (Nightfall and GRUB), rotation and splash settings, kernel installation from BobZKernel tarballs, default-kernel selection, kernel removal, and backup viewing/deletion (Pixel Slate only). An `update` command fast-forwards the tool's git checkout and can rebuild Nightfall in place, keeping a `.previous` rollback pair. The README is unusually candid about risk: fixes make low-level changes (replacing libraries, editing udev rules, patching other packages' files, changing kernel behaviour) and some can hard-lock the machine with no kernel panic and nothing in any log. It is developed and tested on exactly one machine — the Google Nocturne (Pixel Slate) — and every fix's `danger` field is written from observed behaviour rather than generic caution. Nightfall itself is the exception, offered on any x86-64-v2 PC with GRUB, tested end to end on the Pixel Slate and a Lenovo LOQ. Fixes are data-driven: each is a directory with `fix.yaml` metadata (category, risk, `applies_to` regex against DMI, `reverts_cleanly`, `danger`) and up to four scripts. Adding support for a new model is a detect script plus data, not a rewrite. The project is GPL-3.0-or-later and welcomes contributions for models other than the Pixel Slate.