#!/bin/bash # Share a part of an unseen screen to a vncviewer at host # # On HOST, please use: # startx -- /usr/bin/vncviewer -listen 5500 -ViewOnly -Shared OUTPUT="VGA-1" HOST="192.168.6.5" ORIENTATION=" --left-of LVDS-1" # Screen Properties YEXT=1920 YOFF="+0" XEXT=1200 XOFF="+600" REFRESH=60.00 # Generate a valid modeline modeline=$(cvt $YEXT $XEXT $REFRESH | grep "Modeline") MODENAME=$(echo $modeline | sed -e "s#Modeline ##" | awk '{print $1}' | sed -e 's#"##g') MODELINE=$(echo $modeline | cut -d ' ' -f3- ) ################################################################## # All of the Voodoo ################################################################## # Add modeline xrandr --newmode $MODENAME $MODELINE # Add modeline to unused output xrandr --addmode $OUTPUT $MODENAME # set mode and orientation for output xrandr --output $OUTPUT --mode $MODENAME $ORIENTATION # Start vncserver, push to host x11vnc -cursor -clip ${MODENAME}${XOFF}${YOFF} -connect_or_exit $HOST # Disable output xrandr --output $OUTPUT --auto # remove from output xrandr --delmode $OUTPUT $MODENAME # remove from server xrandr --rmmode $MODENAME