永远在最前面 window 并保持专注,在 AwesomeWM 上

Always-on-top window and keeping focus, on AwesomeWM

我是 运行 一个创建和关闭几个 windows 的脚本,因此,我在我的 rc.lua 中添加了一种方法来保持 window 我工作的地方总在最前面:

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

问题 is:when 创建了新的 window,我失去了焦点,它传递给了新的 window。

有没有办法让之前的切换不仅让 window 保持在顶部,而且在我再次切换它之前一直保持焦点?

假设 this awesomerc.lua file are in your user's awesomerc.lua file and the awful.client.focus.filter used in that assignment is the one from this file 的第 357-375 行中的 awful.rules.rules 赋值,那么你应该可以做这样的事情。

在 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)