是否有可能吞掉运行 Tmux 的终端?除非禁用 Tmux,否则我似乎无法使补丁正常工作。
我尝试过在 st 上使用“Screen”,没有任何问题:/。
谢谢!
https://dwm.suckless.org/patches/swallow/ (使用 dwm-swallow-20200522-7accbcf.diff)
编辑:
无法弄清楚,但发现了一些很棒的东西:
DVTM(类似于在终端中运行 DWM)。
答案1
我遇到了和你一样的问题,所以我深入研究了吞下补丁的工作原理以及为什么它不能吞下 tmux 窗口。
基本上,dwm 的吞下补丁无法处理从运行 tmux 的终端仿真器启动的应用程序,因为该补丁通过查找最近启动的 GUI 应用程序的父进程来确定应该吞下哪个窗口。运行 tmux 时会失败,因为 tmux 从其服务器进程派生应用程序,该服务器进程是 PID 1(init 进程)的直接子进程。进程树上没有从 GUI 应用程序到终端仿真器的直接路径,这意味着 dwm 无法确定新应用程序应吞并哪个终端,因此它会正常生成应用程序。
吞咽仍然适用于 screen,因为 screen 是终端模拟器的子进程,因此从它启动的应用程序也是如此。在这种情况下,进程树中有一条从 GUI 应用程序到终端仿真器的直接路径,因此 dwm 可以找出要吞下的终端。
我对它如何与流程树图一起工作进行了更深入的探索在我的博客上如果你有兴趣的话。
有一个名为的程序形式的解决方法吞食。它不像吞咽补丁那样提供真正的窗口吞咽,但它确实可以与 tmux 一起使用。