Screensaver-Any
view release on metacpan or search on metacpan
0.006 2019-09-04 Released-By: PERLANCAR; Urgency: medium
- Add function: screensaver_is_enabled.
0.005 2019-09-03 Released-By: PERLANCAR; Urgency: medium
- [bugfix] Detect xscreensaver first for cases where a user uses KDE
plasma desktop but xscreensaver (like me personally).
0.004 2018-02-28 Released-By: PERLANCAR
- Check ~/.config/kscreenlockerrc for kde.
0.003 2018-02-28 Released-By: PERLANCAR
- Add logging.
timeout: 0:05:00
modifies the line, save the file, and HUP the xscreensaver process.
* gnome
To set timeout for gnome screensaver, the program executes this
command:
gsettings set org.gnome.desktop.session idle-delay 300
* cinnamon
Not yet supported.
* KDE
To set timeout for the KDE screen locker, the program looks for this
line in "~/.kde/share/config/kscreensaverrc":
lib/Screensaver/Any.pm view on Meta::CPAN
my $which = $args{_which};
my $mins = $args{_mins};
my $screensaver = $args{screensaver} // detect_screensaver();
return [412, "Can't detect any known screensaver running"]
unless $screensaver;
if ($screensaver eq 'gnome') {
if ($which eq 'set') {
my $secs = $mins*60;
system "gsettings", "set", "org.gnome.desktop.session",
"idle-delay", $secs;
return [500, "gsettings set failed: $!"] if $?;
}
my $res = `gsettings get org.gnome.desktop.session idle-delay`;
return [500, "gsettings get failed: $!"] if $?;
$res =~ /^uint32\s+(\d+)$/
or return [500, "Can't parse gsettings get output"];
my $val = $1;
return [200, "OK", ($which eq 'set' ? undef : $val), {
'func.timeout' => $val,
'func.screensaver'=>'gnome',
}];
}
lib/Screensaver/Any.pm view on Meta::CPAN
`~/.xscreensaver`:
timeout: 0:05:00
modifies the line, save the file, and HUP the xscreensaver process.
* gnome
To set timeout for gnome screensaver, the program executes this command:
gsettings set org.gnome.desktop.session idle-delay 300
* cinnamon
Not yet supported.
* KDE
To set timeout for the KDE screen locker, the program looks for this line in
`~/.kde/share/config/kscreensaverrc`:
lib/Screensaver/Any.pm view on Meta::CPAN
summary => 'Enable screensaver that has been previously disabled',
args => {
%arg_screensaver,
},
};
sub enable_screensaver {
my %args = @_;
my $screensaver = $args{screensaver} // detect_screensaver();
if ($screensaver eq 'gnome') {
system "gsettings", "set", "org.gnome.desktop.lockdown", "disable-lock-screen", "false";
if ($?) { return [500, "Failed"] } else { return [200, "OK"] }
}
[501, "Not yet implemented except for gnome"];
}
$SPEC{disable_screensaver} = {
v => 1.1,
summary => 'Disable screensaver so screen will not go blank or lock after being idle',
args => {
%arg_screensaver,
},
};
sub disable_screensaver {
my %args = @_;
my $screensaver = $args{screensaver} // detect_screensaver();
if ($screensaver eq 'gnome') {
system "gsettings", "set", "org.gnome.desktop.lockdown", "disable-lock-screen", "true";
if ($?) { return [500, "Failed"] } else { return [200, "OK"] }
}
[501, "Not yet implemented except for gnome"];
}
$SPEC{screensaver_is_enabled} = {
v => 1.1,
summary => 'Check whether screensaver is enabled',
args => {
%arg_screensaver,
},
};
sub screensaver_is_enabled {
my %args = @_;
my $screensaver = $args{screensaver} // detect_screensaver();
if ($screensaver eq 'gnome') {
my $read = readpipe "gsettings", "get", "org.gnome.desktop.lockdown", "disable-lock-screen";
if ($?) { return [500, "Failed"] } else { return [200, "OK", $read =~ /false/ ? 1 : $read =~ /true/ ? 0 : undef] }
}
[501, "Not yet implemented except for gnome"];
}
$SPEC{activate_screensaver} = {
v => 1.1,
summary => 'Activate screensaver immediately and lock screen',
args => {
lib/Screensaver/Any.pm view on Meta::CPAN
C<~/.xscreensaver>:
timeout: 0:05:00
modifies the line, save the file, and HUP the xscreensaver process.
=item * gnome
To set timeout for gnome screensaver, the program executes this command:
gsettings set org.gnome.desktop.session idle-delay 300
=item * cinnamon
Not yet supported.
=item * KDE
To set timeout for the KDE screen locker, the program looks for this line in
C<~/.kde/share/config/kscreensaverrc>:
( run in 0.466 second using v1.01-cache-2.11-cpan-299005ec8e3 )