Оставлю свой вариант, вдруг, кому пригодится. Долго искал, пробовал tilda, yakuake, guake, alacritty и просто куски кода... Раньше пользовался tilda в FVWM, но с Awesome WM оно не стыкуется...
Решение в виде коммита, без доп. библиотек, кому нужно, думаю, прикрутит себе. А может кто подскажет, что я идиот и было решение проще. :)
коммит, дубль, скрин.jpg // сначала сделал автоперемещение за мышью / по хоткеям при смене screen/экрана, но потом понял, что неудобно, оставил минимум. После максимизации окна, перемещения/закрытия оно сохраняет размер.
local mywibox_height = 14.5
local function update_quake_console(cli)
if cli == nil then
for c in awful.client.iterate(function (c) return c.instance == "QuakeConsole" end)
do
cli = c
break
end
end
if cli == nil then return end
if (not cli.hidden) then
cli.floating = true
if cli.maximized then
cli.border_width = 0
else
cli.border_width = 2
cli.width=awful.screen.focused().workarea.width * 0.96
cli.height=awful.screen.focused().workarea.height * 0.7
cli.x = awful.screen.focused().workarea.width * 0.02
cli.y = awful.screen.focused().workarea.height * 0.3 + mywibox_height
end
cli.ontop = true
cli:move_to_screen(awful.screen.focused ())
cli:tags({awful.screen.focused().selected_tag})
cli.skip_taskbar = true
client.focus = cli
end
end
-- Quake Console --
awful.key({ modkey }, "grave",
function ()
os.execute ("pgrep -O1 -f QuakeConsole || urxvt -name QuakeConsole -title QuakeConsole &")
for c in awful.client.iterate(function (c) return c.instance == "QuakeConsole" end)
do c.hidden = not c.hidden end
update_quake_console(c)
end,
{description = "toggle quake console", group = "quake"}
)
client.connect_signal("manage", function (c)
...
if c.name == "QuakeConsole" then update_quake_console(c) end
UP1. 3 терминала по ~,-,+: скрин, rc.lua, rc.lua дубль. Размеры окон сохраняются после hide/fullscreen/maximize.