lefteros_by SomniusX
EL ↗Say hello

LEFTEROS / PERSONAL NOTES

Omarchy on the Pixel 8 Pro: the battery reads

1 November 2026 / Lefteris Iliadis / SomniusX

Omarchy on the Pixel 8 Pro: the battery reads

In the previous post the phone had just booted and didn't even know it had a battery. Today the status bar says 80%, and the number is real: it comes from the battery's fuel gauge chip.

Omarchy's lock screen on the Pixel 8 Pro with the battery at 80%

How I got to the battery

When I asked Brett-Michael Green what to take, the answer was battery, charging and USB-C. GPU and display stayed with Brett, so we split the work there.

The stock device tree showed the Pixel 8 Pro uses the MAX77759 family, like the Pixel 7 Pro, on an I2C bus. The blocker was that the kernel had no clock controller at all for that block of the chip. So I wrote the CMU_PERIC1 clocks from Google's tables, added the device tree nodes and left them disabled, so nothing changes for other phones.

I tested it one step at a time on the phone, with an overlay that enables them: first the clocks, then the bus, then the gauge driver. The battery showed up at 87% and 4.2 V, UPower sees it, and the driver loads by itself at boot. After that the MAX77759 itself bound, with no interrupt storm and no I2C errors.

System info on the Pixel 8 Pro: kernel 7.3.0, 11 GB of memory and the battery at 80%, discharging

The right memory, the right disk and, finally, a battery discharging.

That's pull request #163 on the kernel, and it's still open. Derek Ross checked every offset and clock against Google's tables and they all matched, but asked for changes before merging: the tree I actually booted with a test report, a corrected comment, one commit split, and the drivers blocked in the phone's package. All fair. So for now the battery works on my phone, not in the image that ships.

Charging has to wait

I can read the percentage, but I haven't tested charging. The charger driver has never been loaded on this phone, and the battery temperature can't be trusted yet: the gauge sits at exactly 22 °C, so it needs a real temperature source first. The charger driver tells the chip how much current to push into a real battery, and that's not somewhere I want to guess. So I built a safety tool that undoes the step by itself if I can't get back into the phone, with the watchdog as the last line. The drills passed. I haven't touched USB-C yet.

The mistake that wiped my install

With that many reboots, slot B ran out of boot retries. The bootloader fell back to GrapheneOS on slot A, which took over userdata, and the Omarchy install was gone. No harm to the hardware, one reinstall and a new rule: every boot counts, and I reset the slot before the retries run out.

The black screen is explained

In the last post I wrote that the cause was unknown and that I hadn't seen the interface respond to touch. Both have changed. Power or a tap wakes the screen. It wasn't a fault: it's the blank from Omarchy's lock screen, which I confirmed by watching which script runs at the moment it goes dark. It still happens, and why it fires at 43 seconds and not at the timer's 5 to 10 I still don't know.

With touch I've unlocked with the on-screen PIN pad, swiped through the home pages and opened apps.

What happened around it

  • The keyboard: it was far too short, because the system thought the screen measured 355 x 791 mm. With the real 70 x 155 mm it went from 105 to 196 pixels tall. Derek Ross confirmed the size from Google's panel driver, and #154 is waiting on CI to merge.
  • The notes: the second phone and a roadmap for the Pixel 8 Pro landed on main, authored by me. #209 and #213 show as closed because Derek Ross committed them directly.
  • The clock: the first-boot problem was closed in #188 and #190.

Other people's work

The port is moving much faster than my part of it. On test kernels, on the first Pixel 8 Pro, Brett-Michael Green has Wi-Fi through #216, the GPU up to 890 MHz with #221, and the display at 120 Hz with brightness in #228. I haven't run any of that on mine yet: my last check still shows no GPU, Wi-Fi, Bluetooth, sound or cameras.

I've taken on helping with the modem too, but I need a prepaid SIM first.

What's next

The changes requested on #163, a real temperature source, then the first charge under the safety tool, then USB-C. It's still a phone for testing, not for every day. I'll keep the project page up to date.

Thanks to Derek Ross for a strict and fair review, and to Brett-Michael Green for trusting me with the battery.