У меня в папке есть следующие двадцать шесть файлов:
$ 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
$
Я могу использовать Zenity следующим образом:
zenity --list --title=Test --width=275 --height=400 --column="File names" *.txt
и изначально получаем такой интерфейс:
Если я хочу выбрать файл, расположенный ниже в списке, скажем, r.txt
, я нажимаю rи r.txt
он выбирается.
Однако, если я использую Yad вместо Zenity, вот так:
yad --list --title=Test --width=275 --height=400 --column="File names" *.txt
нажатие rничего не делает. Мне приходится использовать клавиши со стрелками, чтобы прокручивать список, пока не дойду до r.txt
.
Насколько я понимаю, у Yad больше функций, чем у Zenity. Так есть ли способ заставить Yad делать то, что делает Zenity?
(Протестировано с использованием версий репозитория Yad и Zenity, найденных в 18.04 и 19.10.)
решение1
Для обучения yad
я нашел эту замечательную ссылку:ЯД - Smokey01.com
Как упоминалось в комментариях, вы хотите использовать опцию--search-column=N
В качестве примера возьмем следующий фрагмент кода:
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="$?"
Столбцы № 3 и № 5 скрыты, но они все еще учитываются. Мы хотим искать по названию значка, поэтому это столбец № 4, как записано здесь:
--margins=10 --no-click --search-column=4 \
Короткий .gif
видеоролик ниже показывает, что происходит, когда мы печатаем:
- a, Backspace, b, Backspace, c, Backspace, e(затем циклы gif)