diff --git a/bin/winapps b/bin/winapps index 2cfe6c4..f47a887 100755 --- a/bin/winapps +++ b/bin/winapps @@ -4,6 +4,7 @@ if [ ! -f "$HOME/.config/winapps/winapps.conf" ] && [ ! -f "$HOME/.winapps" ]; t echo "You need to create a ~/.config/winapps/winapps.conf configuration. Exiting..." exit fi + DIR="$(dirname "$(readlink -f "$0")")" RUN="$(date)-$RANDOM" @@ -72,7 +73,6 @@ if [ -z "$RDP_IP" ]; then fi RDP_IP=$(virsh net-dhcp-leases default | grep RDPWindows | awk '{print $5}') RDP_IP=${RDP_IP%%\/*} - fi dprint "1:$1" @@ -86,18 +86,23 @@ if [ "$MULTIMON" = "true" ]; then MULTI_FLAG="/multimon" fi +# Append additional flags or parameters to FreeRDP if [[ -n "$RDP_FLAGS" ]]; then FREERDP_COMMAND="$FREERDP_COMMAND $RDP_FLAGS" fi if [ "$1" = "windows" ]; then - $FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +dynamic-resolution +auto-reconnect +home-drive /wm-class:"Microsoft Windows" /v:"$RDP_IP" 1>/dev/null 2>&1 & + dprint "WINDOWS" + COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+dynamic-resolution" "+auto-reconnect" "+home-drive" "/wm-class:\"Microsoft Windows\"" "/v:${RDP_IP}") + "${COMMAND[@]}" 1>/dev/null 2>&1 & elif [ "$1" = "check" ]; then dprint "CHECK" - $FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /app:program:"explorer.exe" /v:"$RDP_IP" + COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+home-drive" "-wallpaper" "+dynamic-resolution" "${MULTI_FLAG}" "/app:program:explorer.exe" "/v:${RDP_IP}") + "${COMMAND[@]}" elif [ "$1" = "manual" ]; then - dprint "MANUAL:$2" - $FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +home-drive +dynamic-resolution $MULTI_FLAG /app:program:"$2" /v:"$RDP_IP" 1>/dev/null 2>&1 & + dprint "MANUAL:${2}" + COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+home-drive" "+dynamic-resolution" "${MULTI_FLAG}" "/app:program:${2}" "/v:${RDP_IP}") + "${COMMAND[@]}" 1>/dev/null 2>&1 & elif [ "$1" != "install" ]; then dprint "DIR:${DIR}" if [ -e "${DIR}/../apps/$1/info" ]; then @@ -121,9 +126,11 @@ elif [ "$1" != "install" ]; then FILE=$(echo "$2" | sed 's|'"$HOME"'|\\\\tsclient\\home|;s|/|\\|g;s|\\|\\\\|g') dprint "FILE:${FILE}" # shellcheck disable=SC2140 - $FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /wm-class:"$FULL_NAME" /app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME",cmd:"\"$FILE\"" /v:"$RDP_IP" 1>/dev/null 2>&1 & + COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+clipboard" "+home-drive" "-wallpaper" "+dynamic-resolution" "${MULTI_FLAG}" "/wm-class:${FULL_NAME}" "/app:program:${WIN_EXECUTABLE},icon:${ICON},name:${FULL_NAME},cmd:\"${FILE}\"" "/v:${RDP_IP}") + "${COMMAND[@]}" 1>/dev/null 2>&1 & else - $FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /wm-class:"$FULL_NAME" /app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME" /v:"$RDP_IP" 1>/dev/null 2>&1 & + COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+clipboard" "+home-drive" "-wallpaper" "+dynamic-resolution" "${MULTI_FLAG}" "/wm-class:${FULL_NAME}" "/app:program:${WIN_EXECUTABLE},icon:${ICON},name:${FULL_NAME}" "/v:${RDP_IP}") + "${COMMAND[@]}" 1>/dev/null 2>&1 & fi fi