如何配置真棒,所以它会启动新的应用程序,两个窗口对齐,如下所示:
----------------
|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
},
...
}
最佳答案
我遇到了同样的问题,但我想要左边有一个大的 Firefox 窗口,右边有一个小终端。为了让它工作,我为此专门使用了一个标签,并使用了一个 tile-left 布局并调整了宽度因子(即通常由 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
将某些应用程序定向到标签。属性(property)。{
rule = { class = "Firefox" },
properties = { tag = browse }
},
{
rule = { class = "URxvt", instance = "browse" },
properties = { tag = browse },
},
然后我创建了一个绑定(bind)来打开这些应用程序,如下所示。
-- 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 中为特定应用程序设置窗口布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120399/