Nic*_*ick 22 i3 window-management
假设我打开了窗口 w1、w2 和子窗口 w1-a、w1-b,其中 w1 作为它们的父窗口。有没有办法将 w1-a 移动到其父窗口级别?
Nic*_*ick 23
我通过观看 i3 网站上的视频教程找到了答案:
Shift+ $mod+Up
焦点家长:
$mod+a
我希望这对其他同样不熟悉 i3wm 的人有用。
小智 7
我想扩展作者的答案。\n Shift+$mod+Up
( move up
for w1-a
) 非常依赖于您当前的布局。
假设容器树的初始状态是:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w1-b\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n
Run Code Online (Sandbox Code Playgroud)\n\n(请注意,w1 不是直接可见的 - 只有它的两个子容器/窗口是。)
\n\n然而,虽然这指定了任何给定父级的子级的顺序,但它没有指定每个容器是否使用水平或垂直分割,这将影响操作的结果move up
。
例如,如果您在垂直分割中将其与w1-b
物理下方一起使用:w1-a
. (horizontal split)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1 (vertical split)\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w1-b\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n
Run Code Online (Sandbox Code Playgroud)\n\n那么它只会将它们切换到w1-b
上方w1-a
而不是父顶层。\n容器树现在看起来像这样:
. (horizontal split)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1 (vertical split)\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w1-b\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n
Run Code Online (Sandbox Code Playgroud)\n\n从视觉上看,变化将如下所示:
\n\n+------------------------------------------+ +------------------------------------------+\n| +-----------------+ +-----------------+ | | +-----------------+ +-----------------+ |\n| | w1 | | w2 | | | | w1 | | w2 | |\n| | +-------------+ | | | | | | +-------------+ | | | |\n| | | w1-a | | | | | | | | w1-b | | | | |\n| | | | | | | | | | | | | | | |\n| | | | | | | | | | | | | | | |\n| | | | | | | | | | | | | | | |\n| | +-------------+ | | | | | | +-------------+ | | | |\n| | +-------------+ | | | | ---> | | +-------------+ | | | |\n| | | w1-b | | | | | | | | w1-a | | | | |\n| | | (move up) | | | | | | | | | | | | |\n| | | | | | | | | | | | | | | |\n| | | | | | | | | | | | | | | |\n| | | | | | | | | | | | | | | |\n| | +-------------+ | | | | | | +-------------+ | | | |\n| +-----------------+ +-----------------+ | | +-----------------+ +-----------------+ |\n+------------------------------------------+ +------------------------------------------+\n
Run Code Online (Sandbox Code Playgroud)\n\n另一方面,如果w1-a
位于 的左侧w1-b
和w2
上方w1
:
. (vertical split)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1 (horizontal split)\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w1-b\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n
Run Code Online (Sandbox Code Playgroud)\n\nmove up
然后执行on后,您最终将在树的同一(顶层)级别上w1-b
得到w2
和,但仍然会处于其中 ,这可能会非常令人困惑,特别是考虑到它本身只是一个不可见的容器。w1-b
w1-a
w1
w1
容器树现在看起来像这样:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-b\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n\n+------------------------------------------+ +------------------------------------------+\n| +--------------------------------------+ | | +--------------------------------------+ |\n| | w1 | | | | w1-b | |\n| | +---------------+ +---------------+ | | | | | |\n| | | w1-a | | w1-b | | | | +--------------------------------------+ |\n| | | | | (move up) | | | | +--------------------------------------+ |\n| | | | | | | | | | w1 | |\n| | | | | | | | | | +----------------------------------+ | |\n| | +---------------+ +---------------+ | | | | | w1-a | | |\n| +--------------------------------------+ | | | | | | |\n| +--------------------------------------+ | ---> | | +----------------------------------+ | |\n| | w2 | | | +--------------------------------------+ |\n| | | | | +--------------------------------------+ |\n| | | | | | w2 | |\n| | | | | | | |\n| | | | | | | |\n| +--------------------------------------+ | | +--------------------------------------+ |\n+------------------------------------------+ +------------------------------------------+\n
Run Code Online (Sandbox Code Playgroud)\n\n如果您随后尝试w1-a
向上移动,视觉上不会发生明显变化,但树会发生变化并且w1
不再存在:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-b\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n\n+------------------------------------------+ +------------------------------------------+\n| +--------------------------------------+ | | +--------------------------------------+ |\n| | w1-b | | | | w1-b | |\n| | | | | | | |\n| +--------------------------------------+ | | +--------------------------------------+ |\n| +--------------------------------------+ | | +--------------------------------------+ |\n| | w1 | | | | w1-a | |\n| | +----------------------------------+ | | | | | |\n| | | w1-a | | | | | | |\n| | | | | | | | | |\n| | +----------------------------------+ | | ---> | | | |\n| +--------------------------------------+ | | +--------------------------------------+ |\n| +--------------------------------------+ | | +--------------------------------------+ |\n| | w2 | | | | w2 | |\n| | | | | | | |\n| | | | | | | |\n| +--------------------------------------+ | | +--------------------------------------+ |\n+------------------------------------------+ +------------------------------------------+\n
Run Code Online (Sandbox Code Playgroud)\n\n因此,您需要再次将其向上移动以在顶层重新排序并放置w1-a
在w1-b
.
如果在垂直分割中w1-a
物理上位于上方,并且在水平分割中位于右侧:w1-b
w2
w1
. (horizontal split)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1 (vertical split)\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w1-b\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n
Run Code Online (Sandbox Code Playgroud)\n\n那么您最终将与和的容器w1-a
位于同一个容器中。w1
w2
容器树:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1-a\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 container\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 w1\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w1-b\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 w2\n\n+------------------------------------------+ +------------------------------------------+\n| +-----------------+ +-----------------+ | | +--------------------------------------+ |\n| | w1 | | w2 | | | | w1-a | |\n| | +-------------+ | | | | | | | |\n| | | w1-a | | | | | | | | |\n| | | (move up) | | | | | | +--------------------------------------+ |\n| | | | | | | | | +--------------------------------------+ |\n| | | | | | | | | | container (former root) | |\n| | | | | | | | | | +---------------+ +----------------+ | |\n| | +-------------+ | | | | | | | w1 | | w2 | | |\n| | +-------------+ | | | | ---> | | | +-----------+ | | | | |\n| | | w1-b | | | | | | | | | w1-b | | | | | |\n| | | | | | | | | | | | | | | | | |\n| | | | | | | | | | | | | | | | | |\n| | | | | | | | | | | +-----------+ | | | | |\n| | +-------------+ | | | | | | +---------------+ +----------------+ | |\n| +-----------------+ +-----------------+ | | +--------------------------------------+ |\n+------------------------------------------+ +------------------------------------------+\n
Run Code Online (Sandbox Code Playgroud)\n\n在 i3 中移动容器/窗口一开始可能有点不直观,但如果您了解哪个容器容纳哪个容器以及它们的位置,您就可以预测移动容器的行为。请记住,移动操作可能并不总是会导致可见的更改。
\n\nPS:小思想实验:如果您move left
w1-a
在“容器树中同一级别内重新排序”示例中,您会得到类似于“向上移动一级”场景的内容。
归档时间: |
|
查看次数: |
9171 次 |
最近记录: |