在 i3 中,如何聚焦顶级窗口容器?

在 i3 中,如何聚焦顶级窗口容器?

我经常发现自己想要将一个工作区的全部内容移至另一个工作区。我目前的方法是——

  1. 垃圾邮件我的热键focus parent直到我思考我选择了顶级容器,然后
  2. 按下我的热键move container to workspace $NUM

然而,我经常低估我的布局的嵌套程度,并且没有按下focus parent足够的次数,所以我最终只移动了部分窗口。真令人沮丧。

我如何确定我已经选择了顶级容器?


明确地说,我不想仅有的能够将一个工作区的全部内容移动到另一个工作区,但要获得在选定的顶级容器下运行任意命令的完整通用性。

答案1

我认为这个问题没有一个优雅的解决方案。作为解决方法,您可以简单地focus parent在移动容器之前重复该命令,以确保您将焦点放在顶级容器上。例如类似的东西

bindsym $mod+t focus parent, focus parent, focus parent, focus parent

根据布局的嵌套程度,您可能需要再重复几次,以合理确定您已选择顶级容器。

答案2

如果我理解正确,我认为你问错了问题。您不应将所有内容移动到另一个工作区,而应重命名您的工作区。您可以为此定义一个热键,例如

bindsym $alt+s exec i3-input -F 'rename workspace to "%s"' -P 'Destination: '

我现在意识到,只有当您的其他工作空间为空时,这才有效。是这样吗?

相关内容