如何更改标题栏的背景图片缩放比例

我有一张特定的图片,我想把它变成我的标题栏背景,但我不知道如何使它拉伸,以适应整个标题栏。有什么建议吗?

点赞
用户436275
用户436275

你是想要将默认配置更改成以下方式吗?(当然,使用另一个文件名)

diff --git a/awesomerc.lua b/awesomerc.lua
index fa584b8a8..7e6ccad55 100644
--- a/awesomerc.lua
+++ b/awesomerc.lua
@@ -557,7 +557,9 @@ client.connect_signal("request::titlebars", function(c)
         end)
     )

-    awful.titlebar(c) : setup {
+    local bg = {type = "png", file = "/tmp/variant_outside.png"}
+    local args = {bg_normal = bg, bg_focus = bg}
+    awful.titlebar(c, args):setup{
         { -- 左
             awful.titlebar.widget.iconwidget(c),
             buttons = buttons,
2019-03-19 18:19:39
用户436275
用户436275

下面是一个默认配置的补丁,使得标题栏可以从文件中获得背景。文件会按照标题栏的精确大小进行缩放。

diff --git a/awesomerc.lua b/awesomerc.lua
index fa584b8a8..3e3a54c0d 100644
--- a/awesomerc.lua
+++ b/awesomerc.lua
@@ -542,6 +542,14 @@ client.connect_signal("manage", function (c)
     end
 end)

+local tb_bg_image = gears.surface("/tmp/variant_outside.png")
+local bg_width, bg_height = gears.surface.get_size(tb_bg_image)
+local function bg_image_function(_, cr, width, height)
+    cr:scale(width / bg_width, height / bg_height)
+    cr:set_source_surface(tb_bg_image)
+    cr:paint()
+end
+
 -- @DOC_TITLEBARS@
 -- 如果规则中将标题栏启用,那么添加标题栏。
 client.connect_signal("request::titlebars", function(c)
@@ -557,7 +565,8 @@ client.connect_signal("request::titlebars", function(c)
         end)
     )

-    awful.titlebar(c) : setup {
+    local args = { bgimage_normal = bg_image_function, bgimage_focus = bg_image_function }
+    awful.titlebar(c, args) : setup {
         { -- 左侧
             awful.titlebar.widget.iconwidget(c),
             buttons = buttons,
2019-03-20 17:59:34