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

我正在尝试将一个函数添加到我的 rc.lua 中,它可以隐藏(或最小化)AwesomeWM中所有标签中的所有客户端,就像Windows的Aero Peek或GNOME中的 'Show Desktop' extension一样(如下图所示):

enter image description here

enter image description here

基本上,我正在寻找一个Lua代码片段,它应该看起来像这样:

awful.key({ modkey }, "l",
                  function ()
                     -- 对于AwesomeWM中的每个客户端...
                     myscreen.client.visible = false,
                  end
end,

请注意,这只是一个假设,此代码不起作用。它只是我最初认为答案可能是什么的轮廓,仅用于说明目的。

技术信息:

awesome v4.0-170-g6c24848-dirty (更坚韧、更好、更快、更强)
 • 编译时使用的 Lua 5.3.3 (运行时使用 Lua 5.3)
 • D-Bus 支持: ✔
 • execinfo 支持: ✔
 • xcb-randr 版本: 1.5
 • LGI 版本: 0.9.2
点赞
用户1672598
用户1672598

一些变种:

mouse.screen.selected_tag.selected = false

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

相关的API文档:

2017-12-03 05:59:01
用户292788
用户292788

这会将 super+a 绑定到查看所有标签,super+d 绑定到查看无标签:

globalkeys = awful.util.table.join( -- 供参考
...
awful.key({ modkey,           }, "a",      function ()
                                              local tags = awful.screen.focused().tags
                                              for i = 1, 9 do
                                                tags[i].selected = true
                                              end
                                            end,
          {description="显示所有标签", group="标签"}),
awful.key({ modkey,           }, "d",      function ()
                                              local tags = awful.screen.focused().tags
                                              for i = 1, 9 do
                                                tags[i].selected = false
                                              end
                                            end,
          {description="显示无标签", group="标签"}),
...
2018-08-11 16:47:49