超棒的 WM:我怎样才能编写规则让窗口浮动在鼠标下方?

超棒的 WM:我怎样才能编写规则让窗口浮动在鼠标下方?

我正在使用剪贴板管理器,我想看到当我按下快捷键时它出现在鼠标下方。

我已经为 awesome wm 编写了不同的规则,我知道如何聚焦好的客户端,如何使其浮动,如何使其出现在固定位置......

我在很棒的常见问题解答

但是,我不知道如何使用这个技巧来创建规则。

有什么提示吗?

答案1

供全球使用关键字

在 rc.lua 的末尾有一个函数client.add_signal(...,在这个函数里你必须设置 FAQ 的最后一行,以便只为特定的应用程序启用它,我在 rc.lua 的开头包含了一个新变量`

local undermouse = false

常见问题解答部分:

client.add_signal("manage", function (c, startup)
    -- Add a titlebar
    -- awful.titlebar.add(c, { modkey = modkey })

    -- Enable sloppy focus
    c:add_signal("mouse::enter", function(c)
        if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
        and awful.client.focus.filter(c) then
            client.focus = c
        end
    end)

    if not startup then
        -- Set the windows at the slave,
        -- i.e. put it at the end of others instead of setting it master.
        -- awful.client.setslave(c)

        -- Put windows in a smart way, only if they does not set an initial position.
        if not c.size_hints.user_position and not c.size_hints.program_position then
            awful.placement.no_overlap(c)
            awful.placement.no_offscreen(c)
=>          if underMouse == true then
=>              awful.placement.under_mouse(c)
=>              underMouse = false
=>          end
        end
    end
end)

为了使用此选项,我为计算器键创建了下一个代码:

globalkeys = awful.util.table.join(
    awful.key({                   }, "#148", function () 
        underMouse = true 
        awful.util.spawn(calculator) 
    end),
)

原则上 1 次申请

正如您自己在测试我的解决方案后发现的那样,但添加到此答案中以供其他人使用:

{ rule = { class = "Gnome-calculator",  },
    properties = { 
        floating = true,
        callback = function(c) awful.placement.under_mouse(c) end,
    },
},

答案2

非常感谢您的回答,以及该功能的亮点awful.placement.under_mouse(c)

最后,编写规则非常简单:

 { rule = { class = "Gnome-calculator",  },
    properties = { 
        floating = true,
        callback = function(c) awful.placement.under_mouse(c) end,
    },
},

相关内容