我想在 AwesomeWM 的第二个屏幕上打开一个程序,但前提是第二个屏幕可用

I would like to open one program on the second screen in AwesomeWM, but only if the second screen is available

我在 rc.lua 中进行了更改,以始终在屏幕 2 上打开 Chromium:

awful.rules.rules = {
    -- many other rules here...

    -- Set Chromium to always map on screen "2"
    { rule = { class = "Chromium" },
      properties = { screen = 2 } },
}

但是,当我没有连接外接显示器时,出现错误 ("screen expected, got nil")。如果屏幕 2 不可用,如何修改此规则以使用屏幕 1?

以下假设您只有两个或一个屏幕。当有更多的屏幕时,它会做错事,但它应该能传达这个想法:

properties = { screen = function() return screen.count() end }

awful.rules中的所有(?)属性也可以指定为回调函数。此函数甚至获取客户端(以及收集属性的 table?)作为参数(但这在本例中未使用)。