Warning, /plasma/kscreenlocker/DESIGN is written in an unsupported language. File is not indexed.

0001 
0002 The screenlocker is statically built into ksmserver, it gets instantiated by the main class KSldApp.
0003 It provides 3 main things:
0004 * Shows a fullscreen window (LockWindow class), that spawns into all screens, eats the input events and is black to hide everything.
0005 * Provides the usual org.freedesktop.ScreenSaver interface
0006 * starts the process that will actually show the unlock screen
0007 
0008 Security considerations.
0009 * greeter windows are marked with the _KDE_SCREEN_LOCKER atom, no windows of other processes can go over them
0010 
0011 * the screen locker is managed by ksmserver: in case of crash of a greeter or an X screen saver, the global lock window that spawns between all monitors will still be there. In case of crash of ksmserver, being the session manager, the whole session will be brought down.
0012 
0013 KSldApp may launch one of two possible unlock screen binaries, decided by the PlasmaEnable bool key in kscreensaverrc:
0014 
0015 1) Simple
0016 The one in the greeter subdirectory, built in the kscreenlocker_greet binary.
0017 It uses a series of QML files organized in a Plasma Package to display the actual unlocker ui, one for each screen in case of multimonitor.
0018 This greeter can optionally support legacy X screensavers, for doing so creates another fullscreen window per screen on top of the greeter one, and xembends a screensaver window.
0019 The X screensaver goes away after mouse move and gets back after a minute (or user pressing esc) 
0020 
0021 2) Plasma based
0022 The source lives in kde-workspace/plasma/screensaver/shell/ and the binary is plasma-overlay.
0023 It instances a Plasma scene, a View and a Containment for each screen in case of multimonitor.
0024 Uses the same QML package to display the unlocker as kscreenlocker_greet.
0025 Does not support X screensavers.