我正在运行一个创建和关闭多个窗口的脚本,因此,我在 rc.lua 中添加了一种方法,使我正在工作的窗口始终位于顶部:
awful.key({ modkey, "Control" }, "space",
function(c)
awful.client.floating.toggle()
c.ontop = not c.ontop
end),
问题是:创建新窗口时,我失去了焦点,焦点传递到了新窗口。
有没有办法让之前的切换不仅使窗口保持在顶部,而且还保持焦点,直到我再次切换它?
最佳答案
假设 this awesomerc.lua file 第 357-375 行的 awful.rules.rules
赋值位于您用户的 awesomerc.lua
文件中,并且该分配中使用的 awful.client.focus.filter
是来自 this file 的文件。那么你应该能够做这样的事情。
在 rc 文件中的某个位置定义自定义焦点过滤器函数。
function custom_focus_filter(c)
if global_focus_disable then
return nil
end
return awful.client.focus.filter(c)
end
然后在规则分配中使用该自定义过滤器函数来代替原始过滤器函数。
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
properties = { ....
focus = custom_focus_filter,
.... } },
然后您的切换函数只需要根据需要设置和取消设置全局即可。
awful.key({ modkey, "Shift" }, "f", function ()
global_focus_disable = not global_focus_disable
end)
关于lua - 始终在最上面的窗口并保持焦点,在 AwesomeWM 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29681677/