Zenity: Shell-Menüs einfach erstellt

  • Mit Zenity lassen sich schnell und einfach Menüs erstellen.


    So kann es dann aussehen.

    Ich wollte das Aufrufen von Befehlen und Starten von Scripts möglichst an einem Ort zusammenfassen. Und am Besten bequem aus einer GUI heraus.


    Dazu reicht ein simples Script, dass schon fast selbsterklärend ist.

    • zuerst Größe und Titel des Fensters
    • dann die Spalten definieren - hier 3 Stück (--column )
    • anschließend werden die drei Spalten befüllt
    • von der ausgewählten Zeile wird der dritte Wert der Variablen "OUT" übergeben - was in diesem Beispiel der Befehl ist
    • der gespeicherte Befehl in der Variablen "OUT" wird zum Schluss im Terminal (hier Gnome-Terminal) ausgeführt.

    Damit das Gnome-Terminal sich nach einem Befehl nicht gleich wieder schließt, muss in den Einstellungen noch etwas vorgenommen werden.



    Grundsätzlich lässt sich das auch mit Aliases realisieren, aber so mit GUI finde ich es cooler. :)

  • Das probiere ich heute Abend mal aus, dafür fallen mir noch eine Menge anderer Anwendungen ein... :thumbup:


    EDIT:


    Getestet und für gut befunden, sehr gutes Script.


    Ich benutze ein anderes Terminal daher habe ich die entsprechende Zeile geändert, damit das xfce4 Terminal offen bleibt, dieses mit -H öffnen.


    Code
    gnome-terminal --command="bash -c '$OUT' "

    beim xfce4 Terminal gegen:

    Code
    xfce4-terminal -H --command="bash -c '$OUT' "

    austauschen

    PC | AMD Ryzen 3700X - NVIDIA GF RTX 2070 Super - 16 GB RAM - 1 TB NVME - 2 TB HDD - ArchLinux

    Homi | Intel Atom 3 - Intel Grafik - 4 GB RAM - 1x 128 GB SSD - 2x 4 TB Seagate IronWolf HDD im RAID - Debian 11 mit OMV 6

    Edited once, last by KTT73 ().

  • Super Sache :)

    Ich habe das Script probiert und das Menü öffnet sich auch :thumbup:

    Wenn ich z.B. Htop starten möchte bekomme ich aber eine Fehlermeldung.

    Versuch mit Alacritty:

    alacritty --command="bash -c '$OUT' "

    Code
    Error: Failed to spawn command 'bash -c 'htop' ': No such file or directory (os error 2)
    Error: "Event loop terminated with code: 1"


    Versuch mit Kitty:

    kitty --command="bash -c '$OUT' "

    Code
    Unknown option: --command

    Ich weiß nicht wo ich an dieser Zeile drehen muss damit es funktioniert

    Fragen Sie jemanden, der sich damit auskennt - am besten nicht den Administrator


    Archlinux Openbox / ASUS R503C-SX051H - Intel Core i3-2350M + HD-Grafik 3000 + 8 GB DDR3 + 490 GB SSD

    Archlinux Xfce / DELL Inspiron 3542 - Intel Pentium 3558U + 8 GB DDR3 + 490 GB SSD

    Manjaro Xfce / DELL Inspiron 15z - Intel Core i5-3317U + 4 GB RAM + 240 GB SSD

  • schau mal bei Kitty, welche Option es braucht, damit von Extern ein Befehl übergebeb werden kann.


    Code
    kitty --help

    PC | AMD Ryzen 3700X - NVIDIA GF RTX 2070 Super - 16 GB RAM - 1 TB NVME - 2 TB HDD - ArchLinux

    Homi | Intel Atom 3 - Intel Grafik - 4 GB RAM - 1x 128 GB SSD - 2x 4 TB Seagate IronWolf HDD im RAID - Debian 11 mit OMV 6

  • Super Sache :)

    Ich habe das Script probiert und das Menü öffnet sich auch :thumbup:

    Wenn ich z.B. Htop starten möchte bekomme ich aber eine Fehlermeldung.

    Versuch mit Alacritty:

    alacritty --command="bash -c '$OUT' "

    Habe es mit Alacritty in der VM getestet

    Code
    alacritty --hold --command $OUT

    --hold bewirkt, dass das Fenster nach dem Befehl geöffnet bleibt.

  • Quote

    --hold bewirkt, dass das Fenster nach dem Befehl geöffnet bleibt.

    Super, das hat schonmal funktioniert :thumbup:

    Kann man in dem Script noch einen Befehl eingeben dass das Zenity-Menü geöffnet beibt?

    Fragen Sie jemanden, der sich damit auskennt - am besten nicht den Administrator


    Archlinux Openbox / ASUS R503C-SX051H - Intel Core i3-2350M + HD-Grafik 3000 + 8 GB DDR3 + 490 GB SSD

    Archlinux Xfce / DELL Inspiron 3542 - Intel Pentium 3558U + 8 GB DDR3 + 490 GB SSD

    Manjaro Xfce / DELL Inspiron 15z - Intel Core i5-3317U + 4 GB RAM + 240 GB SSD

  • schau mal bei Kitty, welche Option es braucht, damit von Extern ein Befehl übergebeb werden kann.


    Code
    kitty --help

    Ja OK, für Kitty schaue ich mal in der --help nach ob ich etwas finde zumal ich lieber mit kitty als mit alacritty arbeite.

    Fragen Sie jemanden, der sich damit auskennt - am besten nicht den Administrator


    Archlinux Openbox / ASUS R503C-SX051H - Intel Core i3-2350M + HD-Grafik 3000 + 8 GB DDR3 + 490 GB SSD

    Archlinux Xfce / DELL Inspiron 3542 - Intel Pentium 3558U + 8 GB DDR3 + 490 GB SSD

    Manjaro Xfce / DELL Inspiron 15z - Intel Core i5-3317U + 4 GB RAM + 240 GB SSD

  • Gerade noch etwas rumgespielt. Es lassen sich auch verschiedene Felder miteinander kombinieren.

    • Kalender
    • Textfeld
    • Liste
    • Combo

    Als Einzeiler zum Ausprobieren im Terminal:

    Code
    zenity --width=400 --forms --title="Mein erstes Formular" --text="Abfrage" --add-calendar="Datum" --add-entry="Freitext" --add-list="Vorgang" --show-header --column-values="ID|Beschreibung" --list-values="1|Fall 1|2|Fall 2|3|Fall 3|4|Fall 4" --add-combo="Auswahl 1" --combo-values="Typ A|Typ B|Typ C" --add-combo="Auswahl 2" --combo-values="Typ 1|Typ 2|Typ 3" --forms --add-combo="Auswahl 3" --combo-values="Typ A|Typ B|Typ C" --add-combo="Auswahl 4" --combo-values="Typ 1|Typ 2|Typ 3"

    Der Rückgabewert des Formulars sieht dann so aus:

    Code
    01.02.2023|Keinen weiteren Text|2,Fall 2,|Typ A|Typ 2|Typ C|Typ 3

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!