如何在两个 ${hr} 中间对齐文本?

如何在两个 ${hr} 中间对齐文本?

我想在我的 conky 部分的标签两侧有两条水平绿线,但是当我尝试这样做时,我发现绿线占据了整个水平空间,并且没有文本空间。这就是我要说的:

在此输入图像描述

conky 正处于开发的早期阶段,我刚刚遇到了这个问题,所以没有太多的内容。这是.conkyrc:

alignment tr
use_xft true
xftfont Droid Serif Bold:size=9
double_buffer true
gap_x 10
gap_y 10

color1 afafaf
color2 00ff00
color3 0a0a0a

TEXT
${color2}${hr}${color1}.: INFO :.${color2}${hr}
${color2}${kernel} ${color1}${machine}

另外,就在我们这样做的时候,我从 conky 那里收到了一个语法错误alignment tr。它是这样说的:

conky: Syntax error (/home/ricky/.conkyrc:1: syntax error near 'tr') while reading config file. 
conky: Assuming it's in old syntax and attempting conversion.

这似乎没有什么区别,但奇怪的是它会这样做。

答案1

你可以像这样完成一些接近你想要的事情......

${alignc}Some Text
${color green}${voffset -25}____________${alignr}____________

...结果是这样的...

在此输入图像描述

答案2

我们这里有两个问题:使用两个${hr}和语法错误near 'tr'

使用两个${hr}

在两条水平线之间插入文本?你不能使用${hr}对象来做到这一点。您只能控制行的高度(以像素为单位)(如上面的评论中指出的)。

我建议使用下划线 '_'绘制两条线,如下所示。

TEXT
${color2}__________${color1}.: INFO :.${color2}__________
${color2}${kernel} ${color1}${machine}

在上面的代码中,我每行使用了 10 个下划线。使用这么多下划线可以将 TEXT 的第一行放在 200 像素的宽度内。

语法错误near 'tr'

作为 Conky 1.9 版本,该alignment变量仍然可以接受两个字母的定位,即tr默认情况下。然而,从版本 1.10 开始,默认规则似乎被限制为仅使用完整变量 ietop_right而不是tr

此论坛主题据透露,Manjaro 用户最近也遇到了同样的问题。

经过一番混淆和搜索后,我终于找到了 Conky 从 1.10 版本开始需要的新语法,不幸的是,“man conky”将你指向一个不存在的目录。您可以在这里找到示例文件:/usr/share/doc/conky-1.10.0/conky.conf

conky.config = {
   alignment = 'top_left',
   background = false,
...
}
conky.text = [[
${scroll 16 $nodename - $sysname $kernel on $machine | }
...
]]

语法错误本身

除了完整变量之外,在 Conky 1.10 中使用旧语法可能是引发错误的原因。因此,请考虑conkyrc使用如下新语法重写您的文件。

conky.config = {
   alignment = 'top_right',
   use_xft = true,
   xftfont = 'Droid Serif Bold:size=9',
   double_buffer = true,
   gap_x = 10,
   gap_y = 10,
   color1 = 'afafaf',
   color2 = '00ff00',
   color3 = '0a0a0a'
}
conky.text = [[
${color2}__________${color1}.: INFO :.${color2}__________
${color2}${kernel} ${color1}${machine}
]]

这个帖子在不同的论坛线程上提到了一些关于如何将 Conky 1.10 或更高版本的旧语法重写为新语法的线索。

相关内容