summaryrefslogtreecommitdiffstats
path: root/core/modules/vbox-src
diff options
context:
space:
mode:
authorSimon Rettberg2023-07-21 17:32:56 +0200
committerSimon Rettberg2023-07-21 17:32:56 +0200
commitad20a5351e64efbcf2714a0f5dc2d0b6da6502d9 (patch)
tree3500c815966a579cb680230d60469e820e41a664 /core/modules/vbox-src
parent[qemu] Add workaround for weird qemu crash with edk2 on Alderlake (diff)
downloadmltk-ad20a5351e64efbcf2714a0f5dc2d0b6da6502d9.tar.gz
mltk-ad20a5351e64efbcf2714a0f5dc2d0b6da6502d9.tar.xz
mltk-ad20a5351e64efbcf2714a0f5dc2d0b6da6502d9.zip
[vbox-src] Add xscreensaver ungrab hook for VirtualBox
Diffstat (limited to 'core/modules/vbox-src')
-rwxr-xr-xcore/modules/vbox-src/data/opt/openslx/xscreensaver/ungrab.d/vbox30
1 files changed, 30 insertions, 0 deletions
diff --git a/core/modules/vbox-src/data/opt/openslx/xscreensaver/ungrab.d/vbox b/core/modules/vbox-src/data/opt/openslx/xscreensaver/ungrab.d/vbox
new file mode 100755
index 00000000..2d9f3320
--- /dev/null
+++ b/core/modules/vbox-src/data/opt/openslx/xscreensaver/ungrab.d/vbox
@@ -0,0 +1,30 @@
+#!/bin/ash
+
+wfile="/run/user/$(id -u)/vmwins"
+
+if [ "$1" = "pre" ]; then
+ # Find all VirtualBox windows currently visible
+ WINDOWS="$( xdotool search --onlyvisible --class VirtualBoxVM )"
+ [ -z "$WINDOWS" ] && exit 0
+ for window in $WINDOWS; do
+ # minimize doesn't work for virtualbox...
+ xdotool windowunmap --sync $window
+ echo "$window" >> "$wfile" # Remember for later
+ done
+ # move mouse pointer around to avoid some problems with ghost clicks
+ xdotool mousemove --sync 0 0
+ usleep 10000
+ xdotool mousemove --polar 0 0
+ usleep 10000
+fi
+
+if [ "$1" = "post" ]; then
+ # let's restore the windows
+ WINDOWS="$( sort -u "$wfile" )"
+ for window in $WINDOWS; do
+ xdotool windowmap $window
+ done
+ rm -f -- "$wfile"
+fi
+
+exit 0