I like how all the tests seem to be contained within a "jury" folder which judges the merit of your code, made me smile - It's always nice for open-source/FOSS projects to retain a bit of whimsy and joy.
When it comes to wallpapers, you could do a similar trick on X11 DEs by putting it onto the root window (with a tool like xwinwrap) and on Wayland DEs that support layer-shell (with a tool like windowtolayer). I'm not aware of screen lockers that do something like that, but you could always write your own one.
First feature request: allow disabling all the `tput setab 0` calls throughout the codebase. This may make screensavers look weird on white terminals but should improve them for anyone using non-black-but-dark terminal themes.
In the good ol' days, ~1990, Norton Commander had a screensaver with stars, similar to the one in the gallery readme, but with fewer stars, that grew from a dot to bigger dot, to shining, then bursted. Nice to see something like that again.
I thought the same thing. I remember being in elementary school and seeing one of these terminate-and-stay-resident / TSR joke things that made the smiley face ascii character bounce around the screen. That led me to finally move on from Pascal and dive into C to make one of my own, though I'm pretty sure it would be possible in Pascal, all the (very obscure) information I could find as a child used C examples. When I finally had one running that would "Moo!" at random places I felt like a real hacker.
Looks like an attempt to make the main GitHub page (the part above the README) display something interesting. It is messed up now because of further commits, but you can see what it looked like at the time here:
See the spread-the-word script in https://github.com/attogram/bash-screensavers/tree/main/spot...
This script generates a series of shell commands to create a "spotlight" message on the main GitHub repository page. It does this by generating commands that make trivial changes to the top 12 files and directories and then commit those changes with custom messages.
I used "brew install bash && brew info bash" to get the path, then ran that shell (zsh doesn't work), then inside that new bash, ran the screensaver app.
I found the 4k fullscreen perf in iTerm2 to be not-great, so I did it again in the kitty (GPU powered) terminal macos app, and it was good.
ive always wanted to build something like this for divination, an X by Y field in which each cell is randomly assigned a character from a set which refreshes on a tick that you're meant to just gaze on and look for spontaneous patterns in, maybe with some conway game of life style rules about how cells can be more or less likely to update based on the states of their neighbors. Fork incoming.
Nice! I won't use this since screensavers are much more interesting when not limited to characters, but this is a neat project.
Screensavers are a lost art. I still enjoy them, but at some point we just gave up on them. In the era of CRTs they had a practical purpose (they're screen savers, after all), but modern OLED displays also suffer from burn-in for which screensavers would be useful. My enjoyment is purely aesthetic, though. Sometimes I just want to have something pleasing to glance at in the background, instead of a black screen.
Nowadays most operating systems and desktop environments don't even support them. The state of the art on Linux still seems to be `xscreensaver`, which does have many great ones, but the collection is static, and most of it is visually stuck in the 90s. I wouldn't even try getting it to run on Wayland, and when I last looked into it, it required some hacks and 3rd-party tools.
Also, I've always found the feature of screen locking and screen saving to be orthogonal. Often I want to see pretty graphics without locking my screen, and viceversa.
Did you see the library of viz? https://github.com/attogram/bash-screensavers/blob/main/libr...
My favourite API: lov_die_with_honor()
(thought I'd share that since its raison d'être was to put Asciiquarium there :))
OLEDs can still suffer from burn-in, but it's also just easier to have them... turn off...
Do you know if this supports any DE (or no DE)? Or is it strictly for KDE Plasma?
When it comes to wallpapers, you could do a similar trick on X11 DEs by putting it onto the root window (with a tool like xwinwrap) and on Wayland DEs that support layer-shell (with a tool like windowtolayer). I'm not aware of screen lockers that do something like that, but you could always write your own one.
Yeah, I've used xwinwrap before, but am lost on Wayland. I'll look into windowtolayer, thanks. I'd rather not have to write this myself...
Also, found one of the easter eggs!
A lot of screensavers, even historically, forget the original purpose of what "saving" your screen means.
First feature request: allow disabling all the `tput setab 0` calls throughout the codebase. This may make screensavers look weird on white terminals but should improve them for anyone using non-black-but-dark terminal themes.
1: https://keeb.dev/static/login.mp4 2: https://github.com/ChrisBuilds/terminaltexteffects
1: https://omarchy.org/
2: https://github.com/ChrisBuilds/terminaltexteffects
[1]: https://en.wikipedia.org/wiki/ANSI_escape_code#Control_Seque...
[2]: https://unix.stackexchange.com/a/789031
What are those commit messages?
https://github.com/attogram/bash-screensavers/tree/a7369a93c...
(at least when running in docker, maybe that's the bottleneck, but I hesitated to run this on my machine directly)
I get "mapfile: command not found"
new installs default to bash not being the default terminal. someone else mentioned macports, but there's a new version available via brew as well
zmodload zsh/mapfile
./screensaver.sh: line 79: mapfile: command not found 1 .
(Press ^C to exit)
Choose your screensaver: 1 404 Screensaver Not Found:
Oh no! Screensaver had trouble! Error code: 1
checked active bash version:
echo $BASH_VERSION
5.3.3(1)-release
I found the 4k fullscreen perf in iTerm2 to be not-great, so I did it again in the kitty (GPU powered) terminal macos app, and it was good.
Screensavers are a lost art. I still enjoy them, but at some point we just gave up on them. In the era of CRTs they had a practical purpose (they're screen savers, after all), but modern OLED displays also suffer from burn-in for which screensavers would be useful. My enjoyment is purely aesthetic, though. Sometimes I just want to have something pleasing to glance at in the background, instead of a black screen.
Nowadays most operating systems and desktop environments don't even support them. The state of the art on Linux still seems to be `xscreensaver`, which does have many great ones, but the collection is static, and most of it is visually stuck in the 90s. I wouldn't even try getting it to run on Wayland, and when I last looked into it, it required some hacks and 3rd-party tools.
Also, I've always found the feature of screen locking and screen saving to be orthogonal. Often I want to see pretty graphics without locking my screen, and viceversa.