lua - awesome-wm:如何更改系统托盘形状

标签 lua awesome-wm

有什么方法可以在 AwesomeWM 窗口管理器中将系统托盘形状更改为圆角矩形? 我在文档中搜索了“wibox.widget.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,
})

我想将系统托盘与任务列表选择统一起来,如下图所示: https://imgur.com/a/5m8RZNh

最佳答案

你可以!为此,您必须使用 Awesome“容器”模式并将其包装到 wibox.container.background 中。

-- the systray has its own internal background because of X11 limitations
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,
}

请注意,系统托盘小部件中的后台处理是有限的。它不能是渐变色或透明色。这是由于 X11 的限制。 Awesome 没有内部合成管理器,而是依赖外部合成管理器,例如 Compton。这样做的缺点之一是系统托盘。好处是,好吧,其他一切。此外,Qt 和 GTK 应用程序都在不断倒退其系统托盘后台支持。这个错误在他们这边,如果不实现不符合标准的黑客攻击,就无法缓解非合成 WM,而 AwesomeWM 不会这样做。所以你最终得到:

enter image description here

关于lua - awesome-wm:如何更改系统托盘形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503945/

相关文章:

awesome-wm - AwesomeWM - 如何防止屏幕断开时客户端迁移?

serialization - 是否可以在包含对 C 函数的引用的 lua 字节码字符串上调用 loadstring?

lua - 普通函数调用和pcall有什么区别

lua - 使用 Lua 评估数学表达式

regex - Lua 正则表达式,只有一个匹配项

awesome-wm - 如何在awesome wm中检索当前标签名称?

linux - awesome wm - 如何将一个键绑定(bind)到另一个键

awesome-wm - 客户端在启动时没有名称/类

lua - 为什么我的矩阵值为零?

linux - 编辑 rc.lua 时的 Tabcompletion 和 docview