7

我正在运行一个创建和关闭多个窗口的脚本,因此,我在我的 rc.lua 中添加了一种方法来保持我正在工作的窗口始终位于顶部:

awful.key({ modkey, "Control" }, "space",
function(c)
  awful.client.floating.toggle()
  c.ontop = not c.ontop
end),

问题是:创建新窗口时,我失去了焦点,焦点传递到了新窗口。

有没有办法使之前的切换不仅使窗口保持在顶部,而且在我再次切换之前保持焦点?

4

1 回答 1

6

假设这个 awesomerc.lua 文件awful.rules.rules的第 357-375 行的分配在您的用户文件中,并且在该分配中使用的是来自该文件的分配,那么您应该能够执行类似的操作。awesomerc.luaawful.client.focus.filter

在 rc 文件中的某处定义自定义焦点过滤器函数。

function custom_focus_filter(c)
    if global_focus_disable then
        return nil
    end
    return awful.client.focus.filter(c)
end

然后在规则分配中使用该自定义过滤器功能代替原始过滤器功能。

awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
      properties = { ....
                     focus = custom_focus_filter,
                     .... } },

然后您的切换功能只需要根据需要设置和取消设置全局。

awful.key({ modkey, "Shift" }, "f", function ()
    global_focus_disable = not global_focus_disable
end)
于 2015-04-19T15:48:24.080 回答