![在 i3 中,如何聚焦顶级窗口容器?](https://linux22.com/image/125765/%E5%9C%A8%20i3%20%E4%B8%AD%EF%BC%8C%E5%A6%82%E4%BD%95%E8%81%9A%E7%84%A6%E9%A1%B6%E7%BA%A7%E7%AA%97%E5%8F%A3%E5%AE%B9%E5%99%A8%EF%BC%9F.png)
我经常发现自己想要将一个工作区的全部内容移至另一个工作区。我目前的方法是——
- 垃圾邮件我的热键
focus parent
直到我思考我选择了顶级容器,然后 - 按下我的热键
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: '
我现在意识到,只有当您的其他工作空间为空时,这才有效。是这样吗?