Как это примерно выглядит в движении можно посмотреть тут (полукилобайтный флэш ролик с аналогичной анимацией). Исходник + бинарник прилагаю (лицензия - BSD). Вообще скорее всего ещё доработаю, а то мерцает, может ещё что-нибудь поинтереснее с фигурами Лиссажу сделаю.
Вообще демка задумывалась как скринсейвер, но, похоже, нет простого способа использовать в качестве скринсейвера что-то отличное от того, что умеет показывать @ss. Предлагаю: допилить @ss так, чтобы он воспринимал параметры командной строки:
- Будучи запущен без параметров сразу же показывает скринсейвер "color lines" и самоубивается от активности мыши/клавы
- Получив один параметр ожидает, что это будет число и использует его как timeout до запуска заставки "color lines", при активности пользователя заставку прячет, но продолжает висеть в памяти
- Если же получает два параметра по истчению количества минут, указанного первым параметром, запускает приложение, указанное вторым параметром, обнаружив активность пользователя, запущенное приложение прибивает, а сам остаётся висеть в памяти и следить за активностью пользователя
Идея в том, чтобы переложив минимальное количество бревён © получить возможность изменять скринсейвер и сохранять эту настройку простым редактированием autorun.dat.
Собираюсь в ближайшем будущем попробовать написать патч для @ss, реализущий вышеописанные изменения. Вопрос поднял заранее потому что хочу посоветоваться, нет ли более правильного/удобного способа реализовать возможность сохранения настроек скринсэйвера для последующих загрузок ОС.