如何在AwesomeWM中隐藏所有标签中的所有客户端?

时间:2017-11-30 16:47:14

标签: lua customization window-managers awesome-wm

我正在尝试向我的rc.lua添加一个隐藏(或最小化)AwesomeWM中所有标记中所有客户端的函数,就像在Aero Peek的Windows中或在{{3}的GNOME中一样。 (分别在图像上看到):

'Show Desktop' extension

enter image description here

基本上我正在寻找一个Lua代码片段,我认为它应该是这样的:

awful.key({ modkey }, "l",
                  function ()
                     -- for every client in AwesomeWM...
                     myscreen.client.visible = false,       
                  end
end,

请注意,这只是一个标点,此代码正常工作。它是我最初认为答案的骨架,为澄清目的而添加。

技术信息:

awesome v4.0-170-g6c24848-dirty (Harder, Better, Faster, Stronger)
 • Compiled against Lua 5.3.3 (running with Lua 5.3)
 • D-Bus support: ✔
 • execinfo support: ✔
 • xcb-randr version: 1.5
 • LGI version: 0.9.2

2 个答案:

答案 0 :(得分:2)

以下的一些变体:

mouse.screen.selected_tag.selected = false

会工作吗?如果您选择支持多个选定的代码,那么for _, t in ipairs(mouse.screen.selected_tags) do t.selected = false end会更好。如果您选择在所有屏幕上显示桌面,则还需要循环它们。您还可以保存以前选择的标签,以便在单击按钮两次时恢复它们。

相关API文档:

答案 1 :(得分:0)

这将绑定super + a以查看所有标签,而将super + d绑定为不查看所有标签:

globalkeys = awful.util.table.join( -- for reference
...
awful.key({ modkey,           }, "a",      function ()
                                              local tags = awful.screen.focused().tags
                                              for i = 1, 9 do
                                                tags[i].selected = true
                                              end
                                            end,
          {description="show all tags", group="tag"}),
awful.key({ modkey,           }, "d",      function ()
                                              local tags = awful.screen.focused().tags
                                              for i = 1, 9 do
                                                tags[i].selected = false
                                              end
                                            end,
          {description="show no tags", group="tag"}),
...