SucklessのDWMツバメパッチ+ Tmux

SucklessのDWMツバメパッチ+ Tmux

Tmuxを実行している端末を飲み込むことはできますか? Tmuxを無効にしないと、パッチが機能しないようです。

私は問題なくstで「スクリーン」を試しました。 :/.

ありがとうございます!

https://dwm.suckless.org/patches/swallow/ (dwm-swallow-20200522-7accbcf.diffを使用)

編集する:

わかりませんでしたが、何か素晴らしいものを見つけました。

DVTM(ターミナルでDWMを実行するのと似ています)

https://github.com/martanne/dvtm

答え1

私もあなたと同じ問題を抱えていたので、Swallow Patchがどのように機能するのか、なぜtmuxウィンドウを飲み込んでいないのかを学びました。

デフォルトでは、dwmの飲み込みパッチはtmuxを実行している端末エミュレータで起動されたアプリケーションを処理できません。なぜなら、パッチは、最近起動されたGUIアプリケーションの親プロセスをチェックして、どのウィンドウを飲み込むべきかを決定するからです。 tmux が PID 1 (init プロセス) の直属の子であるサーバープロセスでアプリケーションをフォークするため、tmux を実行すると失敗します。プロセスツリーには、GUIアプリケーションからターミナルエミュレータへの直接的なパスはありません。つまり、dwm は、新しいアプリケーションがどの端末を飲み込むべきかを決定できないため、アプリケーションを正常に生成します。

画面は端末エミュレータのサブプロセスであり、したがってアプリケーションがここで実行されるため、飲み込むことはまだ画面上で機能します。この場合、GUIアプリケーションからターミナルエミュレータまでのプロセスツリーに直接パスがあるため、dwmはどのターミナルを飲み込むかを判断できます。

プロセスツリー図を使用してどのように機能するかを詳しく調べました。私のブログに興味があれば。

というプログラム形式の解決策があります。飲み込む。多くのパッチのように、実際のウィンドウの飲み込みを提供しませんが、tmuxでは動作します。

関連情報