awesome размеры окон

не пойму, как в awesome сделать, чтобы при запуске приложения расставлялись в нужных частях экрана? к примеру, так:

а не так:

{ rule = { class = "Speedcrunch"             }, properties = { tag = tags[1][5], width = 50, floating = false }   },
куда эту width ставить?
Для плавающего окна qemu я сделал вот так


{
    rule = { class = "qemu-system-x86_64" },
    properties = { floating = true, maximized_horizontal = false, maximized_vertical = false, ontop = true, geometry = {x = 1100, y = 500} }
 }
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
перечитал вики. вроде получилось... по второму варианту...

всему виной моя невнимательность...
tags = {
...
 for s = 1, screen.count() do
     -- Each screen has its own tag table.
     tags[s] = awful.tag(tags.names, s, tags.layout)
               awful.tag.setncol(2, tags[s][4])
               awful.tag.setnmaster (1, tags[s][4])
	       awful.tag.setmwfact (0.15, tags[s][4])
 end
...
--rules
{ rule_any = { class = { "libreoffice", "libreoffice-startcenter" } }, except = { instance = "main" },
                                    callback = awful.client.setslave, properties = { tag = tags[1][4] } },
{ rule_any = { class = { "libreoffice", "libreoffice-writer"      } }, except = { instance = "main" },
                                    callback = awful.client.setslave, properties = { tag = tags[1][4] } },
{ rule_any = { class = { "libreoffice", "libreoffice-calc"        } }, except = { instance = "main" },
                                    callback = awful.client.setslave, properties = { tag = tags[1][4] } },
{ rule_any = { class = { "speedcrunch", "Speedcrunch"             } }, except = { instance = "main" },
                                    callback = awful.client.setmaster, properties = { tag = tags[1][4] } },
правда не уверен, что сделал все верно...
но так или иначе, половина вопроса решена. осталось решить, как заставить не трогать правое окно, но добавлять др. приложения в оставшийся большой участок...
в идеале, как-то так нужно:
не. все равно не получается заставить осом отображать окна, чтобы выстраивались так:

но только при запуске/разворачивании соответствующего окна определенного приложения
и чтобы не было так:

и чтобы при попытке изменения окон не получалась такая фигня...
"Исходное" положение такое:
разделил приложения по зонам в лэйауте на master и slave таким макаром:
for s = 1, screen.count() do
	tags[s] = awful.tag(tags.names, s, tags.layout)
	  awful.tag.setncol(3, tags[s][6])
	  awful.tag.setnmaster (1, tags[s][6])
	  awful.tag.setmwfact (0.15, tags[s][6])
end
...
...
{ rule = { instance = "speedcrunch" },
  except = { instance = "main" },
  callback = awful.client.setnmaster,
  properties = { tag = tags[1][6] }
},

{ rule = { instance = "libreoffice" },
  callback = awful.client.setslave,
  properties =
	{
	tag = tags[1][6],
	maximized_horizontal = false,
	maximized_vertical = false
	}
},
...
...
пусть согласно схеме зеленым будет libreoffice, а оранжевым -- speedcrunch:

все замечательно. но при сворачивании speedcrunch, оставшиеся окна libreoffice делят лэйаут не равномерно, а занимая соответствующие координаты областей master и slave:

можно ли сделать, чтобы при сворачивании speedcrunch, приложения на лэйауте выстраивались так:

а при разворачивании speedcrunch, соответственно, окна выстраивались в исходном варианте?:
 
Зарегистрироваться или войдите чтобы оставить сообщение.