diff options
author | Simon Rettberg | 2018-09-06 14:42:33 +0200 |
---|---|---|
committer | Simon Rettberg | 2018-09-06 14:42:33 +0200 |
commit | 266cbab12d874e460658d6f327ef8f7eb41ac491 (patch) | |
tree | e91ba16e675b017c4526bae30abefd64a93cc69b /core/modules/xscreensaver | |
parent | [beamergui] Add PVS2 plugin (diff) | |
download | mltk-266cbab12d874e460658d6f327ef8f7eb41ac491.tar.gz mltk-266cbab12d874e460658d6f327ef8f7eb41ac491.tar.xz mltk-266cbab12d874e460658d6f327ef8f7eb41ac491.zip |
[xscreensaver] Move pvs2 plugin files to this module
Diffstat (limited to 'core/modules/xscreensaver')
3 files changed, 59 insertions, 0 deletions
diff --git a/core/modules/xscreensaver/data/opt/openslx/pvs2/addons/50-lock-desktop b/core/modules/xscreensaver/data/opt/openslx/pvs2/addons/50-lock-desktop new file mode 100644 index 00000000..bde0f2e7 --- /dev/null +++ b/core/modules/xscreensaver/data/opt/openslx/pvs2/addons/50-lock-desktop @@ -0,0 +1,7 @@ +[General] +type=button +exec=/opt/openslx/pvs2/lockDesktop.sh +icon=/opt/openslx/pvs2/lock.svg +caption=Sperren +tooltip=Die Sitzung sperren. Entsperren nur mit Passwort des angemeldeten Benutzers möglich. +async=true diff --git a/core/modules/xscreensaver/data/opt/openslx/pvs2/lock.svg b/core/modules/xscreensaver/data/opt/openslx/pvs2/lock.svg new file mode 100644 index 00000000..09c45511 --- /dev/null +++ b/core/modules/xscreensaver/data/opt/openslx/pvs2/lock.svg @@ -0,0 +1,27 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="1280.000000pt" height="640.000000pt" viewBox="0 0 1280.000000 640.000000" + preserveAspectRatio="xMidYMid meet"> +<g transform="translate(0.000000,640.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M2712 5818 c-590 -28 -1160 -244 -1632 -618 -207 -164 -444 -420 +-587 -635 -264 -394 -400 -760 -475 -1270 -17 -117 -17 -538 0 -665 88 -656 +347 -1195 807 -1678 596 -625 1314 -941 2140 -942 891 0 1665 400 2272 1175 +72 92 224 313 264 385 12 22 27 40 31 40 5 0 89 -20 186 -44 410 -103 881 +-208 1137 -255 181 -33 266 -42 348 -39 l79 3 154 319 c85 176 156 321 159 +324 2 2 59 -8 127 -23 68 -14 128 -27 135 -28 6 -1 147 155 313 346 278 321 +304 348 328 343 15 -3 142 -24 282 -47 243 -40 258 -43 315 -78 l60 -37 110 5 +111 6 129 96 c72 52 135 98 141 101 5 4 115 -4 243 -17 l233 -24 74 -68 c40 +-37 136 -127 211 -199 l138 -131 255 58 c219 50 689 147 1378 282 95 19 174 +36 176 38 2 2 103 138 225 302 l221 298 -201 419 c-182 379 -204 420 -225 420 +-19 0 -29 10 -45 43 l-21 44 -187 6 c-102 4 -576 7 -1052 7 -476 0 -1568 3 +-2427 7 l-1562 6 1 151 c0 156 -10 235 -35 285 -22 42 -104 111 -135 112 -152 +9 -499 -99 -1116 -346 -221 -88 -292 -113 -298 -103 -4 7 -41 71 -83 141 -292 +496 -816 978 -1322 1214 -443 208 -887 295 -1380 271z m-548 -2093 c156 -32 +244 -87 347 -214 71 -87 130 -200 161 -308 19 -66 23 -102 23 -233 0 -181 -17 +-259 -88 -394 -257 -496 -885 -596 -1276 -205 -97 98 -158 263 -168 454 -12 +239 60 453 214 632 113 133 307 245 473 273 78 13 238 11 314 -5z"/> +</g> +</svg> diff --git a/core/modules/xscreensaver/data/opt/openslx/pvs2/lockDesktop.sh b/core/modules/xscreensaver/data/opt/openslx/pvs2/lockDesktop.sh new file mode 100755 index 00000000..2796de8f --- /dev/null +++ b/core/modules/xscreensaver/data/opt/openslx/pvs2/lockDesktop.sh @@ -0,0 +1,25 @@ +#!/bin/ash + +# Problem: While any application (e.g. VMware) is holding the mouse and +# keyboard grab, xscreensaver couldn't grab them, so it will ignore the +# locking request. Without the keyboard grab, all input would still go +# to the vmware window below the black screen, which is, you know, bad, +# since you cannot enter your password to unlock the workstation again. + +# So we minimize vmware, lock the screen, and then restore vmware. +# TODO: Add other virtualizers (vbox, kvm) later if needed. +WINDOWS=$(xdotool search --onlyvisible --class vmplayer) +for window in $WINDOWS; do + xdotool windowminimize $window +done +# move mouse pointer to the center of the screen to avoid some problems with ghost clicks +xdotool mousemove --sync --polar 0 0 + +# now actually lock +xscreensaver-command --lock + +# above lock call is blocking, so now xscreensaver should be active - let's restore vmware +for window in $WINDOWS; do + xdotool windowmap $window +done + |