zwtsc - cliente gráfico para Terminal Service
Publicado por Davidson Rodrigues Paulo 16/04/2009
[ Hits: 7.042 ]
Homepage: http://davidsonpaulo.com/
Utilitário gráfico escrito em Shell Script utilizando o Zenity para gerar a interface gráfica.
Cria, salva e carrega sessões de Terminal Service configuradas no arquivo ~/.zwtsc.
#!/bin/bash # # zwtsc # Zenwalk Terminal Service Client # # Author: Davidson Paulo <davidsonpaulo@gmail.com> # Date: April 15, 2009 # # License: GNU General Public License v3+ ## Variables Cons="${HOME}/.zwtsc" Options="" #Keymap="en-us" # USA International keyboard Keymap="pt-br" # Brazilian keyboard, with Ç key # Display connections displayCons() { Pattern="[[:space:]]*conn[[:space:]]*" fgrep conn $Cons | sed 's/^'"$Pattern"'//' | sort | while read Conn ; do Start="${Pattern}${Conn}" echo "$Conn" sed -n '/^'"$Start"'/,/^[[:space:]]*commit/p' $Cons | egrep '[[:space:]]*IP=' | cut -d= -f2- done | sed '1i'"(Nova conexão)\n" | zenity --width=400 --height=300 --list --title="Conexões" \ --column="Conexão" --column="IP" } # Run a Terminal Service session runSession() { Pattern="[[:space:]]*conn[[:space:]]*${1}[[:space:]]*$" Block=`sed -rn '/'"$Pattern"'/,/^[[:space:]]*commit/p' $Cons` echo "$Block" | sed -r -e '1d' -e 's/[[:space:]]//' | while read Opt ; do Value="$(echo $Opt | cut -d= -f2-)" case "$Opt" in "IP="*) Options+=" $Value" ;; "USER="*) Options+=" -u $Value" ;; "PASSWORD="*) Options+=" -p '${Value}'" ;; "DOMAIN="*) Options+=" -d $Value" ;; "SIZE="*) Options+=" -g $Value" ;; "COLORS="*) Options+=" -a $Value" ;; "CLIPBOARD=1") Options+=" -r clipboard:CLIPBOARD" ;; "SHARE="*) Options+=" -r disk:Share=${Value}" ;; "CONSOLE=1") Options+=" -0" ;; "LAYOUT="*) Options+=" -k $Value" ;; "FULLSCREEN="*) Options+=" -f" ;; "commit"*) eval rdesktop "$Options" ;; esac done } # Asks for the session name getSessionName() { zenity --title="$1" --entry --text="Nome da conexão" || echo "ABORT" } # Asks for the session IP getSessionIP() { zenity title="$1" --entry --text="IP/nome de máquina" || echo "ABORT" } # Asks for the color depth getSessionColor() { for i in 8 15 16 24 ; do echo -e "\n${i} bits\n${i}" ; done | zenity --list --title="Profundidade de cores" --radiolist \ --column="" --column="Profundidade" --column="" \ --hide-column=3 --print-column=3 || echo "ABORT" } # Asks for the resolution getSessionResolution() { for i in "800x600" "1024x768" "1272x970" "Tela cheia" ; do if [ "$i" == "Tela cheia" ] ; then echo -e "\n${i}\n0" else echo -e "\n${i}\n${i}" fi done | zenity --list --title="Resolução" --radiolist \ --column="" --column="Resolução" --column="" \ --hide-column=3 --print-column=3 || echo "ABORT" } # Asks for other options getSessionOptions() { j=0 for i in "Salvar usuário" "Salvar senha" "Salvar domínio" \ "Copiar/colar" "Anexar ao console" \ "Compartilhar diretório" ; do echo -e "\n${i}\n${j}" (( j++ )) done | zenity --list --title="Opções adicionais" --checklist \ --multiple --print-column=ALL --separator=" " \ --column="" --column="Opção" --column="" \ --hide-column=3 --print-column=3 || echo "ABORT" } # Saves the session in file saveSession() { ( Conn="$1" ; shift echo "conn $Conn" echo " IP=${1}" ; shift echo " COLORS=${1}" ; shift if [ "$1" == "0" ] ; then echo " FULLSCREEN=1" else echo " SIZE=${1}" fi shift Opts="$1" shift for i in $Opts ; do case $i in 0) echo " USER=${1}" ; shift ;; 1) echo " PASSWORD=${1}" ; shift ;; 2) echo " DOMAIN=${1}" ; shift ;; 3) echo " CLIPBOARD=1" ;; 4) echo " CONSOLE=1" ;; 5) echo " SHARE='${1}'" ;; esac done echo " LAYOUT=${Keymap}" echo " commit" ) >> $Cons zenity --title="Concluído" --info \ --text="Sessão ter Terminal Service configurada." } # Configure a new Terminal Service session newSession() { title="Nova sessão" zenity="zenity --title='${title}'" SessionName=$(getSessionName "$title") [ "$SessionName" == "ABORT" ] && return 1 SessionIP=$(getSessionIP "$title") [ "$SessionIP" == "ABORT" ] && return 1 SessionColor=$(getSessionColor "$title") [ "$SessionColor" == "ABORT" ] && return 1 SessionResolution=$(getSessionResolution "$title") [ "$SessionResolution" == "ABORT" ] && return 1 SessionOptions=$(getSessionOptions "$title") [ "$SessionOptions" == "ABORT" ] && return 1 for i in $SessionOptions ; do case $i in 0) SessionUser=$(eval $zenity --entry --text="Usuário" || echo "ABORT") [ "$SessionUser" == "ABORT" ] && return 1 ;; 1) SessionPassword=$(eval $zenity --entry --text="Senha" \ --hide-text || echo "ABORT") [ "$SessionPassword" == "ABORT" ] && return 1 ;; 2) SessionDomain=$(eval $zenity --entry --text="Domínio" || echo "ABORT") [ "$SessionDomain" == "ABORT" ] && return 1 ;; 5) SessionShare=$(eval $zenity \ --title="Compartilhar diretório" \ --file-selection --directory || echo "ABORT") [ "$SessionShare" == "ABORT" ] && return 1 ;; esac done saveSession "$SessionName" "$SessionIP" "$SessionColor" \ "$SessionResolution" "$SessionOptions" \ "$SessionUser" "$SessionPassword" "$SessionDomain" \ "$SessionShare" } if [ -f $Cons ] ; then Option="$(displayCons)" if [ -n "$Option" ] ; then if [ "$Option" == "(Nova conexão)" ] ; then newSession $0 else runSession "$Option" fi fi else touch $Cons newSession $0 fi exit 0
Converter slides swf baixados do slideshare para pdf
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Ubuntu com problemas no áudio (3)
Rust é o "C da nossa geração"? (5)
Debian 13 "trixie&... lançado! (44)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)