Estoy intentando remodelar una notificación naughty.notify de un rectángulo a un rectángulo con esquinas redondeadas.AquíMe han dicho que el argumento de la forma requiere ungears.shape
argumento, así que miroaquípara ver cómo usarlo gears.shape.rounded_rect
. Cada ejemplo muestra algo como esto: shape.rounded_rect(cr, 70, 70, 10
, pero el único lugar que puedo encontrar que brinda información sobre lo que cr
dice "cr: A cairo content".
¿Qué es un contenido de El Cairo?
Este es el código que estoy usando:
naughty.notify({ text = "Monitor Test", ontop = true, position = "bottom_left",
shape = gears.shape.rounded_rect(cr, 70, 20, 5),
opacity = .95})
Naturalmente, aparece un error al reiniciar Awesome, porque cr
no hay nada. He intentado de todo, desde un número hasta cr:fill, pero no sé qué se supone que debe ir ahí.
¿Alguien?
Respuesta1
Cairo es una biblioteca de gráficos 2D utilizada por Awesome. Quizás quieras echar un vistazoaquí
Respuesta2
He buscado esto bastante y no encontré una respuesta que pueda usarse fácilmente. El enlace de ploth es una lectura realmente buena. La respuesta fácil es que en cualquier lugar que pueda configurar shape
, puede pasar una función y llamar a la forma que desee. La función a la que pases shape
la recibirá (cr, width, height)
y podrás pasarlas a la forma que desees. Por ejemplo:
wibox.container.background(widget, "#000", function(cr, width, height)
gears.shape.partially_rounded_rect(cr, width, height, false, true, true, false, 30)
end)
Espero que esto ayude.
Respuesta3
La respuesta es,definir una función como esta, que tendré cr
como marcador de posición:
ejemplo:
local new_shape = function(cr, width, height)
gears.shape.rounded_rect(cr, width, height, 2)
end
Entonces solo úsalo new_shape
como forma. ( cr
está definido en la firma de la función anterior, línea 1, por lo que ya está definido en la línea 2, y la devolución de llamada lo completará con el valor correcto cuando new_shape
se llame. No lo define rc.lua
usted mismo, simplemente déjelo vacío. )
use new_shape así:
local noti = naughty.notify {
position = "top_middle",
height = 20,
width = 70,
timeout = 1,
shape = new_shape, --SEE HERE
bg="#333333",
fg="#ffffff",
text = "TEST",
}