💾 Archived View for ftrv.se › 14 captured on 2023-06-16 at 16:12:15. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-06-14)
-=-=-=-=-=-=-
Update, 2023/05/16: noam provided a diff pointing at several issues - full redraw on every color change and white background; these are fixed now.
Update, 2022/10/21: patch updated to apply on latest rio, yet again.
Update, 2022/09/12: patch updated to apply on latest rio, again.
Update, 2022/08/24: patch updated to apply on latest rio.
Update, 2022/06/20: patch updated so that rio background change should trigger necessary logic to keep "glitchy background on new windows" away.
Update, 2021/07/01: patch updated for latest 9front, instructions on applying are updated to use `ape/patch` since `hg` has been removed.
Update, 2021/05/28: subrios will try loading the theme from `/dev/theme` on start.
Update, 2020/11/29: jmi2k cleaned up the patch from riow and made it show image paths. The patch here contains that and can be applied to 9front's latest rio. If you need riow, apply it on top or before.
Here is presented an approach of theming rio without having to change its code every time a change of color is needed. Each nested rio may have a different color theme.
Before doing anything, make sure to run `sysupdate`. I you had the patch applied before, or `sysupdate` resulted in conflicts, undo the patch first.
A patch should be applied, rio rebuilt, installed, and restarted.
bind -ac /dist/plan9front / cd /sys/src/cmd/rio hget https://ftrv.se/_/9/patches/rio-themes.patch | patch -p5 mk install
To undo previous changes, run:
bind -ac /dist/plan9front / cd /sys/src/cmd/rio git/revert . rm -f *.rej *.orig menuhit.c col.h mk install
The patch makes rio export `/dev/theme` file:
With simple writes to `/dev/theme` one can change colors dynamically without having to recompile and restart rio. Themes can be stored to files and loaded again after rio has started:
/usr/glenda/bin/rc/riostart:
window 'cat /usr/glenda/lib/theme/rio.theme > /mnt/wsys/theme'
/usr/glenda/lib/theme/rio.theme:
rioback /usr/glenda/lib/1920x1080.img back f1f1f1 high cccccc border 999999 text 000000 htext 000000 title 000000 ltitle bcbcbc hold 000099 lhold 005dbb palehold 4993dd paletext 6f6f6f size 000000 menubar 448844 menuback eaffea menuhigh 448844 menubord 88cc88 menutext 000000 menuhtext eaffea
As you can see, `rioback` in this example is set to a Plan 9 image, that's the wallpaper. Images have to be of the same size as your screen and can be converted from a, for example, JPEG file as:
jpg -9t <coolwallpaper1920x1080.jpg >/usr/glenda/lib/1920x1080.img
A more user-friendly interface is provided by installing picker[1] and then running `picker </dev/theme >/dev/theme`.
Picker provides ways to snarf the entire theme, to revert a color or an entire palette, etc. With proper setup (see `man picker`) one can plumb a theme file to change it instantly (while picker is running).
bar(1)[2]
riow(1)[3]