Function 如何在AwesomeWM中切换标题栏?
我试图通过以下方式修改我的rc.lua文件:当我按下Mod4+R,AwesomeWM keybinding来运行命令时,我希望Rofi出现,模糊我的壁纸并隐藏屏幕上的所有内容。我只想看到模糊墙纸上的Rofi提示 为了实现这一点,我在conf文件中有以下代码。我将AwesomeWM v3.5.9(强大的Ravendark)与Lua 5.3.3结合使用:Function 如何在AwesomeWM中切换标题栏?,function,lua,window-managers,awesome-wm,Function,Lua,Window Managers,Awesome Wm,我试图通过以下方式修改我的rc.lua文件:当我按下Mod4+R,AwesomeWM keybinding来运行命令时,我希望Rofi出现,模糊我的壁纸并隐藏屏幕上的所有内容。我只想看到模糊墙纸上的Rofi提示 为了实现这一点,我在conf文件中有以下代码。我将AwesomeWM v3.5.9(强大的Ravendark)与Lua 5.3.3结合使用: --From PROmpt COMmand: procom = "rofi -show run" awful.key({ modkey }, "
--From PROmpt COMmand:
procom = "rofi -show run"
awful.key({ modkey }, "r", function () awful.util.spawn(procom)
for _,c in ipairs(client.get()) do
if c:isvisible() then
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
else
mywibox[mouse.screen].visible = mywibox[mouse.screen].visible
end
end
end),
重新启动AwesomeWM不会有任何抱怨,但我的接线盒不会消失。如果我将代码更改为一些琐碎的内容(例如,如果mywibox[mouse.screen]作为条件语句可见,),小部件将消失,但即使我退出Rofi,也会留下一个空的黑条,只有在再次调用Rofi时才会返回其初始状态(这是由我最初的陈述引起的,这就是为什么我认为它微不足道的原因)。对于新问题:
您的代码片段不起作用,因为您检查客户端是否可见,然后切换一个随机接线盒(好的,不太随机)。如果您为每个客户端执行此操作,接线盒将显示和隐藏多次。因此,您最终会发生约50%的变化,即恢复到原始状态,约50%的变化为没有接线盒,无法恢复
我将进一步阐述我先前回答的最后一部分,因为这是现在的问题
你想要什么:
- rofi启动时隐藏wibar(
)mywibox
- rofi启动时隐藏所有客户端
- 当rofi存在时,恢复wibar
- 可能会再次显示标签(或不显示,由您决定)
- 屏幕顶部是一个可怕的wibox(现在改名为wibar)
- wibox是屏幕上一个随机自由浮动的小部件。wibar是一种wibox,它的作用类似于一个面板
- 客户端是屏幕上的一个窗口
- 标记类似于虚拟工作区
类
(使用xprop
)。一旦您知道了这一点,您可以通过只关心“rofi退出时执行事件”来简化问题。代码如下:
client.connect_signal("unmanage", function(c)
if c.class == "whatever_its_class_is" then
-- watch out of you have multiple screens, this may be too simplified.
mywibox[mouse.screen].visible = true
-- show the first tag, change this to what you prefer
awful.tag.gettags(mouse.screen)[1].selected = true
end
end)
问题4:
隐藏当前标记的简单方法(为了简单起见,假设您有一个屏幕和一个选定的标记)
隐藏主wibar(假设保留默认名称)
原始答案:(问题已更改)
嗯,c
只是一个变量。在这种情况下,您从未定义过它,所以它是nil
我猜您需要所有当前可见的客户端。若要检查,请使用
您可以使用
for _, c in ipairs(client.get()) do
if c:isvisible() then
-- do something
end
end
如客户文档所示([1])
话虽如此,我看不出描述和问题/代码是如何匹配的。如果你想隐藏所有东西,那么取消选择所有标签并隐藏wibar。搞乱标题栏(客户端顶部的东西)似乎是不必要的
[1] 该链接适用于Awesome 4.0,但在本例中与3.5 API没有太大区别。对于新问题:
您的代码片段不起作用,因为您检查客户端是否可见,然后切换一个随机接线盒(好的,不太随机)。如果您为每个客户端执行此操作,接线盒将显示和隐藏多次。因此,您最终会发生约50%的变化,即恢复到原始状态,约50%的变化为没有接线盒,无法恢复
我将进一步阐述我先前回答的最后一部分,因为这是现在的问题
你想要什么:
- rofi启动时隐藏wibar(
)mywibox
- rofi启动时隐藏所有客户端
- 当rofi存在时,恢复wibar
- 可能会再次显示标签(或不显示,由您决定)
- 屏幕顶部是一个可怕的wibox(现在改名为wibar)
- wibox是屏幕上一个随机自由浮动的小部件。wibar是一种wibox,它的作用类似于一个面板
- 客户端是屏幕上的一个窗口
- 标记类似于虚拟工作区
类
(使用xprop
)。一旦您知道了这一点,您可以通过只关心“rofi退出时执行事件”来简化问题。代码如下:
client.connect_signal("unmanage", function(c)
if c.class == "whatever_its_class_is" then
-- watch out of you have multiple screens, this may be too simplified.
mywibox[mouse.screen].visible = true
-- show the first tag, change this to what you prefer
awful.tag.gettags(mouse.screen)[1].selected = true
end
end)
问题4:
隐藏当前标记的简单方法(为了简化,假设您有一个屏幕和一个选定的标记)
for _, c in ipairs(client.get()) do
if c:isvisible() then
-- do something
end
end
-- Prompt
awful.key({ modkey }, "r",
function ()
myscreen = awful.screen.focused()
commandPrompter = "rofi -show run -normal-window"
blur = "hsetroot -fill /usr/local/share/awesome/themes/modded/back$
unblur = "hsetroot -fill /usr/local/share/awesome/themes/modded/back$
awful.spawn(commandPrompter)
myscreen.mywibox.visible = false
awful.spawn(blur)
end),