Herbstluftwm 中的链接命令取决于框架中的窗口数量

Herbstluftwm 中的链接命令取决于框架中的窗口数量

我想配置窗口关闭行为,以便当我按Mod+ Shift+时q。如果框架有一个窗户或没有窗户,请关闭窗户并拆下框架。如果有超过 1 个窗口,则仅关闭获得焦点的窗口。这使得根据框架中的窗口动态关闭框架/窗口变得更容易。

我能够通过如下编辑配置文件来解决需求的第一部分。 IE。如果框架有一个窗口或没有窗口,则关闭窗口并移除框架。

hc keybind $Mod-n and . compare tags.focus.curframe_wcount lt 2 . chain , close , remove

但是,我无法链接第二部分,如果框架有超过 1 个窗口,只需关闭聚焦窗口即可。我尝试了以下两个选项。

  1. 尝试链接或者

hc keybind $Mod-n or | and . compare tags.focus.curframe_wcount lt 2 . chain , close , remove | close

  1. 尝试编写一个单独的函数
hc keybind $Mod-Shift-q close_frames

close_frames(){
    WinCurFrame=$(hc attr tags.focus.curframe_wcount)
    [[ WinInCurFrame < 2 ]] && hc close;remove || hc close
}

答案1

确定了实现它的方法。 Herbstluftwm 中有一个配置选项可以启用此行为。 https://herbstluftwm.org/herbstluftwm.html

关闭或删除 关闭聚焦的窗口,如果没有聚焦的窗口,则删除当前帧。在浮动模式下,这充当关闭命令。

关闭并删除 如果当前帧中不存在其他窗口,则关闭聚焦窗口并删除当前帧。在浮动模式下,这充当关闭命令。

相关内容