具有静态布局的 AwesomeWM 标签
AwesomeWM tag with static layout
Whosebug 表示为 AwesomeWM 社区支持的地方。
我想在我的 AwesomeWM 配置中有一个专用标签,其中只有三个特定应用程序始终 运行。我设法使用示例配置创建了新标签,并且我设法使用 awful.rules.rules
归档应用程序并将它们放入标签中。
我在理解 AwesomeWM 布局引擎的真正工作原理时遇到了麻烦。我想实现以下:固定宽度的三个静态列,每个应用程序都位于它自己的列中,当焦点发生变化时不会发生重新排列,当任何应用程序不是运行时,它的预留位置保持为空.
___________________
| | | |
| | | |
| A | B | C |
| | | |
| | | |
___________________
在这种情况下如何指定布局?我应该自己写一个吗?我可以使用灵活的布局并为客户指定位置吗?实现我的目标的推荐正确方法是什么?
I am experiencing troubles in understanding how AwesomeWM layout engine really works
一个布局是一个 table,有两个条目:
name
是一个包含布局名称的字符串
arrange
是一个调用来排列可见客户端的函数
所以你真的只需要编写一个 arrange
函数来按照你想要的方式排列客户端。这个函数的参数是awful.layout.parameters
的结果,但是你真的需要关心
.clients
是需要安排的客户名单
.workarea
是可供客户使用的space。
.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
Should I write my own one? Can I use flexible layout and specify position for client?
嗯,以上就是自己写布局的做法。或者,您也可以让您的客户浮动并通过 awful.rules
为他们分配几何图形。只要有properties = { floating = true, geometry = { x = 42, y = 42, width = 42, height = 42 } }
。但是,有了这个,您可以例如不小心动了你的一位客户。
What is the recommended correct way to achieve my goal?
选一个。没有"just one correct answer".
Whosebug 表示为 AwesomeWM 社区支持的地方。
我想在我的 AwesomeWM 配置中有一个专用标签,其中只有三个特定应用程序始终 运行。我设法使用示例配置创建了新标签,并且我设法使用 awful.rules.rules
归档应用程序并将它们放入标签中。
我在理解 AwesomeWM 布局引擎的真正工作原理时遇到了麻烦。我想实现以下:固定宽度的三个静态列,每个应用程序都位于它自己的列中,当焦点发生变化时不会发生重新排列,当任何应用程序不是运行时,它的预留位置保持为空.
___________________
| | | |
| | | |
| A | B | C |
| | | |
| | | |
___________________
在这种情况下如何指定布局?我应该自己写一个吗?我可以使用灵活的布局并为客户指定位置吗?实现我的目标的推荐正确方法是什么?
I am experiencing troubles in understanding how AwesomeWM layout engine really works
一个布局是一个 table,有两个条目:
name
是一个包含布局名称的字符串arrange
是一个调用来排列可见客户端的函数
所以你真的只需要编写一个 arrange
函数来按照你想要的方式排列客户端。这个函数的参数是awful.layout.parameters
的结果,但是你真的需要关心
.clients
是需要安排的客户名单.workarea
是可供客户使用的space。.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
Should I write my own one? Can I use flexible layout and specify position for client?
嗯,以上就是自己写布局的做法。或者,您也可以让您的客户浮动并通过 awful.rules
为他们分配几何图形。只要有properties = { floating = true, geometry = { x = 42, y = 42, width = 42, height = 42 } }
。但是,有了这个,您可以例如不小心动了你的一位客户。
What is the recommended correct way to achieve my goal?
选一个。没有"just one correct answer".