#!/usr/bin/env perl use strict; use warnings; use Log::Any::Adapter Stdout => ( log_level => 'debug' ); use App::XScreenSaver::DBus; # VERSION # PODNAME: xscreensaver-dbus # ABSTRACT: tie xscreensaver into dbus $|++; App::XScreenSaver::DBus->new->run; =head1 SYNOPSIS xscreensaver & xscreensaver-dbus > ~/xscreensaver-dbus.log & =head1 DESCRIPTION This program will ensure that xscreensaver locks the screen before your laptop goes to sleep, and will prevent the screen saver from running while video is playing. It does so by implementing L and using L. =head1 WHY? If you use xscreensaver, you may have noticed that it doesn't integrate very well with all the new & fancy desktop features. jwz has resisted adding this kind of integration to the base program, saying (sensibly) that they would bloat the code and introduce potential security holes. From version 5.43, xscreensaver includes F, a stripped-down version of L, which handles the logind interaction. Both of those versions link to F, which you may not have if you use elogind instead of the full systemd. So I wrote this. =head1 REFERENCES =for :list * Martin Lucina F https://github.com/mato/xscreensaver-systemd * the Debian bug where the above program is first mentioned https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781961 * "Is there a decent way to inhibit screensavers in linux?" on StackOverflow https://stackoverflow.com/questions/460140/is-there-a-decent-way-to-inhibit-screensavers-in-linux * the systemd "Inhibitor Locks" documentation https://www.freedesktop.org/wiki/Software/systemd/inhibit/ * the "idle inhibition" spec https://people.freedesktop.org/~hadess/idle-inhibition-spec/index.html