我正在嘗試將 naughty.notify 通知從矩形重塑為帶有圓角的矩形。這裡有人告訴我,形狀參數需要一個gears.shape
論證──所以我看這裡看看如何使用gears.shape.rounded_rect
。每個範例都顯示這樣的內容:shape.rounded_rect(cr, 70, 70, 10
,但我能找到的唯一地方提供了有關cr
「cr:開羅內容」內容的任何資訊。
什麼是開羅內容?
這是我正在使用的程式碼:
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
我對此進行了很多搜索,但沒有找到可以輕鬆使用的答案。情節的連結非常值得一讀。簡單的答案是,在任何可以設定的地方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",
}