Xscreensaver, GlSlideshow on Manjaro with Gnome 41

Another post about xscreensaver? You must be kidding me! Yes, because I could not find a blogpost that guided me to a satisfying setup. The official documentation did not help me either. This is how I configured it to my satisfaction.

My computer resides in the living room and while I am not using it, it displays a slideshow of all my digital photos. Many times I find myself just sitting and watching long forgotten holidays or trips we made. This is powered by Xscreensaver with GlSlideshow which picks a random photo from my collection. However, the integration with Gnome is not very good. Screensaver did not detect when a movie is playing or when I am watching Youtube. The official documentation of Xscreensaver does mention this problem but the configuration described there did not remedy my problem causing many sighs from my wife when I had to stop the screensaver 10 minutes into a movie.

I do not want to repeat the internet so please look at the official documentation first. The problem I had lies in the fact that Gnome keeps a connection to dbus not letting xscreensaver-dbus to connect (What kind of bus is this? The message buses I work with are all about subscriptions by many clients to a topic, but I might be overlooking something). In order to let xscreensaver detect a movie running, we have to kick this Gnome connection out of the way. As I understand things, the official way is by disabling it:

cp etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy.desktop \
/home/"USERNAME>/.config/autostart/org.gnome.SettingsDaemon.ScreensaverProxy.desktop

add a line Hidden=true to this file and reboot. For me this did not have any effect so I took a more radical approach:

sudo mv /usr/lib/gsd-screensaver-proxy /usr/lib/gsd-screensaver-proxy.org
sudo touch /usr/lib/gsd-screensaver-proxy

This way an empty file is executed, take that you prick! This way gsd-screensaver-proxy is not capable of snatching the one and only possible dbus connection from under xscreensavers nose and xscreensaver will detect media running as it should.

A second problem I had was that sometimes white images appeared between my photos. After cranking up the frame rate this problem disappeared.

To better suit my needs I forked xscreensaver to show the (relative) path to the photo. I replaced the slashes by a newline so you get a list of folder names. Many times I was looking at a photo wondering where it was taken. As my folder structure contains hints enough to lead me into the right direction this is finally a setup that suits me. You can find my fork at: https://github.com/raginggoblin/xscreensaver