5 Commits
Author SHA1 Message Date
Greyson Parrelli 407dd81512 Build in the review tool. 2026-08-24 09:24:01 -04:00
Greyson Parrelli 73a0187db5 Rebrand as Playpen. 2026-08-11 14:26:12 -04:00
Greyson Parrelli a7a9429d09 Add a web browser tab. 2026-08-11 12:39:14 -04:00
Greyson Parrelli 74bc9e8fd3 Add mise tasks, desktop entry, and app icon
mise run install builds a release binary and installs it into ~/.local with
a desktop entry and a hicolor icon.

Two wrinkles specific to a Nix-built GTK app installed outside the dev shell:
the launcher is a generated script rather than a symlink, because a desktop
launcher provides a minimal environment and GTK still needs to be pointed at
its GSettings schemas and icon themes; and install registers Nix GC roots for
every store path in the binary's RPATH, so nix-collect-garbage cannot delete
GTK out from under the installed app.

The runtime paths are exported from the flake's shellHook and read back at
install time, so they cannot drift from what the binary was built against.
2026-08-11 10:03:41 -04:00
Greyson Parrelli 738cead680 vtabs: terminal with vertical tabs on libghostty-vt + GTK4
Uses libghostty-vt (the API Ghostty documents for external embedders) for
the terminal core. Ghostty's other C API, ghostty.h, exposes a full terminal
surface but only supports macOS and iOS platform tags, so it cannot be
embedded on Linux.

We supply the layers libghostty-vt deliberately leaves out: PTY and process
management, a Cairo/Pango cell renderer, and a GTK4/libadwaita UI with a
Zen-style vertical tab sidebar.

Nix pins the whole toolchain (Zig 0.16 via zig-overlay, GTK 4.22, libadwaita)
so no host setup is needed.
2026-08-11 08:36:10 -04:00