我正在尝试将 naughty.notify 通知从矩形重塑为带圆角的矩形。这里有人告诉我,shape 参数需要一个gears.shape
参数——所以我查找这里看看如何使用gears.shape.rounded_rect
。每个示例都显示类似这样的内容:shape.rounded_rect(cr, 70, 70, 10
,但我能找到的唯一提供有关cr
“cr:A cairo content”的信息的地方。
什么是 cairo 内容?
这是我正在使用的代码:
naughty.notify({ text = "Monitor Test", ontop = true, position = "bottom_left",
shape = gears.shape.rounded_rect(cr, 70, 20, 5),
opacity = .95})
当然,我重新启动 Awesome 时会出错,因为cr
什么都没有。我尝试了从数字到 cr:fill 的所有方法,但我不知道应该放在那里。
有没有人?
答案1
Cairo 是 Awesome 使用的 2D 图形库。你可能想看看这里
答案2
我搜索了好久,却没找到一个可以轻松使用的答案。ploth 的链接非常值得一读。简单的答案是,只要你能设置shape
,你就可以传递一个函数并调用你想要的形状。你传递给的函数shape
将接收(cr, width, height)
,你可以将它们传递给你想要的形状。例如:
wibox.container.background(widget, "#000", function(cr, width, height)
gears.shape.partially_rounded_rect(cr, width, height, false, true, true, false, 30)
end)
希望这可以帮助。
答案3
答案是,定义这样的函数,我将用其cr
作为占位符:
例子:
local new_shape = function(cr, width, height)
gears.shape.rounded_rect(cr, width, height, 2)
end
然后只需用作new_shape
形状即可。(cr
在上面的函数签名第 1 行中定义,因此它已经在第 2 行中定义,并且在调用时将由回调填充正确的值new_shape
。您无需rc.lua
自己定义它,只需将其留空即可。)
像这样使用 new_shape:
local noti = naughty.notify {
position = "top_middle",
height = 20,
width = 70,
timeout = 1,
shape = new_shape, --SEE HERE
bg="#333333",
fg="#ffffff",
text = "TEST",
}