4

My beloved screensaver Asciiquarium is not available for KDE Plasma 5. It was previously available in KDE Plasma 3 and Plasma 4, but Plasma 5 dropped support. How can I run Asciiquarium as a screensaver in any desktop environment?

Asciiquarium screenshot

6

Asciiquarium can run in a fullscreen terminal, and the screen locked with xtrlock. However the link is short on details.

Firstlly, I prefer alock to xtrlock, since it provides some visual feedback on password entry, and can also hide the mouse cursor. N.B. alock requires a single keystroke first to start entry. After the green border appears, type in your password.

The following script is used to activate the screensaver, and is located at ~/.local/bin/asciiquarium_screensaver

#!/bin/sh
xterm -fullscreen -bg black -e asciiquarium & alock -cursor none -bg none; xdotool key --clearmodifiers q

The first part launches xterm in fullscreen, runs asciiquarium, and places it in the background (&). -bg black is necessary to avoid the background of xterm showing as a border behind asciiquarium itself.

alock immediately runs, hiding the cursor (-cursor none) and locking the screen transparently (-bg none). When alock is unlocked by the user, it quits. xdotool then types q, which will quit asciiquarium and hence xterm.

Now all that remains is to automatically trigger the screensaver with something like xss-lock. To start it automatically on login, create the following file at ~/.config/autostart/xss-lock.desktop

[Desktop Entry]
Exec=xss-lock -- /home/sparhawk/.local/bin/asciiquarium_screensaver &
Type=Application
Terminal=false
Name=asciiquarium_screensaver

To change the timeout value, use

$ xset s TIME_IN_SECONDS TIME_IN_SECONDS

replacing TIME_IN_SECONDS with the number of seconds of idleness before you want it to activate. I don't entirely understand why you need to enter it twice, but that's what worked for me.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.