OpenRiot v5.11 — The Monero Protocol
“Privacy is not a crime. It is a feature.” — Ancient OpenBSD proverb, probably whispered through a Tor exit node
Release Overview
OpenRiot v5.11 is what happens when someone says “I want to manage my Monero from the desktop” and the team responds with a four-hour source build, two broken CMake reconfigurations, an existential crisis about dynamic linking, and finally the elegant solution we should have used from the start: a tarball. The Monero GUI wallet is now a first-class citizen in your rofi menu, complete with its own Nerd Font icon, polybar workspace integration, desktop entry, and a notification that says “Launching Monero Wallet” like it’s the most natural thing in the world. Because it is.
We also fixed XDG_RUNTIME_DIR permissions so Qt apps stop complaining like a door-to-door evangelist, added ~/.local/bin to the X11 PATH so rofi can actually find things we put there, made the crypto polybar icon disappear when you haven’t configured it (no more phantom staring at you in judgment), and bundled six new Monero-themed lock screens and four new desktop backgrounds because if you’re going to run a privacy coin, your lock screen should look like it’s guarding nuclear launch codes.
Total changes: 1 cryptocurrency wallet, 1 tarball epiphany, 10 Nerd Font icons, 6 lock screens, 4 wallpapers, 0 build-from-source pretensions.
💰 Monero Wallet GUI: We Built It So You Don’t Have To
The Problem: Monero doesn’t ship a GUI wallet for OpenBSD. The official monero-gui repository requires building from source with CMake, Qt5, Boost, protobuf, zeromq, and patience. On OpenBSD 7.9-current this involves patching C++ standards, OpenBSD detection macros, HID API initialization, Qt5 library symlinks because unversioned .so files don’t exist, a custom linker script edit to add -L paths, and roughly four hours of compilation that sounds like a jet engine taking off in your ThinkPad.
We tried this. It worked once. Then we re-ran cmake and destroyed the carefully patched linker script. Then we did it again. Then we realized that asking every user to endure this is not software distribution — it’s hazing.
The Fix: config/monero/monero.tgz. A 25MB tarball containing pre-built, dynamically-linked binaries:
| Binary | Purpose |
|---|---|
monero-wallet-gui |
The Qt5 GUI wallet |
monerod |
The full node daemon |
monero-wallet-cli |
Command-line wallet |
monero-wallet-rpc |
JSON-RPC wallet server |
Installation is now two commands: extract the tarball to ~/.local/bin and install the Qt5 QML runtime packages. That’s it. No CMake. No patches. No four-hour compile. The binaries are dynamically linked against system Qt5/Boost/OpenSSL with RUNPATH: [/usr/local/lib/qt5], so they track OpenBSD package versions exactly — and since packages.yaml pins those versions, all users stay in sync.
Rofi Integration:
Monero Wallet|monero-wallet-gui.desktop|
Selecting it from Super+Space triggers a dunst notification with the Monero icon and launches the wallet. The desktop entry exports QML2_IMPORT_PATH=/usr/local/lib/qt5/qml so Qt Quick modules load correctly.
Workspace Icon: window/icons.toml maps monero-wallet-gui → , so your i3 workspace shows the Monero glyph instead of a sad generic square.
“Build from source once, ship the tarball forever. This is the OpenBSD way — we compile in the monastery, distribute the artifact to the world.”
🔒 Six New Lock Screens (Monero + Cyberpunk Edition)
Locked/26.png through Locked/31.png — six new lock screen images featuring Monero-themed cyberpunk aesthetics. Because if your wallet is private, your lock screen should at least look like it knows what OPSEC means. These join the existing 32-lock-screen rotation, so Super+L has more variety than ever.
| New Lock Screens |
|---|
Locked/26.png |
Locked/27.png |
Locked/28.png |
Locked/29.png |
Locked/30.png |
Locked/31.png |
🖼️ Four New Desktop Backgrounds
backgrounds/17.png through backgrounds/20.png — four new wallpapers in the same style as the Monero lock screens, for Super+W rotation. Your desktop now matches your paranoia level. Beautifully.
| New Backgrounds |
|---|
backgrounds/17.png |
backgrounds/18.png |
backgrounds/19.png |
backgrounds/20.png |
📊 Crypto Icon: Now With Self-Awareness
The Problem: The polybar crypto module showed a icon regardless of whether you had ~/.config/crypto.toml configured. For users who never set up crypto tracking, this was a daily reminder that they were missing out on watching Bitcoin oscillate between euphoria and despair. A phantom icon. A judgment glyph.
The Fix: [module/crypto] is now a custom/script that runs --crypto-icon every 60 seconds. The command checks if ~/.config/crypto.toml exists. If it does, it outputs the icon text. If not, it outputs nothing, and label-empty = hides the module entirely. No config, no icon. No judgment.
| Config Exists | Polybar Shows |
|---|---|
| Yes | clickable icon |
| No | Nothing. Silence. Peace. |
The click-left handler still fires --crypto-notify when the icon is present, launching the price notification with a 1-second “Loading…” spinner.
🔧 XDG_RUNTIME_DIR: The Permission Preacher
The Problem: Qt apps (including Monero Wallet) print a warning on every launch:
QStandardPaths: wrong permissions on runtime directory /tmp/grendel-runtime, 0755 instead of 0700
The XDG_RUNTIME_DIR was created with mkdir -p which defaults to 0755. Qt is very religious about this and complains every single time, like a linter you can’t silence.
The Fix: chmod 0700 $XDG_RUNTIME_DIR is now enforced in:
config/fish/config.fish— for all fish shellsconfig/xinitrc/openriot-x11— for X11 startupconfig/xsession/openriot-xsession— for xenodm sessions
No more warnings. The directory is private, as the XDG Base Directory Specification demands.
🛤️ PATH to Enlightenment: ~/.local/bin
The Problem: ~/.local/bin was in your fish PATH but not in the X11 session PATH. Rofi, launched by i3, inherited the X11 environment — which had no idea ~/.local/bin existed. Result: the Monero Wallet rofi entry called monero-wallet-gui, which resolved to… nothing. The notification fired, the command silently failed, and the user sat there wondering if privacy was a lie.
The Fix: .xinitrc and .xsession now export:
export PATH="$HOME/.local/bin:$HOME/.local/share/openriot/install:$PATH"
All X11 apps (including rofi, dunst, anything launched from polybar) can now find user binaries. This also future-proofs any other tools we extract to ~/.local/bin.
🧾 Files Changed
| File | Nature of Change |
|---|---|
config/monero/monero.tgz |
New: Pre-built Monero binaries (25MB) |
config/applications/monero-wallet-gui.desktop |
New: Desktop entry with QML2_IMPORT_PATH env |
config/rofi/apps.txt |
Added Monero Wallet entry with icon |
config/window/icons.toml |
Added monero-wallet-gui = "" mapping |
config/icons/monero.png |
New: Monero Nerd Font icon () |
config/polybar/config.ini |
[module/crypto] → custom/script with --crypto-icon; label-empty hides when no config |
config/fish/config.fish |
Unconditional chmod 0700 $XDG_RUNTIME_DIR |
config/xinitrc/openriot-x11 |
Added XDG_RUNTIME_DIR setup + ~/.local/bin to PATH |
config/xsession/openriot-xsession |
Added XDG_RUNTIME_DIR setup + ~/.local/bin to PATH |
install/packages.yaml |
Added Qt5 QML runtime deps (qtquickcontrols, qtquickcontrols2, qtgraphicaleffects, qtdeclarative); crypto.monero as tarball extract |
source/config/types.go |
Added Crypto map[string]Module |
source/config/loader.go |
Wired crypto category into dependency resolver |
source/crypto/crypto.go |
Added ConfigFileExists() helper for polybar |
source/commands/commands.go |
Added --crypto-icon command |
Locked/26.png — Locked/31.png |
New: 6 Monero-themed lock screens |
backgrounds/17.png — backgrounds/20.png |
New: 4 Monero-themed desktop backgrounds |
install/openriot |
Rebuilt binary with all changes |
🗣️ Final Words
“We built Monero from source, broke the build, rebuilt it, patched linker scripts, installed Qt5 QML modules, realized the build was too brittle to ship, and finally just tarball’d the binaries like civilized people. The four-hour compile taught us humility. The tarball taught us wisdom. Your wallet is now one
Super+Spaceaway. Your lock screen looks like it knows what a view key is. And if you haven’t configured crypto prices, the polybar icon has the good grace to not stare at you in judgment.”
This release is dedicated to everyone who has ever built software from source at 2 AM, watched it fail on a linker error, and questioned their life choices. We have been there. We have emerged. With a tarball.
Upgrade with the usual command:
curl -fsSL https://OpenRiot.org/setup.sh | sh
— The OpenRiot Crew
“Privacy by default. Paranoia by design. Tarballs by necessity.”