创建带有零填充的 Conky 文本变量?

Naf*_*Kay 6 conky

我的 Conky 设置有一个奇怪的问题:

在此处输入图片说明

我希望摆脱/修复的是我的 CPU 百分比(使用${cpu cpuX})似乎无法正确填充的事实。我希望所有值都垂直对齐,以便状态永远不会摆动。以下是我的 conky 文件的摘录:

# ...
pad_percents 3
# ...
${cpubar cpu1 6,135}$alignr${...}${cpu cpu1}%
Run Code Online (Sandbox Code Playgroud)

如何正确对齐和填充 CPU 百分比值,以便它们停止抛弃我的布局?等效的 printf 将%3.0f使得值将如下所示:

$ "%3.0f" % (1,) 
'  1'
$ "%3.0f" % (13,)
' 13'
$ "%3.0f" % (100,)
'100'
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Conky 中实现我的 CPU 百分比?

Naf*_*Kay 9

上面@jasonwryan 提供的解决方案:

  1. 创建一个 Lua 脚本供 Conky 使用。我在我创建的文件夹中创建了我的文件夹~/.config/conky/scripts,但您可以在任何地方创建您的文件夹:

    $ mkdir -p ~/.config/conky/scripts/
    $ vim ~/.config/conky/scripts/conky_lua_scripts.lua
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用以下 Lua 函数填充文件:

    function conky_format( format, number )
        return string.format( format, conky_parse( number ) )
    end
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用lua_load指令将 Lua 脚本文件导入 Conky 配置文件

    # ...
    lua_load ~/.config/conky/scripts/conky_lua_scripts.lua
    
    TEXT
    # ...
    
    Run Code Online (Sandbox Code Playgroud)
  4. 每当你想格式化一个值时,调用format我们之前定义的函数。请注意,虽然我们将它命名为 ,但我们使用变量来conky_format访问它:formatlua_parse

    # ...
    lua_load ~/.config/conky/scripts/conky_lua_scripts.lua
    
    TEXT
    # ...
    ${lua_parse format %3.0f ${cpu cpu1}}%
    
    Run Code Online (Sandbox Code Playgroud)

这个不错的脚本允许您使用任何值和格式字符串调用 Lua 格式化引擎。输出现在看起来像预期的一样:

惊人的

如果您熟悉printf,则可以使用该实用程序执行其他出色的格式化技巧。