|ohnonot c69f4333b1 calculating font dimensions with awk instead of pure bash||5 days ago|
|helperscripts||1 year ago|
|screenshots||1 year ago|
|.gitignore||1 year ago|
|README.md||1 year ago|
|marquee1||1 year ago|
|termss||5 days ago|
A terminal screensaver to replace xscreensaver & Co.
Written in bash.
termsswrapper script: It will hide the mouse pointer (*), convert screen resolution to font characters, open a fullscreen terminal window (urxvt) and execute a command given as an argument. Then it starts listening to events, and will kill everything as soon as you wiggle your mouse pointer or type anything. Just like any screensaver. No screen locking.
termsswill pause dunst while the screensaver is active. If you have dunst in your
$PATH, and it is not running, it will be started first.
marquee1) designed to run inside that window. It first shows some output in nice
toiletfonts in random colors and position, then sprinkles the whole thing with stars, waits, and starts again.
The Xorg X server has a screensaver builtin; settings can be queried via
The marquee scripts in this repository are attempts at creating a simple "Marquee"-type screensaver: print the output of some command on screen, with variation in position & color (**).
The whole thing requires at least one more program that is capable of activating
xset screensaver settings.
xss is one such program, and it is the one I'm using.
It also comes with some useful extra utilities such as
xsswin which can embed other applications in a fullscreen window, and
xkeygrab to lock the screen.
Essentially these three programs do the same thing: They provide a mechanism to start an external application when the X server says "no user activity, time to start the screensaver".
The scripts currently do not have any command line options, modifications have to be done by editing the scripts themselves, and so there aren't really any dependencies, but if one wanted to get by without editing anything, one would need:
xlsfonts, possibly part of
xrandr, possibly part of
xinput, possibly part of
setxkbmap, possibly part of
It isn't hard to imagine all the programs one can run in fullscreen to make for
a nice screensaver, but this repository uses a terminal emulator.
The urxvt terminal emulator has a fullscreen option; others might have it too, or your window manager can provide it, but I recommend to use
xterm. In any case it must be able to use the old bitmapped xfonts.
You will need a command like this in your
xss termss /path/to/termss/marquee1 & # or xss termss asciiquarium & # or xss termss sh -c 'cmatrix|lolcat' # etc.
This is work in progress, you need to review and likely edit the scripts, there's not enough quality control etc.
But once it works, it works well enough. Stable, one could say.
(*) There are some situations where the mouse pointer cannot be hidden because some application grabbed it, so it should be ungrabbed first.
However, that needs to be enabled first because it is potentially less secure.
I have enabled it because I do not lock the screen anyhow.
But you should know that
termss keeps this option enabled for the remainder of that X session.
You can set
insecure=0 inside the script, which uses an alternative method that is good enough for most cases, and ungrabbing stays disabled.
(**) It is said that burn-in isn't an issue on LCD screens, but I still feel better varying the position of the text across the whole screen. Apart from that, I need some basic information on the screen, large enough so I can also see it from the kitchen, and colours are always nice.