From 67d30e007b8f2b2ee10529bc76460adcdf7e6c10 Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 6 May 2021 15:08:15 +0100 Subject: compact the code --- lib/App/XScreenSaver/DBus/Lock.pm | 111 -------------------------------------- 1 file changed, 111 deletions(-) delete mode 100644 lib/App/XScreenSaver/DBus/Lock.pm (limited to 'lib/App/XScreenSaver/DBus/Lock.pm') diff --git a/lib/App/XScreenSaver/DBus/Lock.pm b/lib/App/XScreenSaver/DBus/Lock.pm deleted file mode 100644 index 22410f2..0000000 --- a/lib/App/XScreenSaver/DBus/Lock.pm +++ /dev/null @@ -1,111 +0,0 @@ -package App::XScreenSaver::DBus::Lock; -use v5.20; -use Moo; -use experimental qw(signatures postderef); -use curry; -use Net::DBus; -use IPC::Run; -use Log::Any; -# VERSION -# ABSTRACT: implements the logind "session lock" protocol - -=head1 SYNOPSIS - - use Net::DBus::Reactor; - use App::XScreenSaver::DBus::Lock; - my $is = App::XScreenSaver::DBus::Lock->new; - $is->start; - - Net::DBus::Reactor->new->run; - -=attr C - -the DBus system bus - -=cut - -has bus => ( is => 'lazy', builder => sub { Net::DBus->system() } ); - -=attr C - -the (e)logind DBus service - -=cut - -has logind_srv => ( - is => 'lazy', - builder => sub { shift->bus->get_service('org.freedesktop.login1') }, -); - -=attr C - -the (e)logind DBus object - -=cut - -has logind_obj => ( - is => 'lazy', - builder => sub { shift->logind_srv->get_object('/org/freedesktop/login1') }, -); - -=attr C - -the (e)logind session DBus object - -=cut - -has session_obj => ( - is => 'lazy', - builder => sub($self) { - my $session_path = $self->logind_obj->GetSessionByPID($$); - return $self->logind_srv->get_object($session_path); - }, -); - -=attr C - -a logger - -=cut - -has log => ( is => 'lazy', builder => sub { Log::Any->get_logger } ); - -=method C - -starts listening to the C and C signals from the -session, and activates the screen saver - -=cut - -sub start($self) { - $self->session_obj->connect_to_signal( - 'Lock', - $self->curry::weak::_lock, - ); - $self->session_obj->connect_to_signal( - 'Unlock', - $self->curry::weak::_unlock, - ); - return; -} - -sub _lock($self) { - $self->_xscreensaver_command('-lock'); -} - -sub _unlock($self) { - $self->_xscreensaver_command('-deactivate'); -} - -sub _xscreensaver_command($self,$command) { - my ($out, $err); - IPC::Run::run( - ['xscreensaver-command',$command], - \undef, \$out, \$err, - ); - $self->log->tracef('xscreensaver-command %s said <%s>',$command,$out); - $self->log->warnf('xscreensaver-command %s errored <%s>',$command,$err) - if $err; -} - -1; -- cgit v1.2.3