lua - 始终在最上面的窗口并保持焦点,在 AwesomeWM 上

标签 lua awesome-wm

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

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

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

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

最佳答案

假设 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)

关于lua - 始终在最上面的窗口并保持焦点,在 AwesomeWM 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29681677/

相关文章:

lua - 很棒的 wm/恶意小部件 : using a format function throws a bad argument error

arrays - Lua中如何迭代表?

c# - 使用 NLua 的 C# 类实例

c++ - 在 Lua 中绘制 sf::Text 对象时出现段错误

awesome-wm:将 float 客户端移动到屏幕中心

lua - 在深入研究之前,Awesome WM 是否可以做到这一点?

awesome-wm 外接显示器和笔记本电脑

serialization - 为什么不是谷歌 Protocol Buffer 的 lua 实现? lua 已经有更好的解决方案了吗?

C 和 Lua - 将 native 对象实例传递给 native Lua 函数

swing - awesome wm下的intellij-idea