【问题标题】:AwesomeWM - open/close window callbackAwesomeWM - 打开/关闭窗口回调
【发布时间】:2018-10-26 15:11:45
【问题描述】:

我有以下想法:

我有 2 个版本的壁纸。一个是原始的,第二个有点模糊。我想在屏幕上打开第一个窗口/程序时更改原始壁纸。关闭最后一个窗口/程序后,将墙纸改回。 另外,当我在标签之间切换时,我想检查是否有任何窗口/程序打开,然后调整壁纸。

我该怎么做?

附: 我用氮气来设置壁纸

AwesomeWM client created/removed callback

【问题讨论】:

    标签: awesome-wm


    【解决方案1】:

    我找到了一种根据可见客户端设置壁纸的方法,但我不知道你的 Nitrogen 调用是什么样的。只需将 naughty.notify 行替换为您的 Nitrogen 调用即可。

    在您的rc.lua 中的某处,您应该可以找到类似这样的内容:

    awful.screen.connect_for_each_screen(function(s)
    

    将以下内容添加到该函数中

    tag.connect_signal("property::selected", function(t)
      if #s.clients > 0 then
        naughty.notify({text = "set blurry wallpaper", timeout = 1})
      else
        naughty.notify({text = "set original wallpaper", timeout = 1})
      end
    end
    )
    

    table.getn 已弃用,但这是旧 lua 版本的解决方案:

    tag.connect_signal("property::selected", function(t)
      if table.getn(s.clients) > 0 then
        naughty.notify({text = "set blurry wallpaper", timeout = 1})
      else
        naughty.notify({text = "set original wallpaper", timeout = 1})
      end
    end
    )
    

    【讨论】:

    • 谢谢。我收到错误:“尝试调用零值(字段'getn')”。还有“先打开/最后关闭”窗口回调怎么样?
    • 哦,你是对的。 table.getn 已弃用。我已经更新了我的答案。
    • 谢谢。我正在研究最终的解决方案。只是一个小问题。你从哪里得到函数中的“s”变量以及“#”到底是做什么的?
    • s 是循环遍历所有屏幕时的当前屏幕(here 是文档)。 #是lua代码,返回数组元素个数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多