我的資料夾中有以下二十六個檔案:
$ 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 所做的事情嗎?
(使用 18.04 和 19.10 中發現的 Yad 和 Zenity 儲存庫版本進行測試。)
答案1
為了學習,yad
我找到了這個很好的參考: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 循環)