Bash Script yad Funktion gesucht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Bash Script yad Funktion gesucht

Beitrag von joe2017 » 21.04.2021 20:08:31

Guten Abend zusammen,

Ich suche bei yad eine Funktion und weiß nicht genau welche Option ich hier habe. Ein drop down Feld möchte ich hierfür nicht verwenden.

Ich habe ein Script für eine rdp Verbindung erstellt. Hier gebe ich Benutzer und Passwort ein. Die restlichen Informationen waren die ganze Zeit fix hinterlegt. Jetzt möchte ich zwei Server zur Auswahl anzeigen. Vielleicht mit einem Schalter...
Server1 Schalter nach links (default on)
Server2 Schalter nach rechts

Gibt es so etwas in der Art? Oder was würdet ihr hier verwenden. Natürlich wäre ein drop down Feld möglich. Aber ich möchte das die Anmeldung schnell mit Klicks durchgeführt werden kann. Für den Anwender ist es nervig, wenn man das jedes mal auswählen muss.

Für andere Optionen bin ich auch offen. Es darf aber nur eine Option möglich sein. Man darf nicht beides gleichzeitig auswählen können.

rodney
Beiträge: 370
Registriert: 09.12.2016 04:15:59

Re: Bash Script yad Funktion gesucht

Beitrag von rodney » 21.04.2021 20:35:06

joe2017 hat geschrieben: ↑ zum Beitrag ↑
21.04.2021 20:08:31
Gibt es so etwas in der Art? Oder was würdet ihr hier verwenden. Natürlich wäre ein drop down Feld möglich. Aber ich möchte das die Anmeldung schnell mit Klicks durchgeführt werden kann. Für den Anwender ist es nervig, wenn man das jedes mal auswählen muss.
Wenn ich mich nicht verlesen habe, dann kann man einer Combo_box durchaus einen Default-Wert zuweisen. Ungetestet (habe den Code aus deinem anderen yad-Thread entnommen):

Code: Alles auswählen

yad --form --field="test3" --field="test":CB "" text1!^text2!text3 --field="test2"
So muesste eigentlich "text2" als Defaultwert genommen werden (^ voranstellen)

Benutzeravatar
Phineas
Beiträge: 354
Registriert: 20.06.2012 20:26:19

Re: Bash Script yad Funktion gesucht

Beitrag von Phineas » 21.04.2021 20:37:55

Ein Schuss ins Blaue wäre jetzt in Richtung Radiobutton bzw. Radiolist.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 21.04.2021 20:42:39

Ja das wäre eine Idee. Aber dann muss der Benutzer immer die combo Box aufklappen um die andere Option zu wählen. Ich suche eine Möglichkeit das schneller auszuwählen.
Vielleicht auch für drei Optionen (Server1, Server2, Server3). Aber es darf immer nur eine Auswahl möglich sein. Vielleicht mit solchen on/off radiobuttons.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 21.04.2021 20:44:18

Hi phineas, sorry zu spät gelesen. Radiobuttons oder Radiolist wäre perfekt. Das schau ich mir mal an.

Weiß zufällig jemand aus dem Kopf die Syntax? Wenn nicht schau ich nach. Das ist ja auch kein Problem.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 22.04.2021 07:30:11

Ich finde irgendwie keine Möglichkeit die radiolist in ein --form einzubauen.
Kann es sein, dass dies nicht möglich ist?

Vielleicht könnte man das mit CHK lösen?

Code: Alles auswählen

--field="Server1":CHK \
--field="Server2":CHK \
Jedoch dürfte immer nur ein Haken aktiv sein. Wenn ich Server2 auswähle muss Server1 deaktiviert werden und umgedreht.

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Bash Script yad Funktion gesucht

Beitrag von curt123 » 22.04.2021 09:19:33

joe2017 hat geschrieben: ↑ zum Beitrag ↑
21.04.2021 20:42:39
Vielleicht auch für drei Optionen (Server1, Server2, Server3). Aber es darf immer nur eine Auswahl möglich sein. Vielleicht mit solchen on/off radiobuttons.
Mit zenity habe ich eine Auswahl per Liste, da wird dann ein (ggf. auch versteckter) Spaltenwert aus der Liste ausgegeben. Bei yad sollte das eigentlich auch möglich sein.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 22.04.2021 09:23:16

Hast du hierzu ein code Schnipsel wie du das mit zenity gelöst hast?

Ich habe noch nicht herausgefunden wie ich eine liste in ein form in yad einfügen kann.
Folgenden Ansatz hatte ich. Jedoch hat das nicht funktioniert.

Code: Alles auswählen

yad --form --titel="test" \
--field="User" \
--field="Password":H \
--list --radiolist .... )

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Bash Script yad Funktion gesucht

Beitrag von curt123 » 22.04.2021 09:36:08

Bei yad gibt es wohl einen Parameter --multiple?

Bei mir schaut das für zenity so aus:

Code: Alles auswählen

zout=""

for (( n=0; n<${#server_name[@]}; n++ ))
  do
    zout+="$n ${server_name[$n]} "
    zout+="${accessable_text[$(get_server_accessable ${server_ip[$n]})]} "
    zout+="${server_ip[$n]} ${server_mac[$n]} "
    zout+="$(get_nfs_status_ix ${client_verz[$n]}) ${client_verz[$n]} "
    zout+="${server_res[$n]}"
    if (( $n < ${#server_name[@]}-1 )); then
       zout+=$'\n'
    fi
done

tout=$(zenity --list --width 800 --height 400 \
   --title "NFS Server Übersicht" \
   --text="Austellung und Status der für NFS Toggle konfigurierten Server" \
   --column="Nr" --column="Name" --column="Erreichbar" \
   --column="IP" --column="MAC" \
   --column="Status" --column="Mountpoint" \
   --column="Ressource" \
   --ok-label "Weiter nach Auswahl >" \
   --hide-column=1 --cancel-label="Abbr" \
   $zout)

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 22.04.2021 09:39:42

Ich hätte noch eine Idee. Vielleicht könnte man das Feld SCL (scale field from 0 to 100) umwandeld und hier die server hinterlegen.
Anstatt 0 würde dann Server1 stehen und bei 50 Server2, bei 100 Server3.

Falls so etwas überhaupt möglich ist?

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 22.04.2021 10:12:50

Also ich finde keine Möglichkeit --form und --list zu verbinden. Ich befürchte das dies nicht möglich ist.
Somit kann ich radiolist nnicht in meinem form verwenden.

Hat noch jemand eine Idee? So langsam gehen Sie mir aus. :google:

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Bash Script yad Funktion gesucht

Beitrag von curt123 » 22.04.2021 10:23:16

Und --form ist nötig?

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 22.04.2021 10:41:51

Leider ja. Aber es ist schon komisch das man die beiden nicht verbinden kann.
Vielleicht kann man --list ja irgendwie anders in das --form einbetten?

Was mir natürlich immer noch reichen würde, wären die CHK Felder. Vorausgesetzt man kann immer nur eins auf true setzen.
Hierzu finde ich aber leider auch nichts.
Zuletzt geändert von joe2017 am 22.04.2021 11:02:02, insgesamt 1-mal geändert.

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Bash Script yad Funktion gesucht

Beitrag von curt123 » 22.04.2021 11:00:38

Vielleicht zusätzliche Buttons?

Code: Alles auswählen

--button="0" \
--button="1" \
--button="2" \
--button="3"

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Bash Script yad Funktion gesucht

Beitrag von detix » 23.04.2021 07:32:29

joe2017 hat geschrieben: Aber es ist schon komisch das man die beiden nicht verbinden kann.
Man kann yad Dialoge schon miteinander verbinden, aber ab einem gewissen Zeitpunkt wird es recht kompliziert:
https://sanana.kiev.ua/index.php/yad
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 23.04.2021 07:54:12

Das sieht sehr interessant aus. das schau ich mir gleich mal an!
Vielen Dank für den Link. :hail:

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 23.04.2021 08:58:56

Also das hat irgendwie nicht funktioniert! Ich steige noch nicht ganz durch was er da macht.
Interessant wäre auf jeden Fall das zweite Beispiel. Hier verwendet er keine Registerkarten und packt das irgendwie untereinander.
Das funktioniert bei mir aber irgendwie nicht so ganz.

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Bash Script yad Funktion gesucht

Beitrag von detix » 23.04.2021 09:59:01

ersetze die erste Zeile durch „#! /bin/bash”
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 23.04.2021 14:23:17

Ich habe es jetzt teilweise hinbekommen. Mein Script wird ausgeführt. Jedoch stürzt YAD jedes mal ab.
Auch die Eingaben werden nicht mehr in die Variablen geschrieben. Ich wollte erst mal abfragen was in der Variable $RDPvar steht und anschließend die entsprechende IP für den Server verwenden.

Anbei mein test Script:

Code: Alles auswählen

#!/bin/bash

fkey=$(($RANDOM * $$))

OUTPUT=$(yad --plug="$fkey" --tabnum=1 --form \
    --field=" Username" \
    --field=" Password":H \
    --field=" RemoteIP (optional)" &

yad --plug="$fkey" --tabnum=2 --list --radiolist --column="" --column="Select your RDP Server" \
 TRUE Server1 FALSE Server2 &

yad --paned --key="$fkey" --geometry=340x300+300+150 ---title="RDPl" \
    --text="<b> Enter information about your Remote Connection</b>
" \
    --window-icon=nm-device-wired \
    --separator="," )

OUTPUT_RESULTS=$?
if ((OUTPUT_RESULTS != 0)); then
    echo "something went wrong"
    exit 1
fi
Blank=""
Username=$(awk -F, '{print $1}' <<<$OUTPUT)
Password=$(awk -F, '{print $2}' <<<$OUTPUT)
Port="3389"
Domain="local.net"
Server=$(awk -F, '{print $3}' <<<$OUTPUT)
RDPvar=$(awk -F, '{print $4}' <<<$OUTPUT)
if ["$Server" = "$Blank"]; then
    Server="192.168.1.1"
fi

echo $Username $Password $Port $Domain $Server $RDPvar

xfreerdp /v:$Server:$Port /d:$Domain /u:"$Username" /p:"$Password" +auto-reconnect /auto-reconnect-max-retries:0 /kbd:0x00000407 /multimon /gfx:avc420 /cert-tofu /printer /cert-ignore /f
Password=""

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Bash Script yad Funktion gesucht

Beitrag von curt123 » 23.04.2021 16:49:25

joe2017 hat geschrieben: ↑ zum Beitrag ↑
23.04.2021 14:23:17

Code: Alles auswählen

yad --paned --key="$fkey" --geometry=340x300+300+150 ---title="RDPl" \
Sind die drei - vor title bei yad üblich?

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Bash Script yad Funktion gesucht

Beitrag von detix » 23.04.2021 19:28:58

Beim Skript:
schmeiß zunächst mal OUTPUT=$(...) raus, die Dialoge dürfen/müssen? einzeln stehen, also nur yad --plug...
damit steigt das Programm schon nicht mehr aus.
Um an die Ausgabe der ersten beiden yads zu kommen schreib sie in eine Datei, so ungefähr:

Code: Alles auswählen

yad --plug... &>/tmp/Ausgabe1 &
Lies dann halt den Inhalt der Dateien aus, wie geschrieben wirds sonst kompliziert und du wirst dich
mit mkfifo, exec, export, sonstwas rumärgern müssen...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: Bash Script yad Funktion gesucht

Beitrag von joe2017 » 23.04.2021 20:39:50

Ist das mit der Ausgabe in ein file und anschließendem einlesen nicht kompliziert?
Kann man die eingabe nicht direkt an eine Variable weitergeben anstatt in die Datei?

Aber danke für die Info.

Antworten