Как настроить awesome, чтобы запустить новое приложение с двумя окнами, выровненными так:
----------------
|xxxxxxxxxx####|
|xxxxxxxxxx####|
|xxxxxxxxxx####|
|xxxxxxxxxx####|
----------------
где "x" - это, например, диалоговое окно в pidgin, а "#" - это окно списка контактов.
В общем, я хотел бы указать ширину правого окна и поместить его с правой стороны (максимально вертикально), а другое окно должно занимать оставшееся пространство.
У меня уже есть некоторый почти рабочий код, но он ведет себя странно (он настраивает все правильно для pidgin, но он не для gimp и v_sim, а изредка, без каких-либо известных мне причин, он изменяет геометрию левого окна. Или когда я запускаю приложение (v_sim), он не помещается в правильные позиции, и он не максимизируется по вертикали, но когда я снова перезапускаю awesome, он помещает его правильно. Поэтому я предполагаю, что это приложение что-то изменит, когда оно запустится.
Вот код, который я использую сейчас:
awful.rules.rules = {
...
{ rule = { class = "Pidgin", role = "buddy_list" },
properties = {
floating = true
},
callback = function( c )
local w_area = screen[ c.screen ].workarea
local winwidth = 340
c:struts( { right = winwidth } )
c:geometry( { x = w_area.width - winwidth, width = winwidth, y = w_area.y, height = w_area.height } )
end
},
{ rule = { class = "Pidgin", role = "conversation" },
properties = {
floating = true,
x = 0,
maximized_vertical = true,
maximized_horizontal = true
},
callback = awful.client.setslave
},
...
}