StackOverflow被表示为AwesomeWM社区支持的地方。
我想在我的AwesomeWM配置中有一个专用的标签,其中只有三个特定的应用程序将一直运行。我设法使用示例配置创建新标记,并设法使用awful.rules.rules
来处理应用程序并将它们放入标记中。
我在理解AwesomeWM布局引擎是如何工作方面遇到了麻烦。我想实现以下内容:三个固定宽度的静态列,每个应用程序位于其自己的列,当焦点更改时,不会发生重新排列,当任何应用程序未运行时,其保留的位置将保持为空。
___________________
| | | |
| | | |
| A | B | C |
| | | |
| | | |
___________________
在这种情况下如何指定布局?我应该自己写一个吗?我可以使用灵活的布局并为客户指定位置吗?为实现目标,建议的正确方法是什么?
答案 0 :(得分:2)
我在理解AwesomeWM布局引擎如何运作方面遇到了麻烦
布局是一个包含两个条目的表:
name
是一个字符串,其中包含布局名称arrange
是一个被调用以排列可见客户端的函数所以你真的只需要编写一个arrange
函数来按照你想要的方式安排客户端。这个函数的参数是awful.layout.parameters
的结果,但你真的需要关心
.clients
是应安排的客户列表。.workarea
是客户的可用空间。.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 } }
。但是,你可以这样做,例如意外地移动了你的一个客户。
实现目标的推荐正确方法是什么?
选一个。没有"只有一个正确答案"。