FZF端末をプログラムランチャーとして使用する方法

FZF端末をプログラムランチャーとして使用する方法

私はアイデアがあります。端末をプログラムとして使用してプログラムを実行できますか?

dmenu / rofiの代わりにFZFを使用してすべてのプログラムを一覧表示し、選択を実行してから実行後に端末を閉じたいと思います。

私はこれを試しましたが、うまくいきません。

termite -e run.shまたはurxvt -e zsh -c run.sh

run.shで構成される:

#!/bin/zsh
preexe() { kill -9 $PPID }
exec $(whence -pm '*' | fzf) &!

答え1

exec ... &!バックグラウンドで開始してexec ...終了します。

また、コマンドのstdin/stdout/stderrを配置する場所を決定する必要があります。また、端末からコマンドを切り離そうとします。

xterm -e zsh -c '
  set -o pipefail -o errexit
  print -rN -- $commands | fzf --read0 --print0 | IFS= read -rd "" cmd
  setsid -- "$cmd" <> /dev/null >&0 2>&0'

$cmdここでは、I / Oがから/にリダイレクトされる新しいセッションで実行されています/dev/null。理想的には、ウィンドウ/セッション管理者にコマンドを実行するように指示することをお勧めします。

関連情報