gears.shape.rounded_rect 的用法中的「cr」是什麼?

gears.shape.rounded_rect 的用法中的「cr」是什麼?

我正在嘗試將 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",
}

相關內容