在Lua中,使用Awesome Wm显示一个带超时的小部件。

当按下一组键时,我想在 Awesome 中显示一个 wibox,并且希望这个 wibox 在 3 秒钟后消失。我不想使用 naughty 或 popup,因为 wibox 里面会有小部件。

我已经有了一个解决方案,但我不知道这个解决方案是否是标准的,或者还有没有其他方法来做到这一点:

function taglist_wibox_show_hide(box)
  local show = timer({ timeout = 0 })
  show:connect_signal("timeout", function ()
                                      print("show")
                                      box.visible=true
                                      show:stop() end)
  show:start()
  local hide = timer({ timeout = 2 })
  hide:connect_signal("timeout", function ()
                                       print("hide")
                                       box.visible=false
                                       hide:stop() end)
  hide:start()
end

然后我添加了这个快捷键:

awful.key({ modkey, "Control" },"y",function()
                                     taglist_wibox_show_hide(box[mouse.screen])
                                    end),
点赞
用户4406897
用户4406897

据我所知,没有其他方法。然而,我认为你的第一个计时器不是必要的。

function taglist_wibox_show_hide(box)

  print("show")
  box.visible=true

  local hide = timer({ timeout = 2 })
  hide:connect_signal("timeout", function ()
                                       print("hide")
                                       box.visible=false
                                       hide:stop() end)
  hide:start()
end

应该也能很好地工作。

干杯

2014-12-30 23:17:33