Я пытаюсь изменить форму уведомления 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",
}