Hard Refresh, Flick Scroll, and Video: What’s New After Chromium-Only

July 22, 2026 · Ryan X. Charles

You open a long page in an Astrohacker TermSurf Chromium pane, flick the trackpad, and the document keeps coasting after your fingers leave the glass. You hit Cmd+Shift+R (or type :rh in the command bar) and the pane reloads past the cache. You open a video on X and it actually plays.

That is the Chromium-only bet paying rent: one engine, finished enough to feel ordinary.

On July 21 we said Chromium only—for now: WebKit and Ladybird off the active product surface so one browser path can mature. This post is what landed for daily use after that cut—not the investor deck, not website tooling, not engine archaeology.

The short version

  • Hard refresh — ignore-cache reload: Cmd+Shift+R / Shift+R, and Control-mode :refresh hard / :rh. Soft stays Cmd+R, toolbar click, :refresh / :r.
  • Trackpad flick — two-finger inertia (coast) works in Chromium browse panes.
  • Media — proprietary codecs (Chrome branding path) so sites like X can play H.264 video in-pane.
  • Shelllazy zsh for a fast ahsh prompt; then a Nu-first PATH merge so zsh’s environment does not erase tools like cargo.
  • Housekeeping — TermSurf XDG / state paths under the product name; pane content corner clip so overflow does not fleck the chrome.
  • Line — monorepo product crates moved through roughly 0.1.69–0.1.78; upgrade the cask when your tap has the bits you care about.

If you only remember one sentence: Chromium-only bought us room to fix reload, scroll feel, video, and shell startup—the stuff you touch every hour.

Hard refresh (cache-bust without leaving the pane)

Before this window, soft reload was easy and hard reload was not a trustworthy product story. Soft still means normal reload. Hard means ignore HTTP cache—the engine path is Chromium ReloadType::BYPASSING_CACHE, not a soft reload() wearing a costume.

Soft

  • Cmd+R (Command+R, no Shift)
  • Toolbar refresh button
  • Command bar: :refresh or :r

Hard

  • Cmd+Shift+R / Shift+R (in Control / Browse when keys reach ahweb)
  • Command bar: :refresh hard or :rh

What we deliberately do not promise: Shift+click on the toolbar as hard refresh. Terminals (including our host) often treat Shift+mouse as selection / “escape mouse grab” and do not deliver Shift on the click the way a browser chrome does. Units that faked Shift on mouse-up were green; the product was not. Hard reload lives on keyboard and commands, where modifiers actually arrive.

Trackpad flick / inertia

Direct scroll while fingers stay on the pad already moved the page. A flick—lift and coast—did not. That is the difference between a remote webview that only applies deltas and one that preserves a Mac phase / momentum sequence after finger-up.

We filled more wheel fields first; that alone was not enough. Tracing showed momentum can reach the engine; the remaining fix was routing synthetic wheels through Chromium’s Mac phase-handler path (delayed physical phase=ended, same family as Chrome’s RouteOrProcessWheelEvent) instead of a bare route that could kill the fling at the phase boundary.

Operator check: long page, two-finger flick, coast. That closed the issue.

Video in ahweb (X and friends)

Some sites never play without proprietary codecs. Our Chromium product build was too thin for that world: no H.264 where the page expects it, so X and similar media stayed silent or broken.

We enabled the product proprietary codecs + Chrome ffmpeg branding path used for real playback. After the rebuild, X video plays in a TermSurf Chromium pane. That is the user-facing bar—not a codec laundry list.

Faster shell, correct environment

Lazy zsh. Spawning a full zsh for every alt-shell handshake blocked a snappy ahsh start. Lazy startup lets the prompt arrive while zsh is not holding the door. Shift+Tab to zsh still exists when you want it; the greeting does not wait on a serial cold start.

Env after lazy. Speed without cargo is a trap. The follow-on fix keeps zsh as the base environment, then merges with a Nu-first PATH (Nu entries first, zsh entries deduped after) so tools you installed under zsh still resolve and Nu’s own path additions are not clobbered.

Net: quick start, then an environment that still runs real work.

Paths and pixels

TermSurf XDG / state naming. Config and state folders follow the product name (termsurf), not a leftover “terminal” tree. If you had old paths, look for the new tree after upgrade—same product, honest home on disk.

Pane corner clip. Web content no longer peeks past rounded pane corners as a little fleck of overflow. Small visual, large “this is intentional chrome” energy.

Versions

Product crates in the monorepo stepped through roughly 0.1.69 to 0.1.78 in this window. Public cask version may lag a commit or two—when you upgrade, match the notes above to what your install actually contains (ahweb hard refresh, coast, codecs, ahsh startup).

What we did not cover here

  • Investor deck / fundraising copy
  • Website dev-server plumbing
  • KeyPears or other non-TermSurf experiments

Those matter; they are not “open a pane and work.”

Still Chromium only

The previous post still holds: one shipped browser engine. This work is what “focus” is for—reload that matches developer muscle memory, scroll that matches a Mac trackpad, media that matches the modern web, shell that starts fast without lying about PATH.

Install or upgrade when ready:

brew tap astrohackerlabs/astrohacker
brew trust astrohackerlabs/astrohacker
brew install --cask astrohacker

Then try three things: flick a long page, hard refresh with Cmd+Shift+R or :rh, and open a video on X. If something still feels wrong, that is useful signal—send it.

← Back to blog