Что означает «cr» в использовании gears.shape.rounded_rect, и как я могу использовать это для изменения формы naughty.notify?

Что означает «cr» в использовании gears.shape.rounded_rect, и как я могу использовать это для изменения формы naughty.notify?

Я пытаюсь изменить форму уведомления naughty.notify с прямоугольника на прямоугольник со скругленными углами.ЗдесьМне сказали, что аргумент о форме требует gears.shapeаргумента, поэтому я смотрюздесьчтобы увидеть, как использовать gears.shape.rounded_rect. Каждый пример показывает что-то вроде этого: shape.rounded_rect(cr, 70, 70, 10, но единственное место, которое я смог найти, где есть какая-то информация о том, что crэто, это "cr: A cairo content".

Что такое каирский контент?

Вот код, который я использую:

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 — это библиотека 2D-графики, используемая Awesome. Возможно, вам захочется взглянутьздесь

решение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",
}

Связанный контент