OpenBox 1.12.0
OpenBox 1.12: Living Library
Your library isn't a snapshot, it's alive. OpenBox 1.12 lets you pin the questions you ask of it into shelves that answer themselves, gives every game a story worth scrolling, and finishes the launch-options sheet down to the last environment variable.
What's New
Smart Collections
The search bar's deterministic grammar (short unplayed rpg, beaten co-op before 2000) can now be pinned. Save as collection turns the active query into a named sidebar shelf that re-evaluates live. A collection stores the question, not the answer, so "under 5 hours, never played" stays honest as your library and habits change.
Game Story
A new Story tab in the detail pane narrates each game's journey: added to the library, first played, longest session, playtime milestones, progress states, and the Moments you captured. One deterministic timeline built from the session journal, no separate tracking required.
Every Launch Knob, Per Game
Edit game → Launch gains KEY=value environment overrides per title, validated at save and merged over the launch environment at spawn. A new Always confirm before launch flag asks before preflight on the games you want it to. Combined with the per-game launch command, profile, and Gamescope preset, nothing about a launch is global-only anymore.
Set-and-Forget Backups
Settings gains an opt-in weekly automatic backup with configurable retention and a "last automatic backup" line, riding the existing backup engine. Your library history protects itself while you play.
A Library That Scales and Learns
At 5,000+ games the SQLite FTS read model turns itself on, with an explicit env opt-out honored and identical behavior for small libraries. The command palette now ranks your recently chosen games and actions first, learned from local usage counts. No telemetry, ever.
A New Mark
OpenBox wears its new hexagonal OBGL monogram everywhere: app icon, favicon, README artwork, window and tray icons: one canonical mark, rendered from source.
Fixed
- The per-game Gamescope preset override saved correctly but was never projected to the client, so the Edit game select always rendered blank. It now round-trips.
- Large media files could stop mid-response on
os.sendfile, hanging browsers waiting for promised bytes. The buffered writer now resumes exactly where sendfile stopped. - The in-app document reader was blocked by over-strict framing headers; document endpoints now allow same-origin framing, and closing the reader fully unloads it.
- Scrolling the library pane could blank the card grid. Virtual-window scroll offsets now account for everything above the grid.
- Focus restoration is owned by the dialog stack: closing any dialog returns focus to its opener, and Escape in the context menu restores the card.
- The Show Play insights setting is now honored in the web UI instead of always rendering the panel.
- The resume affordance no longer probes the server for client-only games, and export downloads share the same partial-write discipline as every other response.
Download
| Asset | Architecture | Type |
|---|---|---|
OpenBox-x86_64.AppImage |
x86_64 | AppImage |
OpenBox-aarch64.AppImage |
ARM64 | AppImage |
OpenBox-x86_64.flatpak |
x86_64 | Flatpak |
Choose the AppImage that matches your CPU, or install the Flatpak for a sandboxed desktop setup. AppImages are signed and include SHA-256 checksums, zsync metadata for delta updates, and SBOMs. Verify with openbox-release.pub and install.sh.
Already running OpenBox? Use the built-in updater or download the matching artifact from the release page.
Full Changelog: v1.11.0...v1.12.0