プレフィックスキーを送信した後にのみtmuxのステータスバーを表示しますか?

プレフィックスキーを送信した後にのみtmuxのステータスバーを表示しますか?

プレフィックスキーを送信した後にのみステータスバーが表示されるようにしたいと思います。予想されるコマンドを送信した後、バーが再び消えることを望みます。

私はそれが次のように動作すると思います:

  1. C-b(連絡先の送信)を押します。
  2. ステータスバーが表示されます
  3. メディアc(例えば)
  4. ステータスバーが消えます&新しいウィンドウが作成されました

この問題を解決する方法に関する提案はありますか?ありがとうございます!

ベストアンサー1

これは簡単にするのが難しいです。

プレフィックスを押すと表示されるのは簡単です。プレフィックスオプションをオフにしてキーをバインドするだけです。

set -g prefix None
bind -n C-b set status on \; switchc -Tprefix

問題は、「すべてのコマンド発生」フックがないため、キーが押されたときに閉じるように説得することです。他のキーバインディングを変更してドラッグできますc

bind c set status off \; new-window

しかし、すべてのキーに対してこれを行うのは痛いでしょう。

または、次のように約1秒後に閉じることもできます。

set -g prefix None
bind -n C-b set status on \; run -b "sleep 1; tmux set -t'#{session_id}' status off" \; switchc -Tprefix

ただし、複数のコマンドを順番に実行したい場合は、これは面倒なことになります。これより複雑なスクリプトを作成することもできますが、ユーザーオプションでCbを押す時間を更新し、十分な時間が経過した後にのみ状態を再び閉じることができます。

次のキーを押したときにオフにする必要がある場合は、他のすべてのキーバインディングを変更するか、tmuxを変更して使用可能なフックをトリガーする必要があります。

おすすめ記事