diff options
Diffstat (limited to 'lib/App/XScreenSaver/DBus.pm')
-rw-r--r-- | lib/App/XScreenSaver/DBus.pm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/App/XScreenSaver/DBus.pm b/lib/App/XScreenSaver/DBus.pm new file mode 100644 index 0000000..10c87fd --- /dev/null +++ b/lib/App/XScreenSaver/DBus.pm @@ -0,0 +1,33 @@ +package App::XScreenSaver::DBus; +use Moo; +use experimental 'signatures'; +use Net::DBus::Reactor; +use App::XScreenSaver::DBus::InhibitSleep; +use App::XScreenSaver::DBus::Saver; + +has reactor => ( + is => 'lazy', + builder => sub { Net::DBus::Reactor->main() }, +); + +has inhibit_sleep => ( + is => 'lazy', + builder => sub { App::XScreenSaver::DBus::InhibitSleep->new() }, +); + +has saver => ( + is => 'lazy', + builder => sub($self) { + App::XScreenSaver::DBus::Saver->new(reactor => $self->reactor); + }, +); + +has log => ( is => 'lazy', builder => sub { Log::Any->get_logger } ); + +sub run($self) { + $self->inhibit_sleep->start(); + $self->saver->start(); + $self->reactor->run; +} + +1; |