diff --git a/ksmserver/screenlocker/CMakeLists.txt b/ksmserver/screenlocker/CMakeLists.txt index 692e35f80..24babbf7d 100644 --- a/ksmserver/screenlocker/CMakeLists.txt +++ b/ksmserver/screenlocker/CMakeLists.txt @@ -76,5 +76,11 @@ install(FILES ${screensaver_dbusXML} DESTINATION ${DBUS_INTERFACES_INSTALL_DIR} RENAME kf5_org.freedesktop.ScreenSaver.xml) + +install(FILES updaters/kscreenlocker.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update) +install(PROGRAMS updaters/ksreenlocker_5_3_separate_autologin.pl + DESTINATION ${DATA_INSTALL_DIR}/kconf_update) + + add_subdirectory(autotests) add_subdirectory(tests) diff --git a/ksmserver/screenlocker/updaters/kscreenlocker.upd b/ksmserver/screenlocker/updaters/kscreenlocker.upd new file mode 100644 index 000000000..06ac7fb0f --- /dev/null +++ b/ksmserver/screenlocker/updaters/kscreenlocker.upd @@ -0,0 +1,5 @@ +Version=5 +Id=0.1-autolock +File=kscreenlockerrc +Group=Daemon +Script=ksreenlocker_5_3_separate_autologin.pl,perl \ No newline at end of file diff --git a/ksmserver/screenlocker/updaters/ksreenlocker_5_3_separate_autologin.pl b/ksmserver/screenlocker/updaters/ksreenlocker_5_3_separate_autologin.pl new file mode 100755 index 000000000..910e18f7a --- /dev/null +++ b/ksmserver/screenlocker/updaters/ksreenlocker_5_3_separate_autologin.pl @@ -0,0 +1,37 @@ +#! /usr/bin/perl + + +use strict; + +my $key; +my $value; + +my $alreadyHasAutolockKey = 0; + +while (<>) +{ + chomp; + if ( /^\[/ ) + { + next; + } + ($key, $value) = ($_ =~ /([^=]+)=[ \t]*([^\n]+)/); + + if ($key eq "Autolock") + { + $alreadyHasAutolockKey = 1; + } + + if ($key eq "Timeout" && $alreadyHasAutolockKey == 0) + { + if ($value eq "0") + { + print("Autolock=false\n"); + } + else + { + print("Autolock=true\n"); + } + } + print "$_\n" +}