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.shape
argumento - 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 cr
nã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 shape
receberá (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á cr
como espaço reservado:
exemplo:
local new_shape = function(cr, width, height)
gears.shape.rounded_rect(cr, width, height, 2)
end
Depois é só usar new_shape
como forma. ( cr
está 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_shape
for 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",
}