Review Request: Use a qml based screen locker in place of the screensaver

Marco Martin notmart at
Wed Sep 19 17:59:43 BST 2012

> On Sept. 16, 2012, 2 a.m., Michael Pyne wrote:
> > It took me awhile to get to do it properly but I've compiled the patched kde-workspace and I have to say it's really impressive! No matter what I do I can't confuse the screen locker into showing even a flash of the desktop underneath (even when using the X and KDE screensavers).
> > 
> > The only issues I've noticed are the kind of polish things. I would highly recommend ensuring that any old keyboard shortcut for screen locking continues to work after this patch is applied. Ctrl-Alt-L doesn't work for me anymore and I'll poke around to see if the QAction has been renamed or something so that I can just re-change it back, but it would be best to be seamless.
> > 
> > Also, when using lock screen with a screensaver, the screen locker doesn't show the text labels (e.g. user name and "Password:" labels) until you click into the password line edit. (I'm using Caledonia Plasma theme right now, I'll try with an alternate one, just wanted to let you know). In addition it's not possible to type the password in without clicking into the line edit. I think the issue is as simple as focus not being applied to the line edit by default in this mode.
> > 
> > Overall it's good stuff from a "user" perspective (I haven't looked at the code at all unfortunately), just need to make sure it's possible to lock screen and unlock without using the mouse. :)
> Martin Gräßlin wrote:
>     > The only issues I've noticed are the kind of polish things. I would highly recommend ensuring that any old keyboard shortcut for screen locking continues to work after this patch is applied. Ctrl-Alt-L doesn't work for me anymore and I'll poke around to see if the QAction has been renamed or something so that I can just re-change it back, but it would be best to be seamless.
>     The problem is the way global shortcuts are handled. The shortcut is registered on KRunner and needs to be moved to the new framework. Probably the best solution is to keep the shortcut in KRunner and invoke the new locker through D-Bus. Of course for new installations the shortcut needs to be moved to the new architecture.
> Marco Martin wrote:
>     could a kconfig update script do the trick?
> Martin Gräßlin wrote:
>     doubt it, have a look at plasma/desktop/shell/plasmaapp.cpp line 134 ff

i tried with several starting states of the global shortcuts config file, but here seems the kconf update script works fine.
ctrl+alt+l plus the logout shortcuts gets correctly removed from krunner and put into ksmserver and they work immediately

- Marco

This is an automatically generated e-mail. To reply, visit:

On Sept. 19, 2012, 4:57 p.m., Marco Martin wrote:
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> -----------------------------------------------------------
> (Updated Sept. 19, 2012, 4:57 p.m.)
> Review request for KDE Runtime and Martin Gräßlin.
> Description
> -------
> this is the finalization of the old "screenlocker" branch in workspace:
> the screen saver goes away (discussed at the time, about one year ago) and the screen locker gets managed by ksmserver, with a greeter that has the ui dine in qml.
> The same qml ui gets loaded by the plasma based greeter when the "allow widgets on screen locker" is enabled.
> the screensaver kcm is now called "Screen locker" and is way simpler, the screen saver chooser is gone from it.
> Diffs
> -----
>   kcontrol/screensaver/CMakeLists.txt e4dcc3a 
>   kcontrol/screensaver/screensaver.ui 0ad5cd8 
>   kcontrol/screensaver/scrnsave.h 7c8deba 
>   kcontrol/screensaver/scrnsave.cpp c0507d4 
>   krunner/CMakeLists.txt 21eac6f 
>   krunner/dbus/org.freedesktop.ScreenSaver.xml 5efd943 
>   krunner/dbus/org.kde.screensaver.xml e700b88 
>   krunner/kcfg/kscreensaversettings.kcfg c8f76f3 
>   krunner/kcfg/kscreensaversettings.kcfgc af9133d 
>   krunner/krunnerapp.h 040198d 
>   krunner/krunnerapp.cpp eea6220 
>   krunner/lock/CMakeLists.txt cf9a67e 
>   krunner/lock/autologout.h 0c444050 
>   krunner/lock/ c86e29a 
>   krunner/lock/config-krunner-lock.h.cmake 7bfdfd6 
>   krunner/lock/kscreenlocker.notifyrc b3e87c8 
>   krunner/lock/lockdlg.h f25e55f 
>   krunner/lock/ 14a9b34 
>   krunner/lock/lockprocess.h 8b6d9a8 
>   krunner/lock/ 65c7f1d 
>   krunner/lock/main.h 8a60353 
>   krunner/lock/ 7b41024 
>   krunner/main.cpp 84a547b 
>   krunner/screensaver/saverengine.h 3384d4a 
>   krunner/screensaver/saverengine.cpp 4d90faa 
>   krunner/screensaver/xautolock.h 3db3233 
>   krunner/screensaver/xautolock.cpp 7124215 
>   krunner/screensaver/xautolock_c.h 3b82f5c 
>   krunner/screensaver/xautolock_diy.c b9df2f8 
>   krunner/screensaver/xautolock_engine.c d6d0cf5 
>   ksmserver/CMakeLists.txt 5f0fd34 
>   ksmserver/config-ksmserver.h.cmake 933da35 
>   ksmserver/ksmserver_shortcuts.upd 04b4118 
>   ksmserver/main.cpp 430a61a 
>   ksmserver/screenlocker/CMakeLists.txt PRE-CREATION 
>   ksmserver/screenlocker/DESIGN PRE-CREATION 
>   ksmserver/screenlocker/ PRE-CREATION 
>   ksmserver/screenlocker/autologout.h PRE-CREATION 
>   ksmserver/screenlocker/autologout.cpp PRE-CREATION 
>   ksmserver/screenlocker/data/CMakeLists.txt PRE-CREATION 
>   ksmserver/screenlocker/data/force_krunner_lock_shortcut_unreg.cpp PRE-CREATION 
>   ksmserver/screenlocker/data/kscreenlocker_locksession-shortcut.upd PRE-CREATION 
>   ksmserver/screenlocker/dbus/org.freedesktop.ScreenSaver.xml PRE-CREATION 
>   ksmserver/screenlocker/dbus/org.kde.screensaver.xml PRE-CREATION 
>   ksmserver/screenlocker/greeter/CMakeLists.txt PRE-CREATION 
>   ksmserver/screenlocker/greeter/ PRE-CREATION 
>   ksmserver/screenlocker/greeter/greeter.h PRE-CREATION 
>   ksmserver/screenlocker/greeter/greeter.cpp PRE-CREATION 
>   ksmserver/screenlocker/greeter/greeterapp.h PRE-CREATION 
>   ksmserver/screenlocker/greeter/greeterapp.cpp PRE-CREATION 
>   ksmserver/screenlocker/greeter/main.cpp PRE-CREATION 
>   ksmserver/screenlocker/greeter/screensaverwindow.h PRE-CREATION 
>   ksmserver/screenlocker/greeter/screensaverwindow.cpp PRE-CREATION 
>   ksmserver/screenlocker/greeter/sessions.h PRE-CREATION 
>   ksmserver/screenlocker/greeter/sessions.cpp PRE-CREATION 
>   ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/contents/ui/Greeter.qml PRE-CREATION 
>   ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/contents/ui/SessionSwitching.qml PRE-CREATION 
>   ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/contents/ui/main.qml PRE-CREATION 
>   ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/metadata.desktop PRE-CREATION 
>   ksmserver/screenlocker/interface.h PRE-CREATION 
>   ksmserver/screenlocker/interface.cpp PRE-CREATION 
>   ksmserver/screenlocker/kcfg/kscreensaversettings.kcfg PRE-CREATION 
>   ksmserver/screenlocker/kcfg/kscreensaversettings.kcfgc PRE-CREATION 
>   ksmserver/screenlocker/kscreenlocker.notifyrc PRE-CREATION 
>   ksmserver/screenlocker/ksldapp.h PRE-CREATION 
>   ksmserver/screenlocker/ksldapp.cpp PRE-CREATION 
>   ksmserver/screenlocker/lockwindow.h PRE-CREATION 
>   ksmserver/screenlocker/lockwindow.cpp PRE-CREATION 
>   ksmserver/server.h 8e54221 
>   ksmserver/server.cpp 7073fc9 
>   ksmserver/shutdown.cpp 6f298ec 
>   libs/kdm/kgreet_classic.cpp 691d238 
>   plasma/desktop/applets/kickoff/CMakeLists.txt 4b0d32a 
>   plasma/generic/containmentactions/contextmenu/CMakeLists.txt 5433294 
>   plasma/generic/runners/sessions/CMakeLists.txt 1b8292c 
>   plasma/screensaver/shell/BackgroundDialog.ui d6d2df7 
>   plasma/screensaver/shell/CMakeLists.txt 8ea4504 
>   plasma/screensaver/shell/backgrounddialog.cpp 1357a50 
>   plasma/screensaver/shell/main.cpp a1ae939 
>   plasma/screensaver/shell/plasmaapp.h 33137c2 
>   plasma/screensaver/shell/plasmaapp.cpp ade6c68 
>   plasma/screensaver/shell/savercorona.h 794e50c 
>   plasma/screensaver/shell/savercorona.cpp 6f83859 
>   plasma/screensaver/shell/saverview.h 8500e47 
>   plasma/screensaver/shell/saverview.cpp b6a709e 
>   powerdevil/daemon/CMakeLists.txt 35a4fd4 
>   startkde.cmake 9adc6f2 
> Diff:
> Testing
> -------
> Thanks,
> Marco Martin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the kde-core-devel mailing list