vitruvianos display pipeline: from pixels to screen

This is a technical deep dive into how V\OS gets pixels from application code to your display. The display pipeline in V\OS inherits from Haiku (which inherits from BeOS) but adds Linux DRM/GBM integration, per-window compositing, and an optional GPU compositor. Understanding the layers helps explain why certain design decisions were made and where the system is heading.

the BeOS/Haiku display model

BeOS had an elegant display architecture. The app_server owned the entire display pipeline. Applications communicated with it via IPC ports (message queues). There was no X11, no Wayland, no separate compositor process. One server, one buffer, one path from application draw call to screen pixel.

[]

vitruvianos: from software blitting to gpu compositing

The last few days have been a deep dive into V\OS’s graphics pipeline. What started as “make the DRM backend boot in QEMU” turned into building out per-window GPU compositing, fixing Haiku’s menu rendering, writing a gears demo, and learning more about virtio-gpu’s limitations than I ever wanted to know.

where we started

V\OS had a DRM display backend from x512’s Haiku work. It could put pixels on screen via dumb buffers and page flips. But there was no cursor, windows flickered when dragged, the GBM/EGL code had never been tested on a running system, and the whole thing only worked with -vga std in QEMU.

[]

vitruvianos: building the os that beos promised

I have been a BeOS fan for a long time. Watched it come and go, followed the community through Zeta and into Haiku, and always felt like there was something unfinished there. An OS that got the fundamentals right but never got its shot at the mainstream. I only recently started contributing to VitruvianOS (V\OS) but I am all in on it. It is an operating system built on the Linux kernel that brings the BeOS desktop experience to modern hardware, and I think it has a real chance at finishing what BeOS started.

[]

prism gets auth, goes to production, and fights safari

Prism is an interview practice tool — you pick a topic (elocution, system design, etc.), get matched with AI panelists who have distinct personas, and do push-to-talk voice sessions that get transcribed and critiqued. Today was about hardening it for real users.

sign in with everything

Added OAuth for Google, GitHub, and Apple. Google and GitHub are standard OAuth2 flows. Apple is its own thing:

  • The client secret is a short-lived ES256 JWT you sign with a .p8 private key — not a static string
  • The callback is POST (form_post), not GET
  • User info comes from the id_token JWT, not a userinfo endpoint
  • Apple only sends the user’s name on the first authorization — subsequent logins only have email + sub

Generated a fresh client secret per request to avoid stale-secret bugs. Used ParseUnverified on the id_token since it comes server-to-server from Apple’s token endpoint over TLS.

[]

grok reads your links so you don’t have to

Signal Sideband collects URLs shared in group chats and fetches OG metadata for previews. Problem: X/Twitter links return nothing useful behind their auth wall. The preview cards were blank.

the fix

Grok (xAI) has native access to X/Twitter content, so it’s the right tool for summarizing those links. The preview worker now:

  1. Skips HTML scrape for x.com / twitter.com domains (pointless)
  2. Sends the raw URL to Grok with sender context
  3. Gets back a one-sentence summary + 2-4 topic tags
  4. For non-Twitter links, uses the scraped OG metadata as context for better summaries

The prompt is simple — JSON response format, content-focused tags, include who shared it:

[]

Working through the software engineers’ guide book and covered another chapter the initial was on promotions: how they’re decided, business cases, and performing at the next level. A lot of that tracks with what I’ve observed at Shift: definitely the support of others and perception.

There is mention, if it’s a lightweight or heavy-weight promotional process. It can depend on the company setup so the less mature companies, it’s usually fast-tracked and it’s very informal and more of a political thing with the adolescent and senior companies of the establishments. We make use of self-evaluation and getting feedback as well, and there is a mentoring process, one that I haven’t taken advantage of. I’ve had an opportunity but maybe that’s something I should look into.

[]