始终在顶部窗口并保持专注,关注AwesomeWM



我正在运行一个脚本,该脚本创建并关闭多个窗口,因此,我在rc.lua中添加了一种方法,使我工作的窗口始终处于顶部:

awful.key({ modkey, "Control" }, "space",
function(c)
awful.client.floating.toggle()
c.ontop = not c.ontop
end),

问题是:当创建新窗口时,我会失去焦点,焦点会转移到新窗口。

有没有办法让之前的切换不仅保持窗口在顶部,而且在我再次切换之前保持焦点?

假设这个awesomerc.lua文件第357-375行的awful.rules.rules赋值在用户的awesomerc.lua文件中,并且该赋值中使用的awful.client.focus.filter就是这个文件中的那个,那么您应该能够执行类似的操作。

在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)

最新更新