Tmux
Suckless 的 DWM 燕子更新檔 + Tmux
是否可以吞下執行 Tmux 的終端?除非禁用 Tmux,否則我似乎無法使更新檔正常工作。
我已經嘗試在 st 上使用“Screen”並且沒有問題:/。
謝謝!
https://dwm.suckless.org/patches/swallow/ (使用dwm-swallow-20200522-7accbcf.diff)
編輯:
想不通,但發現了一些很棒的東西:
DVTM(類似於在終端中執行 DWM)。
我遇到了和你一樣的問題,所以我深入研究了燕子更新檔的工作原理以及為什麼它不能吞下 tmux 視窗。
基本上,dwm 的 Swallow 更新檔無法處理從執行 tmux 的終端仿真器啟動的應用程序,因為該更新檔通過查找最近啟動的 GUI 應用程序的父程序來確定應該吞噬哪個視窗。這在執行 tmux 時會失敗,因為 tmux 從其伺服器程序分叉應用程序,該伺服器程序是 PID 1 的直接子程序(init 程序)。從 GUI 應用程序到終端仿真器的程序樹沒有直接路徑,這意味著 dwm 無法確定哪個終端應該被新應用程序吞下,因此它會正常生成應用程序。
吞嚥仍然適用於螢幕,因為螢幕是終端模擬器的子程序,從它啟動的應用程序也是如此。在這種情況下,從 GUI 應用程序到終端仿真器的程序樹有一條直接路徑,因此 dwm 可以找出要吞下哪個終端。
如果您有興趣,我會在我的部落格上對它如何與流程樹圖一起進行更深入的探索。
有一個名為devour的程序形式的解決方法。它不像吞嚥更新檔那樣提供真正的視窗吞嚥,但它確實適用於 tmux。