freedp z GUI

Xfreerdp jest obsługiwane z wiersza poleceń, można wygodnie używać go w skryptach. Niestety dla ludzi nietechnicznych jest to uciążliwe a niekiedy stanowi wręcz barierę nie do przeskoczenia. Poniżej przedstawiam skrypt, który wykorzystuje zenity do wyświetlenia okienek z pytaniami do użytkownika.
W tym przypadku będziemy pytać o:

  • login
  • hasło
  • domenę
  • adres hosta
#!/bin/bash
xfreerdp /kbd:0x00000415 /cert-ignore \
/size:2560x1440 /scale:140 /f \
/u:$(zenity --entry --title="Użytkownik" --text="Podaj nazwę użytkownika") \
/p:$(zenity --entry --title="Hasło" --text="Podaj hasło" --hide-text) \
/d:$(zenity --entry --title="Domena" --text="Podaj nazwę domeny") \
/v:$(zenity --entry --title="Adres hosta" --text="Podaj adres hosta")

Powyższy skrpyt ustawia dodatkowo klawiaturę na układ "polska programisty" oraz ustawia rodzielczość na pasującą do matrycy 1440p klienta włączają skalowanie pozwalając na wygodną pracę na laptopie.

Poniżej skrypt wyświetlający pojedyncze okno i dający szersze opcje konfiguracji połączenia:

#!/bin/bash

OUTPUT=$(zenity --forms --title="Pulpit zdalny" \
    --text="Podaj informacje dotyczące połączenia ze zdalnym pulpitem" \
    --separator="," \
    --add-entry="Host" \
    --add-entry="Port (domyślnie: 3389)" \
    --add-entry="Domena (opcjonalnie)" \
    --add-entry="Użytkownik" \
    --add-password="Hasło" \
    --add-combo="Rozdzielczość (domyslnie 1440p)" --combo-values="1920x1080|2560x1440|1600x1050|1024x768|1600x900" \
    --add-combo="Skala (domyślnie 140)" --combo-values="100|140") \
OUTPUT_RESULTS=$?
if ((OUTPUT_RESULTS != 0)); then
    echo "something went wrong"
    exit 1
fi

Blank=""
Server=$(awk -F, '{print $1}' <<<$OUTPUT)
Port=$(awk -F, '{print $2}' <<<$OUTPUT)
Domain=$(awk -F, '{print $3}' <<<$OUTPUT)
Username=$(awk -F, '{print $4}' <<<$OUTPUT)
Password=$(awk -F, '{print $5}' <<<$OUTPUT)
Resolution=$(awk -F, '{print $6}' <<<$OUTPUT)
Scale=$(awk -F, '{print $7}' <<<$OUTPUT)

if [$Port -eq $Blank]
then
    Port="3389"
else
    Port="$Port"
fi

if [$Resolution -eq $Blank]
then
    Resolution="2560x1440"
else
    Resolution="$Resolution"
fi

if [$Scale -eq $Blank]
then
    Scale="140"
else
    Scale="$Scale"
fi

#zenity --info --title="Information Return" --text="$Server $Port $Domain $Username $Password $App"
xfreerdp /kbd:0x00000415 /v:$Server:$Port /d:$Domain /u:$Username /p:$Password /cert-ignore /workarea +clipboard /scale:$Scale /size:$Resolution
Password=""

Poprzedni wpis Następny wpis