Was ist „cr“ bei der Verwendung von gears.shape.rounded_rect und wie kann ich dies verwenden, um die Form von naughty.notify zu ändern?

Was ist „cr“ bei der Verwendung von gears.shape.rounded_rect und wie kann ich dies verwenden, um die Form von naughty.notify zu ändern?

Ich versuche, eine Benachrichtigung vom Typ „naughty.notify“ von einem Rechteck in ein Rechteck mit abgerundeten Ecken umzuformen.HierMir wurde gesagt, dass das Formargument ein gears.shapeArgument erfordert – also sehe ichHierum zu sehen, wie man verwendet gears.shape.rounded_rect. Jedes Beispiel zeigt so etwas wie das hier: shape.rounded_rect(cr, 70, 70, 10, aber die einzige Stelle, die ich finden kann, die Informationen darüber gibt, was es crist, lautet „cr: Ein Cairo-Inhalt“.

Was ist ein Cairo-Inhalt?

Dies ist der Code, den ich verwende:

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

Natürlich bekomme ich beim Neustart von Awesome eine Fehlermeldung, weil crnichts kommt. Ich habe alles von einer Zahl bis zu cr:fill probiert, aber ich weiß einfach nicht, was da rein soll.

Tut jemand?

Antwort1

Cairo ist eine 2D-Grafikbibliothek, die von Awesome verwendet wird. Vielleicht möchten Sie einen Blick darauf werfenHier

Antwort2

Ich habe ziemlich viel danach gesucht und keine Antwort gefunden, die sich leicht umsetzen lässt. Ploths Link ist wirklich lesenswert. Die einfache Antwort ist, dass Sie überall, wo Sie festlegen können shape, eine Funktion übergeben und die gewünschte Form aufrufen können. Die Funktion, an die Sie übergeben, shapeempfängt (cr, width, height)und Sie können diese an die gewünschte Form übergeben. Beispiel:

wibox.container.background(widget, "#000", function(cr, width, height)
  gears.shape.partially_rounded_rect(cr, width, height, false, true, true, false, 30)
end)

Hoffe das hilft.

Antwort3

Die Antwort ist,Definieren Sie eine Funktion wie diesecr, das ich als Platzhalter habe :

Beispiel:

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

Dann einfach new_shapeals Form verwenden. ( crist in der Funktionssignatur oben, Zeile 1, definiert, also ist es bereits in Zeile 2 definiert und wird beim Aufruf durch den Rückruf mit dem richtigen Wert gefüllt new_shape. Sie definieren es nicht rc.luaselbst, sondern lassen es einfach leer.)

verwenden Sie new_shape wie folgt:

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

verwandte Informationen