OpenRiot v7.9.29 — Live Long and ulimit -v

“The needs of the many outweigh the needs of the few — or the one. But when the one is a 295 MB stripped binary, the many need a bigger virtual address space.” — Captain Picard, while porting Zed to OpenBSD


Release Overview

v7.9.29 continues our relentless march across the OpenBSD frontier. We have engaged the Zed editor — a Borg cube of WASM, wgpu, and third-party crates — and while we have not yet achieved a working window, we have mapped its defenses, patched its hull breaches, and armed the build script with ulimit -v so it does not assimiliate your entire system into a kernel freeze.

Also: Kate joins the roster. Stablecoins finally cost exactly one dollar. And we proved OpenRiot idles at under 1 GB RAM with a full desktop running.


🗡️ The Zed Port — A Rōnin’s Quest

Status: compile complete, runtime siege ongoing.

Zed is not some weekend port. It is a 1110-line patch (zed-patch.diff) across 27 files. It is patching wasmtime-wasi because OpenBSD has no TCP keepalive sockopt. It is patching ipc-channel because POLLRDHUP does not exist in our libc. It is tracing wgpu’s compile-time cfg aliases through three crates to discover that target_os = "openbsd" was missing from the gles backend definition.

We have:

  • Added scripts/zed.sh — a build script that clones Zed, applies our patch, hot-patches the cargo registry at build time, and enforces ulimit -v 8388608 so the linker cannot kernel-panic the box
  • Fixed OpenBSD sed -i usage throughout (it requires a backup suffix)
  • Patched wgpu and wgpu-core build.rs to include OpenBSD in the GLES cfg alias — without this, enabled_backend_features() returns Backends::empty() and the binary dies at instance.rs:65
  • Installed config/zed/settings.json and theme files for when it fires
  • Documented every step in docs/OpenBSD-Zed.md

The stripped ~295 MB binary now installs with a wrapper that raises ulimit -v before exec. The window still has not rendered, but the compile is clean and the crash dump is no longer the entire system.

This is the way of the porting sword: one cfg gate at a time.


🖊️ Kate — The GUI Editor Arrives

Not everyone wants to live in Helix. For those who prefer clicking, Kate is now an optional install. Pre-configured with Ayu Dark, FiraCode Nerd Font, and BreezeDark UI so it matches the OpenRiot aesthetic out of the box. ~300 MB of dependencies. Skip it if you are a terminal samurai; install it if you want an IDE.


💰 Stablecoins Are Stable Now

CoinGecko has no fiat coin IDs, so USD, USDC, USDT, and DAI were returning zero prices and breaking portfolio math. We hardcoded them to $1.00 and fixed column alignment across fmtHeldClean, outputROWML, outputNotify, and outputNotifySend. Your stable holdings now line up like a phalanx.


🧠 2 GB Minimum RAM — Proven

The README now advertises 2 GB minimum RAM with an honest screenshot (assets/ram.webp) showing OpenRiot running Firefox, Thunar, Crush, Gnome Text Editor, and a terminal — all under 2 GB. We do not just claim efficiency; we screenshot it.


🖼️ New & Refreshed Backgrounds

The lock screen gallery gained 7 new entries (75–79, 81–82) and 13 existing wallpapers were refreshed. Nine backgrounds in the main set were also updated.


🧾 Files Changed

File Change
AGENTS.md Build-script exception for scripts/*.sh
scripts/zed.sh NEW — OpenBSD Zed build with wgpu +
  OOM protections
scripts/zed-patch.diff NEW — 1110-line OpenBSD compat patch
docs/OpenBSD-Zed.md NEW — Zed port status and build docs
docs/v7.9.29-Release-Notes.md NEW — these notes
config/zed/settings.json NEW — Zed editor settings
config/zed/themes/ NEW — Zed theme files
README.md Kate section, RAM screenshot, 2GB min RAM
assets/kate.webp NEW — Kate editor preview image
assets/ram.webp NEW — RAM usage screenshot
source/crypto/crypto.go Stablecoin $1.00 hardcode, column alignment
config/dunst/dunstrc Updated notification config
config/rofi/apps.txt Updated app launcher entries
config/rofi/blockchain.txt Updated blockchain menu entries
config/rofi/utilities.txt Updated utilities menu entries
config/window/icons.toml Updated window icon mappings
install/openriot Updated installed binary
install/packages.yaml Zed settings.json + themes install targets
backgrounds/*.webp 9 refreshed wallpapers
Locked/*.webp 7 new lock screens, 13 refreshed

🗣️ Final Words

“The porting rōnin does not fear a 295 MB binary. He fears only a compile that gives no error message — only silence, then a hard reboot. We have traded silence for SIGKILL and the sword of ulimit -v. Onward.” — The OpenRiot Crew