如何使用2x2网格布局的i3窗口管理器?

时间:2016-10-05 18:56:00

标签: linux

是否可以在i3中使用2x2网格布局?我查看了文档并尝试移动窗户,但我无法做到。

2 个答案:

答案 0 :(得分:6)

您可以组合水平分割和垂直分割容器以获得所需的布局。

如果在工作区上打开四个窗口,它们都在一个容器内。其布局取决于workspace_layoutdefault_orientation设置。要进入2x2网格,您有两个基本选项:

1。两个窗口,每个窗口位于水平分割容器内,而后者又位于垂直分割容器内:

其中一个可能的 i3 命令序列是

    layout splith
    move down
    layout splith
    focus up
    move down

这也可以在一个命令链中完成,该命令链可以使用i3-msg运行或绑定到快捷方式:

    layout splith, move down, layout splith, focus up, move down

说明:

  1. layout splith将初始容器的布局更改为水平拆分。
  2. move down将当前关注的窗口向下移动,从初始容器移动到新容器中。初始容器和新容器都放在一个垂直拆分容器中。
  3. layout splith这会将新(内部)容器的布局更改为水平拆分
  4. focus up将其余三个窗口中的一个放在原始容器中(使用focus left|right选择一个特定的窗口)
  5. move down将焦点窗口移动到先前移动的窗口右侧的新容器中。 (当移动到现有容器 i3 时,始终将移动的窗口放置在该容器中最后一个活动的窗口的右侧或下方(取决于布局)。)
  6. 2。两个窗口,每个窗口位于垂直分割容器内,而后者又位于水平分割容器内:

    命令序列与前一个命令序列非常相似。您只需使用splitv代替splithright|left代替down|up

         layout splitv
         move right
         layout splitv
         focus left
         move right
    

    或者一气呵成:

         layout splitv, move right, layout splitv, focus left, move right
    

    两个选项的序列仅是示例。根据您的workspace_layoutdefault_orientation,可能没有必要明确调用layout splitv|splith。也可以将窗口向左或向上移动而不是向右或向下移动。

    注意:由于嵌套特性,在某些情况下,两个内部容器之间的导航可能看起来与直觉相反。当焦点移动到当前容器之外时, i3 将始终将最后一个活动窗口聚焦在另一个容器中,该容器不一定是当前窗口旁边的窗口。例如:

    +-----------+-----------+
    |+---------+|+---------+|
    ||         |||         ||
    ||    1*   |||    3    ||
    ||         |||         ||
    |+---------+|+---------+|
    ||         |||         ||
    ||    2    |||    4+   ||
    ||         |||         ||
    |+---------+|+---------+|
    +-----------+-----------+
    

    这是水平分割容器内的两个垂直分割容器。第一个容器的窗口为 1 2 ,其中 1 是当前关注的窗口。第二个容器的窗口为 3 4 4 是上次关注该容器窗口时处于活动状态的容器。在这种情况下,focus right将关注窗口 4 窗口 3 ,正如人们所期望的那样。

答案 1 :(得分:0)

你只需要两个基本的键组合(默认值, mod left alt 键):

mod + 方向键:在窗口上移动活动焦点

mod + shift + 方向键:移动焦点窗口本身

其中:

方向键 j k l ; 或箭头;

示例:

mod + h mod + 向左箭头将活动焦点移动到左侧窗口

mod + shift + k mod + shift + 向下箭头向下移动焦点窗口

只需使用 mod + 输入打开任意数量的终端,然后尝试使用上面的快捷方式在当前工作区中移动它们。