OpenRiot v6.3 — Bitcoin
“Not your keys, not your coins.” — Everyone who ever used an exchange
Release Overview
OpenRiot v6.3 adds Bitcoin to the privacy wallet lineup alongside Monero. Where Monero is privacy by default, Bitcoin is transparency by design. Both matter. Both are now one Super+D (or Super+Space) away.
This release also fixes a critical production bug where the release notes pager auto-advanced without waiting for keypress, and optimizes install size with aggressive PNG compression.
Total changes: Bitcoin wallet, pager fix, setup.sh repair, image optimization.
₿ Bitcoin Wallet
The Problem: OpenRiot ships Monero for privacy, but some users need Bitcoin for transparent transactions, Lightning, or simple holdings. There was no native Bitcoin client in the app launcher.
The Fix: Added bitcoin-qt (Bitcoin Core v30.2) to the installer.
- Package:
bitcoin-30.2p0from OpenBSD ports - Desktop entry:
config/applications/bitcoin-qt.desktop - Rofi:
Bitcoin Walletappears afterMonero Walletin the app launcher - Window icon: Polybar shows
when Bitcoin wallet is active - No build required: Native binary, installed via
pkg_add
Trade-off: Unlike Monero’s pre-built tarball extract, Bitcoin Core requires ~500MB blockchain sync on first launch. This is Bitcoin’s design, not ours.
“Monero hides your balance. Bitcoin publishes it. Both have their place.”
🐛 Bug Fixes
Release Notes Pager Auto-Advanced
The Problem: The custom pager in v6.2 scrolled through all pages
without waiting for user input. readKey() returned immediately because
os.Stdin.Read() consumed buffered input that existed before raw mode
was entered. TIOCSETA does not flush the input queue.
The Fix:
- Changed
unix.TIOCSETA→unix.TIOCSETAF(flushes input buffer on raw mode entry) - Added
n == 0check afteros.Stdin.Read()to handle empty reads - Removed
key == 0fromAskShowReleaseNotes()“yes” condition — zero means read failed, not “accept default”
Impact: Installer now properly waits for Y/n keypress before showing release notes.
setup.sh Shallow Clone Update Failure
The Problem: On update, setup.sh failed with:
error: Could not read 2ad7255613f35b5a44f720245fedba28e681701f
git fetch --depth 1 on a shallow clone sometimes left origin/main
pointing at an unresolvable commit object.
The Fix: git reset --hard now targets FETCH_HEAD instead of
origin/main — the commit literally just downloaded, guaranteed to
exist locally.
🖼️ Image Optimization
OpenRiot.png
Resized banner image from 3072×1360 to 1200×531. File size: ~6MB → ~960KB. No visual quality loss on web displays.
Lock Screen Backgrounds
All Locked/*.png files optimized with pngquant (8-bit palette
reduction). Directory size: ~171MB → ~116MB. Average per-file: ~6.5MB
→ ~2MB. No visible banding on dark lock screen images.
📦 Package Changes
- Added:
bitcoin-30.2p0— Bitcoin Core Qt wallet - Removed: None
🧾 Files Changed
| File | Nature of Change |
|---|---|
source/installer/release_notes.go |
TIOCSETAF flush, readKey n==0 fix |
source/commands/helpers.go |
AskShowReleaseNotes() wiring |
config/applications/bitcoin-qt.desktop |
New desktop entry |
config/rofi/apps.txt |
Bitcoin Wallet launcher entry |
config/window/icons.toml |
bitcoin-qt, bitcoin icon mappings |
install/packages.yaml |
bitcoin-30.2p0 package + config deploy |
docs/v6.3-Release-Notes.md |
This file |
🗣️ Final Words
“v6.0 was beauty. v6.1 was correctness. v6.2 was readability. v6.3 is choice.”
This release is dedicated to everyone who said “I love Monero, but sometimes I just need Bitcoin.” We heard you. Both wallets are now first-class citizens in OpenRiot.
Upgrade with the usual command:
curl -fsSL https://OpenRiot.org/setup.sh | sh
— The OpenRiot Crew
“Privacy and transparency are not opposites. They are tools for different jobs.”