You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AwesomeWM中使用Vicious创建垂直内存进度条失效求助

AwesomeWM 垂直内存进度条失效问题解决

问题描述

在AwesomeWM 3.x版本中,使用memwidget:set_vertical(true)可正常实现垂直内存使用率进度条。尝试在新版本中用以下代码复刻效果时,组件始终显示横向进度条,完全忽略旋转设置:

memwidget = wibox.widget.progressbar()
membox = wibox.widget {
    {
        forced_height = 100,
        forced_width = 20,
        max_value = 1,
        widget = memwidget,
        border_width = 0.5,
        border_color = "#000000",
        background_color = "#494B4F",
        color = {
            type = "linear",
            from = { 0, 0 },
            to = { 0, 30 },
            stops = {
                { 0, "#AECF96" },
                { 1, "#FF5656" },
            },
        },
    },
    direction = 'east',
    layout = wibox.container.rotate,
}
-- Register mem widget
vicious.register(memwidget, vicious.widgets.mem, "$1", 11)


...


awful.screen.connect_for_each_screen(function(s)
...
    local right_layout = wibox.layout.fixed.horizontal()
    right_layout:add(memwidget)

核心错误与解决方法

  • 核心错误:你将未经过旋转容器包裹的原始memwidget添加到了布局中,而非包含旋转设置的membox,导致旋转配置完全未生效。
  • 直接修正步骤:
    1. 修改布局添加的对象,将right_layout:add(memwidget)改为right_layout:add(membox)。
    2. 可选调整:direction = 'east'会生成从下到上的垂直进度条,若需要从上到下的样式,可将方向改为west。

优化后的代码示例

可以简化代码结构,直接把进度条配置内联到旋转容器中,避免变量混淆:

membox = wibox.widget {
    {
        forced_height = 100,
        forced_width = 20,
        max_value = 1,
        border_width = 0.5,
        border_color = "#000000",
        background_color = "#494B4F",
        color = {
            type = "linear",
            from = { 0, 0 },
            to = { 0, 100 }, -- 渐变终点高度与进度条高度匹配,视觉更协调
            stops = {
                { 0, "#AECF96" },
                { 1, "#FF5656" },
            },
        },
        widget = wibox.widget.progressbar,
    },
    direction = 'east',
    layout = wibox.container.rotate,
}
-- 注册时指向旋转容器内的进度条组件
vicious.register(membox.widget, vicious.widgets.mem, "$1", 11)

-- 布局添加时使用membox
awful.screen.connect_for_each_screen(function(s)
...
    local right_layout = wibox.layout.fixed.horizontal()
    right_layout:add(membox)

内容的提问来源于stack exchange,提问作者Daks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 06:22:43