如何进行出色的配置,以便它以两个对齐的窗口启动新应用程序,如下所示:
----------------
|xxxxxxxxxx####|
|xxxxxxxxxx####|
|xxxxxxxxxx####|
|xxxxxxxxxx####|
----------------
例如,“ x”是在pidgin中的对话窗口,而“#”是好友列表窗口。
通常,我想指定右窗口的宽度并将其放在右侧(垂直最大),而另一个窗口应占用剩余空间。
我已经有一些几乎可以正常工作的代码,但是它的行为很奇怪(它为pidgin设置了所有正确的东西,但不适用于gimp和v_sim,有时我不知道有什么原因会改变左窗口的几何形状。或者当我启动应用程序(v_sim),它没有放置在正确的位置,也没有垂直最大化,但是当我重新启动时,它正确地放置了它,所以我猜想这个应用程序在启动时会有所改变。
这是我现在使用的代码:
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
},
...
}
最佳答案
我遇到了完全相同的问题,但是我想在左侧有一个大型Firefox窗口,在右侧有一个小终端。为了使其正常工作,我为此专用了一个标签,该标签具有左图块的布局并调整了宽度因子(即通常由CTRL-L执行的操作)。
将以下内容添加到rc.lua的末尾,其中yourtag是您要在其中放置这些窗口的标签。 0.15值可以根据您的口味进行调整。
awful.tag.viewonly(yourtag)
awful.tag.incmwfact(0.15, yourtage)
另外,在右侧想要的窗口上使用
awful.client.setslave
可以确保它们不会被切换。{
rule = { class = "URxvt" },
callback = awful.client.setslave
},
您也可以使用
tag
属性将某些应用程序定向到标签。{
rule = { class = "Firefox" },
properties = { tag = browse }
},
{
rule = { class = "URxvt", instance = "browse" },
properties = { tag = browse },
},
然后,我创建了一个绑定,如下所示打开这些应用程序。
-- Custom programs
awful.key({ modkey, "Shift" }, "b", function()
awful.tag.viewonly(browse)
awful.util.spawn_with_shell("urxvt -name browse -e newsbeuter")
awful.util.spawn("firefox")
end)
这是最终结果:
关于awesome-wm - 在Awesome-WM中为特定应用程序设置Windows布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5120399/