StackOverflow被表示为AwesomeWM社区支持的地方。
我希望在我的AwesomeWM配置中有一个专用的标签,其中只有三个特定的应用程序将始终运行。我使用示例配置创建了新标记,并使用awful.rules.rules
过滤应用程序并将它们放入标记中。
在理解AwesomeWM布局引擎的工作原理时,我遇到了一些麻烦。我希望实现以下目标:三个固定宽度的静态列,每个应用程序位于自己的列中,当焦点改变时不发生重新排列,当任何应用程序不运行时,其保留位置保持为空。
___________________
| | | |
| | | |
| A | B | C |
| | | |
| | | |
___________________
在这种情况下如何指定布局?我应该写我自己的吗?我可以使用灵活的布局和为客户指定位置吗?推荐的实现目标的正确方法是什么?
发布于 2018-05-28 19:44:10
我在理解AwesomeWM布局引擎的真正工作方式时遇到了麻烦
布局是包含两个条目的表格:
name
是一个字符串,其中包含layoutarrange
的名称。调用该函数是为了排列可见的客户端因此,您实际上只需要编写一个arrange
函数,以您想要的方式安排客户端。此函数的参数是awful.layout.parameters
的结果,但您真正需要关心的是
.clients
是应为arranged..workarea
的客户端的列表是clients..geometries
的可用空间是您的布局回写客户端的分配几何的位置我建议阅读一些现有的布局,看看它们是如何工作的。例如,max
布局非常简单:
function(p)
for _, c in pairs(p.clients) do
p.geometries[c] = {
x = p.workarea.x,
y = p.workarea.y,
width = p.workarea.width,
height = p.workarea.height
}
end
end
我应该写我自己的吗?我可以使用灵活的布局和为客户指定位置吗?
好的,上面就是写自有布局的方法。或者,也可以使客户端浮动,并通过awful.rules
为其指定几何体。只要properties = { floating = true, geometry = { x = 42, y = 42, width = 42, height = 42 } }
就行了。然而,这样你可能会意外地移动你的一个客户。
推荐的实现目标的正确方法是什么?
选一个。没有“只有一个正确的答案”。
https://stackoverflow.com/questions/50483877
复制相似问题