vnc/acquirevnc

27 lines
717 B
Bash
Executable File

#!/usr/bin/env bash
USER="$(whoami)"
# get new display
TAKEN_PORTS=( $(cat /var/lib/vnc/* | sort -n) )
[ -f "/var/lib/vnc/${USER}" ] && TAKEN_PORTS=( "${TAKEN_PORTS[@]/$(<"/var/lib/vnc/${USER}")}" )
DISPLAY=0; for TAKEN_PORT in ${TAKEN_PORTS[@]}; do
if [ "$TAKEN_PORT" -le "$DISPLAY" ];then
DISPLAY=$((DISPLAY + 1))
fi
done
unset TAKEN_PORTS TAKEN_PORT
# add user file
OLD_UMASK="$(umask)"
umask 0022
echo "$DISPLAY" > "/var/lib/vnc/${USER}"
umask $OLD_UMASK
PORT=$((DISPLAY + 5900))
unset DISPLAY OLD_UMASK
/usr/local/bin/startvnc
echo
echo "Your port number is ${PORT}; please note it down."
echo "You might like to see https://wiki.thunix.net/wiki/vnc for further information."