urxvtとfzfを使用したシンプルなアプリケーションランチャーの作成

urxvtとfzfを使用したシンプルなアプリケーションランチャーの作成

私はショートカットにバインドするためにターミナルとfzfを持つ単純なプログラム実行プログラムを一緒に合わせようとしましたが、プログラムの起動後に子プロセスを終了しないとターミナルウィンドウを閉じることはできません。私はシェルの初心者なので、重要なステップを逃した可能性があります。

私が今まで試したこと:

urxvtc -name menu -e bash -c 'compgen -c | sort -u | fzf | sh

特別なルールに従って作成できるように menu という名前が付けられました。シェル(zsh)がcompgenを認識しなかったため、-e bashを実行する必要がありました。

一つの不一致が提案された。

urxvt -name menu -e bash -c 'cmd=$(compgen -c | sort -u | fzf); setsid $cmd'

これにより、起動されたプログラムからウィンドウが切り離されますが、fzfが評価されてstdoutに出力されたときにターミナルウィンドウを自動的に閉じる方法が見つかりません。

答え1

これが正確にあなたが探しているものであるかどうかはわかりませんが、setid(-f)にフォークパラメータを追加することは、非ターミナルコマンドに非常に便利です。

urxvt -name menu -e bash -c 'cmd=$(compgen -c | sort -u | fzf); setsid -f $cmd'

関連情報