dunkaist wrote:Add scrsaver: new screen saver program.
Our default screen saver, ss, requires animations to run as its threads.
Therefore you can't set your favorite demo app as screen saver without
embedding it into ss. Vice versa, you can't run embedded animations as
standalone demos. Moreover, ss is a multi-thread app with configuration
window invoked by clicking both mouse buttons at the top right screen
corner (really?).
Scrsaver is a tiny single-thread program, configured via plain text
file, /sys/settings/system.ini. It has no window and runs a separate
executable as screen saver. This is done via primitive protocol:
* Config file specifies program to run;
* '@ss' parameter is passed to the program;
* program launches '/sys/@ss' at exit if '@ss' param is passed.
See /programs/demos/spiral for working example.
I also included fix for screen saver by Nasarus, which was lost between r1745 and r1747.
Any objections to make it default?
Leency wrote:This topic was in browser bookmarks for a long time because I wanted to test it.
Now I have finally checked and it works well. Great idea.
Thank you, I have many pinned tabs for exactly same reason too.
Leency wrote:But for me Spiral demo is a bit too colored and may be annoying. Maybe better to rebuild old @ss into a demo and use it?
As I described in the commit message, it isn't straightforward with @ss to make a standalone demo into a screensaver and vice versa. It shouldn't be too hard to extract ASSM screensaver (or LINES?) from @ss if we decide that there is no better screen saver candidate among existing demos. Such demo shouldn't burn the CPU and eat memory of course.
Leency wrote:Also I can write a configuration UI for @ss.
Do you prefer a separate application or another tab in existing configurator?