在AwesomeWM上,始终在顶部窗口并保持专注

时间:2015-04-16 17:13:59

标签: lua awesome-wm

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

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

问题是:当创建新窗口时,我会失去焦点,这会转移到新窗口。

有没有办法让前一个切换不仅让窗口保持在最顶层,而且还有焦点,直到我再次切换它?

1 个答案:

答案 0 :(得分:3)

假设this awesomerc.lua file的第357-375行的awful.rules.rules作业位于您用户的awesomerc.lua文件中,并且该作业中使用的awful.client.focus.filter就是一个来自this file然后你应该可以做这样的事情。

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