Изменение размера окна по вертикали

Я пытаюсь сопоставить мои удивительные ярлыки wm, похожие на tmux. Мне нравится сочетание tmux alt + arrow для изменения размера панели в любом измерении. Я знаю, что awesome awful.tag.incmwfact() функция будет работать вертикально или горизонтально в зависимости от макета. Тем не менее, мне также нужна функция, которая изменяет размеры в другом измерении под тем же самым макетом. Это было бы полезно для максимизации одного из меньших окон по вертикали без вторжения в пространство самого большого окна на другой половине экрана:

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

Я нашел функцию awful.client.moveresize(), но она работает только в плавающей макете. Я знаю, что это выполнимо, так как я могу изменить размер окон с помощью мыши, даже в макетах. Я просто не знаю, к какой функции подключается мышь.

Ответы

Ответ 1

Подумайте об этом, разместив ответ для других, которым нужна эта функциональность:

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 функцию клиента. Кроме того, это будет работать только в макетах с черепицей, при плавании это вызовет ошибку.

Ответ 2

С помощью Awesome версии 4 поставьте следующее в разделе clientkeys rc.lua.

Чтобы переместить окна с помощью mod + shift + ///

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),

В изменить размер с помощью mod + shift + PgUp/PgDn

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),