gears.shape.rounded_rect の使用における「cr」とは何ですか? また、これを使用して naughty.notify の形状を変更するにはどうすればよいでしょうか?

gears.shape.rounded_rect の使用における「cr」とは何ですか? また、これを使用して naughty.notify の形状を変更するにはどうすればよいでしょうか?

naughty.notify 通知を長方形から角の丸い長方形に変更しようとしています。ここ形状の議論にはgears.shape議論が必要だと聞いているので、ここの使用方法を確認するには、 を参照してくださいgears.shape.rounded_rect。すべての例で のようなものが表示されますshape.rounded_rect(cr, 70, 70, 10が、 が何であるかに関する情報を提供している唯一の場所は、cr「cr: cairo コンテンツ」です。

カイロコンテンツとは何ですか?

私が使用しているコードは次のとおりです:

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

当然、Awesome を再起動するとエラーが発生しますcr。何もないからです。数字から cr:fill まであらゆることを試しましたが、何を入力すればよいのかわかりません。

誰かいますか?

答え1

CairoはAwesomeが使用する2Dグラフィックライブラリです。ぜひご覧ください。ここ

答え2

私はこれについてかなり検索しましたが、簡単に使用できる答えは見つかりませんでした。ploth のリンクは本当に読みやすいです。簡単な答えは、設定できる場所ならどこでもshape関数を渡して、必要なシェイプを呼び出すことができるということです。渡した関数は をshape受け取り(cr, width, height)、それを必要なシェイプに渡すことができます。たとえば、次のようになります。

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

お役に立てれば。

答え3

答えは、次のような関数を定義するcrプレースホルダーとして以下を使用します:

例:

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

次に、new_shapeas shape を使用します。 ( はcr上記の関数シグネチャの 1 行目に定義されているため、 2 行目に既に定義されており、 がnew_shape呼び出されたときにコールバックによって正しい値が入力されます。 自分で定義するのではなくrc.lua、空のままにしておきます。)

new_shape を次のように使用します。

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

関連情報