From 6d10ed52ca130aaabcb0ed27e198dc5d66426061 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 29 Mar 2018 17:50:04 -0300 Subject: Adds xrandr action --- kvmx | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'kvmx') 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 $* -- cgit v1.2.3