Yad で Zenity 機能を利用するにはどうすればいいですか?

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リスト

リストの下の方にあるファイル、たとえば を選択する場合は、をr.txt押して選択します。rr.txt

Zenity 選択を表示

ただし、次のように 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 のリポジトリ バージョンを使用してテストされました。)

答え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、、、、、、、(その後、gif がBackspaceループしbます)BackspacecBackspacee

検索列.gif

関連情報