[gelöst] Bash Script Zenity forms Fenster Positionieren

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

[gelöst] Bash Script Zenity forms Fenster Positionieren

Beitrag von joe2017 » 13.04.2021 13:55:45

Hallo zusammen,

ich habe in Debian Buster (GNOME) mit zenity ein Form erstellt. Hier habe ich auch diverse Parameter für die Größe des Fensters definiert.

Code: Alles auswählen

--width=200
--height=150
Das Funktioniert auch soweit. Jetzt möchte ich jedoch das Fenster mit XY Koordinaten positionieren.
Leider finde ich hierzu keine Option in der Syntax.

Hat jemand eine Idee wie ich das mit dem Script ausrichten kann.
Vielleicht Zentriert mit einem Abstand von 50px von oben.

Danke für die Hilfe.
Zuletzt geändert von joe2017 am 15.04.2021 07:13:41, insgesamt 1-mal geändert.

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

Re: Bash Script Zenity forms Fenster Positionieren

Beitrag von joe2017 » 14.04.2021 08:10:55

Ich habe gerade gelesen das man folgendes einstellen kann.
Das habe ich auch getestet und das funktioniert einwandfrei.

Code: Alles auswählen

gnome-terminal --geometry 20x25+10+10
Mein Zenity Script sieht wie folgt aus:

Code: Alles auswählen

#!/bin/bash

OUTPUT=$(zenity --forms --title="Remote Desktop" \
    --text="SERVER1
Enter information about your Remote Connection" \
    --width=370 \
    --height=195 \
    --separator="," \
    --add-entry="Username" \
    --add-password="Password")

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="192.168.1.100"

xfreerdp /v:$Server:$Port /d:$Domain /u:"$Username" /p:"$Password" +auto-reconnect /auto-reconnect-max-retries:0 /kbd:0x00000407 /multimon /gfx:avc420 /cert-tofu /cert-ignore /f
Password=""
Anschließend starte ich eine Desktop Datei:

Code: Alles auswählen

[Desktop Entry]
Type=Application
Terminal=false
Name=freeRDP
Comment=freeRDP
Exec=/path/to/freerdp.sh
#Icon=nm-device-wired
Icon=/path/to/freerdp.png
Name[de_DE]=freeRDP
Ich habe versucht mein Script mit diesem Zusatz anzupassen, aber Zenity kennt diese Syntax nicht.

Code: Alles auswählen

OUTPUT=$(zenity --geometry 20x25+10+10 --forms --title="Remote Desktop" \
Anschließend startet meine App (Script) nicht mehr.

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Bash Script Zenity forms Fenster Positionieren

Beitrag von heinz » 14.04.2021 09:21:13

Hallo joe2017,

vlt. hilft Dir ja Debianwmctrl weiter...

Gruss,
heinz

Huo
Beiträge: 605
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Bash Script Zenity forms Fenster Positionieren

Beitrag von Huo » 14.04.2021 09:55:30

Ich würde statt Zenity dessen Fork Debianyad benutzen, der – anders als Zenity – eine Fensterpositionierung mit der geometry-Spezifikation erlaubt.

In Deinem Skript könnte die Definition der Variablen OUTPUT dann etwa so aussehen:

Code: Alles auswählen

OUTPUT=$(yad --form --title="Remote Desktop" \
    --text="<b>SERVER1
Enter information about your Remote Connection</b>" \
    --geometry 370x195+780+50 \
    --separator="," \
    --field="Username" \
    --field=Password:H)

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

Re: Bash Script Zenity forms Fenster Positionieren

Beitrag von joe2017 » 15.04.2021 07:13:24

Schönen guten Morgen und danke für den Tipp.

Ich habe meine Scripts jetzt umgestellt. Es funktioniert einwandfrei.
Auch ein anderer Post von mir hat sich hiermit erledigt. Mit Enter funktioniert jetzt auch die "OK" Bestätigung.

Antworten