修改 Conky 以处理可变长度值

JBi*_*rch 10 script conky resource-monitor

我目前正在尝试使用 DWM 和 Conky 创建一个外观最小的桌面,用于编码和类似的事情。我有一些不错的事情正在进行,但目前我遇到了一些问题。现在,我的 ConkyTEXT部分居中对齐,看起来不错,但它也返回有关 CPU 使用情况的信息。如果 CPU 使用率在 9% 和 10% 之间闪烁,则文本的整体大小不同,并且由于居中对齐,因此会稍微移动一下。为了清晰起见,颜色被删除了一秒钟,这是有问题的线条的简单版本......

${alignc}CPU: ${cpu}%

当然,两者之间的区别

中央处理器 9%

中央处理器 10%

是什么导致了这个问题。我将如何用两个零填充 9,然后用一个零填充 10,然后用没有零填充 100?我在文档中唯一能看到的模糊相关的东西必须处理小数位填充,这根本不是我需要的。

cYr*_*rus 10

解决方案(现在找不到更好的方法,但它有效)涉及使用自定义 Lua 函数,您应该这样做:

  1. 为 Lua 函数创建一个文件,例如~/.conky_lua_scripts.lua

    function conky_pad( number )
        return string.format( '%3i' , conky_parse( number ) )
    end
    
    Run Code Online (Sandbox Code Playgroud)

    这将用空格填充数字(imo 更好),如果您想要零,只需将 '%3i' 替换为 '%03i'。

  2. 在您.conkyrc添加TEXT部分之前:

    lua_load ~/.conky_lua_scripts.lua
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后在您的TEXT部分中打印填充值类型,例如:

    ${alignc}CPU: ${lua_parse pad ${cpu}}%
    
    Run Code Online (Sandbox Code Playgroud)

我试图让 Lua 函数尽可能简单,但是如果你愿意,你可以制作一个更通用的函数,这样你就可以管理任何数字/值,甚至改变它的对齐方式。


sgt*_*pep 6

Conky 终于内置了它。这些选项可以解决问题:

use_spacer left
pad_percents 2
Run Code Online (Sandbox Code Playgroud)

  • 他们(确切地)做什么? (2认同)