tmux は、まだ実行していない場合はプロセスを開始します。

tmux は、まだ実行していない場合はプロセスを開始します。

鉱山には、.zshrctmuxセッションを自動的に開始するか、セッションがすでに実行されている場合はセッションの1つに接続するか、新しいセッションを作成してそのセッションに接続するように求めるいくつかのロジックがあります。これはすべて素晴らしいが正しく実装できない新しい要件があります。新しいセッションが開始され、特定のプロセスが実行されていない場合はそのプロセスを開始し、プロセスが実行されている場合は新しいウィンドウを作成します。どこかでただ普通です。ただ新しいセッションを開始してください。

irssiこの場合、自動的に起動したいと思います。一つ会議。以下は($choice上記の選択プロセスに基づいて)私が仕事をするのに最も近いものです。

exec tmux -2 new-session -A -s $choice $(pgrep irssi || echo "irssi; new-window")

これはセッションが1つしかない場合(ほとんどの場合)、完全に機能しますが、新しいセッションを作成しようとするとすぐに切り離されます。

上記の条件を次のように分類すると:

if pgrep irssi; then
  exec tmux -2 new-session -A -s $choice
else
  exec tmux -2 new-session -A -s $choice "irssi; new-window"
  # splitting out `tmux new-window` also doesn't work
fi

...反対の問題があります。これで、セカンダリ(irssiではない)セッションは正しく開始され、すぐに切り離されなくなりますが、irssiセッションはirssiウィンドウのみを取得し、新しいシェルウィンドウは表示されません。 (これは最初のバージョンよりも私が望むものにほとんど間違いなく近いですが、ほぼ常に1つのセッションしかないため、このバージョンでは新しいPrefix-cウィンドウで作業を行う必要があるため勝ちます。)

ベストアンサー1

おすすめ記事