¿Qué es "cr" en el uso de gears.shape.rounded_rect y cómo puedo usarlo para alterar la forma de naughty.notify?

¿Qué es "cr" en el uso de gears.shape.rounded_rect y cómo puedo usarlo para alterar la forma de naughty.notify?

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 crdice "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 crno 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 shapela 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é crcomo 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_shapecomo forma. ( crestá 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_shapese llame. No lo define rc.luausted 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",
}

información relacionada