awesome-wm:如何更改 systray 的形状

有没有办法在 AwesomeWM 窗口管理器中将 systray 的形状更改为圆角矩形? 我搜索了“wibox.widget.systray”类的文档,但它没有更改形状的选项。 我尝试将 systray 放置到容器中并在那里设置形状,但这并没有起作用:

s.mysystray = wibox.widget.systray()
local systray_container = wibox.container.background(s.mysystray, beautiful.bg_systray, gears.shape.rounded_rect)
local systray_margin = wibox.container.margin(systray_container, 0, 0, 5, 5)
local systray = wibox.container.place(systray_margin, {
    halign = “center”,
    fill_vertical = true,
})

我想像下面图片中的任务栏选择一样统一 systray : https://imgur.com/a/5m8RZNh

点赞
用户1672598
用户1672598

你可以这样做!为了实现这一点,你必须使用 Awesome 的“容器”模式,并将其包装在 wibox.container.background 中。

-- 由于 X11 的限制,systray 有自己的内部背景
beautiful.bg_systray = "#ff0000"
beautiful.systray_icon_spacing = 10

local my_round_systray = wibox.widget {
    {
        wibox.widget.systray(),
        left   = 10,
        top    = 2,
        bottom = 2,
        right  = 10,
        widget = wibox.container.margin,
    },
    bg         = "#ff0000",
    shape      = gears.shape.rounded_rect,
    shape_clip = true,
    widget     = wibox.container.background,
}

请注意,在 systray 小部件中的背景处理是有限制的。它不能是渐变或透明的颜色,这是由于 X11 的限制。Awesome 没有内部合成管理器,而是依赖于外部管理器,如 Compton。这样做的一个缺点是 systray。优点是其它的一切。此外,无论是 Qt 还是 GTK 应用程序,它们都会不断退化它们的 systray 背景支持。这个错误在它们这一边,不能为没有实现非标准兼容性的 WM 实现减轻错误,AwesomeWM 不会这样做。所以你最终得到了:

enter image description here

2019-02-03 15:18:50