Use another lockscreen with XScreensaver? Is it possible?


I use i3wm, with betterlockscreen to lock the screen. I want to use XScreensaver to launch a Screensaver when I lock the screen manually and then return to the locked betterlockscreen after I move the mouse or press a key.

Is it possible to do this?

find the location in the i3.conf where the screensaver is called

bind them with & on the same line


 screensaverA & screensaverB &

I used

betterlockscreen -l & xscreensaver-command --activate &

but the screensaver gets activated after I unlock the screen.

It was just a thought - it seems logical that only one lock screen can be active at any given time.

After all it locks all user input/activity - it don’t think what you want is doable.

I understand.

Is it possible to improve the design of xscreensaver’s lock screen. Or an alternate to xscreensaver that can use the gluqlo screensaver?

I don’t know - what does an internet search tell you?

1 Like

XScreensaver has the screensaver I want but not a good lock screen. I tried gnome-screensaver (which shows a blank screen, and I found no way to configure it). Light Locker and Slim are good replacements for the lockscreen part of XScreensaver, but don’t support screensavers.

I can start the screensaver by executing it from /usr/lib/xscreensaver but that is of no use without XScreensaver.

Basically, I am stuck

I have configured i3lock and script which blurs the screen - hit Ctrl-Alt-Del - then L - nothing fancy - and something I rarely use - but I reckon the it is necessary for many users.

The different screen savers you can choose - is those separate binaries/scripts - I mean - they cannot all be a part of the bin - but must be implemented as libraries or something - if I look at xsreensaver - there is a lot of backends and frontends and choices - just check with AUR

Following script should do what you want. It’s watching the status of the xscreensaver until it is UNBLANK.


xscreensaver-command -activate &
xscreensaver-command -watch | while read -r line
    if [[ ${line::1} == U ]]
        killall xscreensaver-command
        betterlockscreen -l