aboutsummaryrefslogtreecommitdiff
path: root/kvmx
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2018-03-29 17:50:04 -0300
committerSilvio Rhatto <rhatto@riseup.net>2018-03-29 17:50:04 -0300
commit6d10ed52ca130aaabcb0ed27e198dc5d66426061 (patch)
treef2398c51d6a9b9a4df0164643460e4ddd8738755 /kvmx
parent1f01fb02bcf6d15d153a1c7ae5964a02551a14dc (diff)
downloadkvmx-6d10ed52ca130aaabcb0ed27e198dc5d66426061.tar.gz
kvmx-6d10ed52ca130aaabcb0ed27e198dc5d66426061.tar.bz2
Adds xrandr action
Diffstat (limited to 'kvmx')
-rwxr-xr-xkvmx36
1 files changed, 36 insertions, 0 deletions
diff --git a/kvmx b/kvmx
index c8d315b..139d530 100755
--- a/kvmx
+++ b/kvmx
@@ -500,6 +500,12 @@ function kvmx_up {
done
IFS="$old_ifs"
fi
+
+ if [ "$xrandr" == "1" ]; then
+ echo "Waiting for X11 to come up so we can set machine resolution..."
+ sleep 8
+ kvmx_xrandr
+ fi
fi
if [ "$run_xpra" == "1" ]; then
@@ -1692,6 +1698,36 @@ function kvmx_shell {
done
}
+# Xrandr integration
+function kvmx_xrandr {
+ if ! kvmx_running; then
+ echo "$BASENAME: guest $VM is not running"
+ exit 1
+ fi
+
+ local mode="`xrandr | grep '*+' | awk '{ print $1 }' | tr 'x' ' '`"
+
+ if [ ! -z "$resolution_y_offset" ]; then
+ local x="`echo $mode | awk '{ print $1 }'`"
+ local y="`echo $mode | awk '{ print $2 }'`"
+
+ mode="$x $(($y $resolution_y_offset))"
+ fi
+
+ if [ -z "$xrandr_device" ]; then
+ xrandr_device="Virtual-0"
+ fi
+
+ local line="`cvt $mode | tail -1 | sed -e 's/^Modeline//'`"
+ local name="`echo $line | awk '{ print $1 }'`"
+
+ echo "Setting Modeline $line..."
+
+ echo DISPLAY=:0 xrandr --newmode $line | kvmx_ssh
+ echo DISPLAY=:0 xrandr --addmode $xrandr_device $name | kvmx_ssh
+ echo DISPLAY=:0 xrandr --output $xrandr_device --mode $name | kvmx_ssh
+}
+
# Dispatch
if type kvmx_$ACTION 2> /dev/null | grep -q "kvmx_$ACTION ()"; then
__kvmx_initialize $*