NAME

App::XScreenSaver::DBus::Saver - implements the "idle inhibition" protocol

VERSION

version 1.0.0

SYNOPSIS

use Net::DBus::Reactor;
use App::XScreenSaver::DBus::InhibitSleep;

my $reactor = Net::DBus::Reactor->new;
my $s = App::XScreenSaver::DBus::Saver->new(reactor => $reactor);
$s->start;

$reactor->run;

ATTRIBUTES

reactor

the event loop

bus

the DBus session bus

dbus_srv

the DBus manager DBus service

dbus_obj

the DBus manager DBus object

service

the DBus service we export

paths

the paths at which we export our DBus object

there's two of them because different applications expect this object at different paths

log

a logger

METHODS

start

Exports our object to the session bus, and starts listening for NameOwnerChanged events.

Those events are emitted when a client attaches or detaches from the bus. A client may die before releasing the idle inhibition, so we want to be notified when that happens, and release that inhibition.

AUTHOR

Gianni Ceccarelli <dakkar@thenautilus.net>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2021 by Gianni Ceccarelli <dakkar@thenautilus.net>.

This is free software, licensed under:

The GNU Affero General Public License, Version 3, November 2007