OpenRiot v8.0.5: It Comes in Colors Everywhere
“The house was gray, the road was gray, and the little notifications were gray too. Then somebody opened a door and the whole street walked in wearing colors. The dog barked at the rainbow. The wizard, it turned out, was a file on disk.” – The OpenRiot Crew, v8.0.5
Release Overview
OpenRiot 8.0.5 repaints the desktop and fixes the plumbing underneath. The palette tones down, the bar picks up a rounded outline and one pixel of air, and the volume, microphone and brightness keys now answer on the screen instead of whispering through a notification daemon.
It is a coat of paint with a torque wrench in the pocket.
Total changes: one palette, one bar, one OSD, and the small arguments in between.
A Coat of Many Colors
The canonical palette in config/colors.toml mutes the bright accents
into something that sits still at night. Because every template reads
that file, the change lands everywhere at once: the bar, the workspace
pills, rofi, helix, dunst.
The workspaces stop hardcoding their own weather. Focused, dimmed, and urgent states now come from the palette, so the bar and the workspaces finally agree on what green means.
The night-light icon learned to testify. Amber when the room is warm and ordinary, a colder blue-purple when the filter is actually on. No more squinting to guess whether the color cast is a feature or a mistake.
A theme here is a file you own. Not a subscription you renew, not a palette the store can revoke. It lives on your disk and it survives the next reboot, which is more than most colors can promise.
The Display Is the Message
openriot --osd draws the change where your eyes already are.
Volume, microphone and brightness render as a small themed strip by
way of osd_cat, then vanish. When X isn’t there, or the helper isn’t
installed, it falls back to the old toast without complaint.
The pop-up was always somebody else’s service. This one is a rectangle we draw ourselves, in our colors, on our terms.
One Pixel of Breathing Room
The bar now meets the top of the screen with no dead strip above it, and
stops one pixel short of the windows below so two outlines never touch.
gaps top 1 reserves that breath, and smart_gaps off keeps it even
when a workspace holds a single window.
A lone window finally keeps its border. hide_edge_borders none sees to
that, so a full workspace no longer pretends to be a full-screen app.
The focused window outline is dimmer, too, closer to the room than to a
traffic cone.
It Fits Every Screen
The font scaling markers in polybar.Setup pointed at sizes that were
never in the template, which meant half the bar ignored the resolution.
They now match size=18 and size=12, so the bar scales its type on the
screens that aren’t 1080p. The height still steps by width: 22, 26, 28,
32.
🧾 Files Changed
| File | Change |
|---|---|
config/colors.toml |
Muted canonical palette |
config/polybar/config.ini.tmpl |
Rounded bar, outline, gap, |
| per-module colors, font offsets | |
config/i3/config |
gaps top 1, smart_gaps off, |
hide_edge_borders none, dim client.focused |
|
source/osd/osd.go |
NEW on-screen display |
source/audio/volume.go |
Volume/mic OSD first, toast fallback |
source/display/display.go |
Brightness OSD first, toast fallback |
source/commands/commands.go |
--osd command |
source/polybar/polybar.go |
Theme-driven workspaces, |
| corrected font scaling | |
source/nightlight/nightlight.go |
Blue-purple when ON |
install/packages.yaml |
xosd for the OSD |
🗣️ Final Words
“Somewhere over the config file, the colors were always there, waiting for someone to stop drawing in gray. The toast is gone, the border is back, and the room fits on any screen you put it on. Kick the tires. It comes in colors everywhere.” – The OpenRiot Crew, v8.0.5