awesome-wm - awesome - i3 window manager
Cambiar el tamaƱo de la ventana verticalmente (3)
EDICIÓN: esta pregunta / respuesta es de 2013, cuando Awesome todavía estaba en la versión 3.4 / 3.5, muchas cosas han cambiado desde entonces, ya que Awesome fue reescrito en la versión 4+ y lo que ve aquí puede ser diferente ahora. Estoy agregando este descargo de responsabilidad porque estoy viendo nuevas respuestas / vistas para esta pregunta.
Estoy tratando de mapear mis atajos wm impresionantes similares a tmux. Me gusta la combinación alt + flecha de tmux para cambiar el tamaño del panel en cualquier dimensión. Soy consciente de que la función awesome''s awful.tag.incmwfact()
funcionará vertical u horizontalmente dependiendo del diseño. Sin embargo, también me gustaría una función que cambia de tamaño en la otra dimensión bajo el mismo diseño también. Esto sería útil para maximizar una de las ventanas más pequeñas verticalmente sin invadir el espacio de la ventana más grande en la otra mitad de la pantalla:
+----------+----------+
| | |
| | ^ |
| +-----|----+
| | v |
| | |
+----------+----------+
También encontré la función awful.client.moveresize()
, pero parece que solo funciona en un diseño flotante. Sé que esto es factible ya que puedo cambiar el tamaño de las ventanas con un mouse, incluso en diseños de mosaico. Simplemente no sé en qué función se engancha el ratón.
Con la impresionante versión 4, coloque lo siguiente en la sección de rc.lua
de rc.lua
de rc.lua
.
Para mover ventanas con 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),
Para redimensionar ventanas con 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),
Lo descubrí, publicando la respuesta para otros que también necesitan esta funcionalidad:
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),
Básicamente, en lugar de incmwfact
de la etiqueta, use la propia función incwfact
del cliente. Además, esto solo funcionará en diseños de mosaico, en flotante causará una burbuja de error.
Modkey + h o l cambia el tamaño del mosaico.