#! /usr/bin/env bash # Start/resume VM if needed and launch viewer #?? man xfreerdp state="$(virsh domstate myndows)" if [[ "$state" == 'paused' ]]; then virsh resume myndows notify-send '> vm' 'Resumed' --urgency low elif [[ "$state" == 'shut off' ]]; then virsh start myndows notify-send '> vm' 'Starting...' --urgency low # Wait for guest to become available #!! Requires ICMP firewall access on guest while ! ping -c 1 myndows; do sleep 1 done else notify-send '> vm' 'Online' --urgency low fi flags=( '/cert:ignore' '/v:myndows' '/u:Myned' '/p:' '/kbd:remap:015b=0154' # VK_LWIN=<00> #?? xfreerdp /list:kbd-scancode '/dynamic-resolution' '/sound' '+auto-reconnect' '+clipboard' '+menu-anims' '-grab-keyboard' '-grab-mouse' ) if [[ "${1-}" == '-s' ]]; then SDL_VIDEODRIVER=wayland sdl-freerdp "${flags[@]}" "${@:2}" virsh suspend myndows notify-send '> vm' 'Paused' --urgency low elif [[ "${1-}" == '-w' ]]; then wlfreerdp "${flags[@]}" "${@:2}" virsh suspend myndows notify-send '> vm' 'Paused' --urgency low elif [[ "${1-}" == '-x' ]]; then xfreerdp "${flags[@]}" "${@:2}" virsh suspend myndows notify-send '> vm' 'Paused' --urgency low elif [[ "${1-}" == '-e' ]]; then "$@" virsh suspend myndows notify-send '> vm' 'Paused' --urgency low else "$@" fi