O que é "cr" no uso de gears.shape.rounded_rect e como posso usar isso para alterar a forma de naughty.notify?

O que é "cr" no uso de gears.shape.rounded_rect e como posso usar isso para alterar a forma de naughty.notify?

Estou tentando remodelar uma notificação Naughty.notify de um retângulo para um retângulo com cantos arredondados.AquiDisseram-me que o argumento da forma requer um gears.shapeargumento - então procuroaquipara ver como usar gears.shape.rounded_rect. Cada exemplo mostra algo assim: shape.rounded_rect(cr, 70, 70, 10, mas o único lugar que posso encontrar que fornece alguma informação sobre o que cré diz "cr: A cairo content".

O que é um conteúdo do Cairo?

Este é o código que estou usando:

naughty.notify({    text = "Monitor Test", ontop = true, position = "bottom_left", 
                    shape = gears.shape.rounded_rect(cr, 70, 20, 5),
                    opacity = .95})

Naturalmente, recebo um erro ao reiniciar o Awesome, porque crnão é nada. Eu tentei de tudo, desde um número até cr:fill, mas simplesmente não sei o que deveria acontecer lá.

Alguém?

Responder1

Cairo é uma biblioteca gráfica 2D usada pela Awesome. Você pode querer dar uma olhadaaqui

Responder2

Pesquisei bastante isso e não encontrei uma resposta que pudesse ser facilmente colocada em uso. o link de ploth é uma leitura muito boa. A resposta fácil é que em qualquer lugar que você possa definir shape, você pode passar uma função e chamar a forma desejada. A função para a qual você passar shapereceberá (cr, width, height)e você poderá passá-las para a forma que desejar. Por exemplo:

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 isto ajude.

Responder3

A resposta é,defina uma função como esta, que terá crcomo espaço reservado:

exemplo:

local new_shape = function(cr, width, height)
    gears.shape.rounded_rect(cr, width, height, 2)
end

Depois é só usar new_shapecomo forma. ( crestá definido na assinatura da função acima, linha 1, portanto já está definido na linha 2, e será preenchido com o valor correto pelo retorno de chamada quando new_shapefor chamado. Você não o define sozinho rc.lua, apenas deixe-o vazio. )

use new_shape assim:

    local noti = naughty.notify {
    position = "top_middle",
    height = 20,
    width = 70,
    timeout = 1,
    shape = new_shape, --SEE HERE
    bg="#333333",
    fg="#ffffff",
    text = "TEST",
}

informação relacionada