web-dev-qa-db-ja.com

YadでZenity機能を取得するにはどうすればよいですか?

フォルダに次の26個のファイルがあります。

$ 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

最初にこのインターフェースを取得します。

Zenity list

リストの下のファイルを選択する場合は、たとえばr.txtを押します。 r r.txtが選択されています。

Zenity showing selection

ただし、次のようにZenityの代わりにYadを使用する場合:

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のリポジトリバージョンを使用してテストされています。)

4
DK Bose

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ループ)

search column.gif

3