20

编辑:这个问题/答案来自 2013 年,当时 Awesome 仍在 3.4/3.5 版上,自那时以来发生了很多变化,因为 Awesome 在 4+ 版中被重写,现在您在这里看到的可能有所不同。我添加此免责声明是因为我看到了针对此问题的新回复/观点。

我正在尝试映射类似于 tmux 的很棒的 wm 快捷方式。我喜欢 tmux 的 alt+arrow 组合来调整任一维度的窗格大小。我知道 awesome 的awful.tag.incmwfact()功能将根据布局垂直或水平工作。但是,我还想要一个在相同布局下在另一个维度上调整大小的函数。这对于垂直最大化一个较小的窗口而不侵入屏幕另一半上最大窗口的空间非常有用:

+----------+----------+
|          |          |
|          |     ^    |
|          +-----|----+
|          |     v    |
|          |          |
+----------+----------+

我也找到了这个awful.client.moveresize()功能,但它似乎只适用于浮动布局。我知道这是可行的,因为我可以用鼠标调整窗口大小,即使在平铺布局中也是如此。我只是不知道鼠标挂钩到哪个功能。

4

4 回答 4

25

想通了,为其他需要此功能的人发布答案:

awful.key({ modkey, "Mod1"    }, "Right",     function () awful.tag.incmwfact( 0.01)    end),
awful.key({ modkey, "Mod1"    }, "Left",     function () awful.tag.incmwfact(-0.01)    end),
awful.key({ modkey, "Mod1"    }, "Down",     function () awful.client.incwfact( 0.01)    end),
awful.key({ modkey, "Mod1"    }, "Up",     function () awful.client.incwfact(-0.01)    end),

基本上,而不是标签的incmwfact,使用客户端自己的incwfact功能。此外,这仅适用于平铺布局,在浮动时会导致错误气泡。

于 2013-07-18T13:54:22.497 回答
5

使用 Awesome 版本 4,将以下内容放在clientkeys.rc.lua

用+ + / / /移动窗口modshift

awful.key({ modkey, "Shift"   }, "Down",   function (c) c:relative_move(  0,  20,   0,   0) end),
awful.key({ modkey, "Shift"   }, "Up",     function (c) c:relative_move(  0, -20,   0,   0) end),
awful.key({ modkey, "Shift"   }, "Left",   function (c) c:relative_move(-20,   0,   0,   0) end),
awful.key({ modkey, "Shift"   }, "Right",  function (c) c:relative_move( 20,   0,   0,   0) end),

使用+ + /调整窗口大小modshiftPgUpPgDn

awful.key({ modkey, "Shift"   }, "Next",   function (c) c:relative_move( 20,  20, -40, -40) end),
awful.key({ modkey, "Shift"   }, "Prior",  function (c) c:relative_move(-20, -20,  40,  40) end),
于 2017-10-22T07:48:44.440 回答
3

Modkey + h 或 l 调整平铺大小。

于 2018-03-06T14:43:47.770 回答
1

This is an old question but can be helpful for newbies in awesome. To resize windows you can press:

alt + shift + h

or

alt + shift + l

于 2021-07-18T18:06:47.470 回答