Ich habe die folgenden sechsundzwanzig Dateien in einem Ordner:
$ ls
a.txt c.txt e.txt g.txt i.txt k.txt m.txt o.txt q.txt s.txt u.txt w.txt y.txt
b.txt d.txt f.txt h.txt j.txt l.txt n.txt p.txt r.txt t.txt v.txt x.txt z.txt
$
Ich kann Zenity folgendermaßen verwenden:
zenity --list --title=Test --width=275 --height=400 --column="File names" *.txt
und erhalten Sie zunächst diese Schnittstelle:
Wenn ich beispielsweise eine Datei weiter unten in der Liste auswählen möchte, r.txt
drücke ich rund r.txt
die Datei ist ausgewählt.
Wenn ich jedoch Yad anstelle von Zenity wie folgt verwende:
yad --list --title=Test --width=275 --height=400 --column="File names" *.txt
Drücken rbewirkt nichts. Ich muss mit den Pfeiltasten durch die Liste blättern, bis ich zu komme r.txt
.
Meines Wissens hat Yad mehr Funktionen als Zenity. Gibt es also eine Möglichkeit, Yad dazu zu bringen, das zu tun, was Zenity kann?
(Getestet mit den Repository-Versionen von Yad und Zenity in 18.04 und 19.10.)
Antwort1
Zum Lernen yad
habe ich diese tolle Referenz gefunden:YAD - Smokey01.com
Wie in den Kommentaren erwähnt, möchten Sie die Option verwenden--search-column=N
Nehmen Sie den folgenden Codeausschnitt als Beispiel:
while true ; do
local Selected INSTRUCTIONS
INSTRUCTIONS="Click Icon to move and press Enter"
Selected=$(yad --list --radiolist \
--image="$ICON" --window-icon="$ICON" \
--margins=10 --no-click --search-column=4 \
--title="$TITLE" "${GEOMETRY[@]}" \
--text="<big><b>$TEXT</b></big> - $INSTRUCTIONS" \
--column "Select" \
--column "Order" \
--column "Icon Type:HD" \
--column "Icon name" \
--column "Linkless name:HD" \
--column "Modified date" \
--column "Col Pos:NUM" \
--column "Row Pos:NUM" \
--button="_Alpha Sort:$ButnAlpha" \
--button="_Linkless Sort:$ButnLinkless" \
--button="_Oldest Date:$ButnOldest" \
--button="_Newest Date:$ButnNewest" \
--button="_Test:$ButnTest" \
--button="_Apply:$ButnApply" \
--button="_Cancel:$ButnCancel" \
"${IconsArr[@]}")
Retn="$?"
Die Spalten 3 und 5 sind ausgeblendet, werden aber trotzdem gezählt. Wir möchten nach dem Symbolnamen suchen, also ist es Spalte 4, wie hier aufgezeichnet:
--margins=10 --no-click --search-column=4 \
Der kurze .gif
Clip unten zeigt, was passiert, wenn wir tippen:
- a, Backspace, b, Backspace, c, Backspace, e(dann wird das GIF in einer Schleife angezeigt)