需要 conky 格式化帮助来对齐 grep 输出

需要 conky 格式化帮助来对齐 grep 输出

我无法弄清楚,所以我希望你们能帮我一下。所以,我试图想出一种方法来在我的 conky 上显示 TLP 状态。在终端中,您可以输入:tlp-统计-s

但是...信息太多了,我只想要当前状态部分。我在 conky 中尝试的方式如下:

${exec tlp-stat -s |grep'电池\|AC'}

现在,它运行完美,当我插入/拔出充电器时,它会相应地发生变化,但是......线路没有正确对齐!

conky 截图

看到了吗?如何才能将其与我的主题的其余部分相匹配?提前谢谢,这是配置:

conky.config = {

--各种设置

background = true, -- 分叉到后台 cpu_avg_samples = 2, -- 用于 CPU 监控的平均样本数。 diskio_avg_samples = 10, -- 用于磁盘 I/O 监控的平均样本数。 double_buffer = true, -- 使用 Xdbe 扩展?(消除闪烁) if_up_strictness = 'address', -- 如果测试接口已启动,则严格程度如何 - 启动、链接或地址 net_avg_samples = 2, -- 用于网络数据的平均样本数 no_buffers = true, -- 从使用的内存中减去(文件系统)缓冲区?temperature_unit = 'celsius', -- 华氏度或摄氏度 text_buffer_size = 2048, -- 用于显示大变量内容的缓冲区大小 - 默认值为 256 update_interval = 1, -- 更新间隔 imlib_cache_size = 0, -- 禁用图像缓存,以便为每首歌曲获取一个新的 spotify 封面

- 放置

alignment = 'top_right', -- top_left,top_middle,top_right,bottom_left,bottom_middle,bottom_right, -- middle_left,middle_middle,middle_right,none --Arch Duoscreen --gap_x = -1910, gap_x = 15, -- 右边框或左边框之间的像素 gap_y = 15, -- 下边框或左边框之间的像素 minimum_height = 600, -- 窗口的最小高度 minimum_width = 300, -- 窗口的最小高度 maximum_width = 300, -- 窗口的最大高度

--图形

border_inner_margin = 10, -- 边框与文本之间的边距 border_outer_margin = 5, -- 边框与窗口边缘之间的边距 border_width = 0, -- 边框宽度(像素) default_bar_width = 80, -- 默认值为 0 - 全宽 default_bar_height = 10, -- 默认值为 6 default_gauge_height = 25, -- 默认值为 25 default_gauge_width =40, -- 默认值为 40 default_graph_height = 40, -- 默认值为 25 default_graph_width = 0, -- 默认值为 0 - 全宽 default_shade_color = '#000000', -- 默认阴影颜色 default_outline_color = '#000000', -- 默认轮廓颜色 draw_borders = false, -- 在文本周围绘制边框 draw_graph_borders = true, -- 在图形周围绘制边框 draw_shades = false, -- 绘制阴影 draw_outline = false, -- 绘制轮廓stippled_borders = 0, -- 虚线边框

--文本

extra_newline = false, -- 末尾的额外换行符 - 用于 asesome 的 wiboxes format_human_readable = true, -- KiB、MiB 而不是字节数 font = 'Roboto Mono:size=10', -- 除非在代码中定义,否则完整 conky 的字体 max_text_width = 0, -- 0 将确保如果宽度太小则行不会断开 max_user_text = 16384, -- conky 中的最大文本默认为 16384 override_utf8_locale = true, -- 强制 UTF8 需要 xft short_units = true, -- 将单位从 KiB 缩短到 k top_name_width = 21, -- $top name 的宽度值默认为 15 top_name_verbose = false, -- 如果为 true,top name 将显示每个进程的完整命令行 - 默认值为 false。 uppercase = false, -- 是否大写 use_spacer = 'none', -- 在某些对象周围添加空格以对齐 - 默认无 use_xft = true, -- xft 字体 - 抗锯齿字体 xftalpha = 1, -- xft 字体的 alpha - 介于 0-1 之间

- 视窗

own_window = true, -- 创建自己的窗口来绘制 own_window_argb_value = 0, -- 真正的透明度 - 需要复合管理器 0-255 own_window_argb_visual = true, -- 使用 ARGB - 需要复合管理器 own_window_colour = '#000000', -- 如果 own_window_transparent 没有,则设置颜色 own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', -- 如果 own_window true - 只是提示 - own_window_type 设置它 own_window_transparent = false, -- 如果 own_window_argb_visual 为 true,则设置背景不透明度 0% own_window_title = 'system_conky', -- 手动设置名称 - 默认 conky “主机名” own_window_type = 'desktop', -- 如果 own_window true,选项为:normal/override/dock/desktop/panel

- 颜色

default_color = '#CB9D7A', -- 默认颜色和边框颜色 color1 = '#FF0000', color2 = '#C17D12', color3 = '#cccccc', color4 = '#D9BC83', color5 = '#BF4E0C', color6 = '#FFFFFF',

--信号颜色 color7 = '#1F7411', --绿色 color8 = '#FFA726', --橙色 color9 = '#F1544B', --耐火砖

--Lua

};

conky.文本 = [[

${color5}${font Roboto:size=10}${voffset 10}SYSTEM ${hr 2}${font}${color} ${color2}${voffset 8}主机名:${color} ${alignr}${nodename} ${color2}发行版:${color}${alignr}${alignr}${execi 999999 lsb_release -ds} ${color2}内核:${color}${alignr}${exec uname} ${exec uname -r} ${color2}Nvidia 驱动程序:${color}${alignr}${execi 60000 nvidia-smi | grep "驱动程序版本"| awk {'print $3'}} ${color2}正常运行时间:${color} ${alignr}${uptime}

${color5}${font Roboto:size=10}温度 ${hr 2}${font}${color} ${color2}CPU 温度:${color} $alignr${execi 10 传感器 | grep 'Core 0' | awk {'print $3'}} ${color2}GPU 温度 ${color} ${alignr}${execi 60 nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader} °C

${color5}${font Roboto:size=10}处理器 ${hr 2}${font}${color} ${color2}CPU 频率:${color} $alignr${freq}MHz

${color2}${offset 20}CPU 核心 1:${color} ${alignr}${offset -10}${cpu cpu1}%${alignr}${cpubar cpu1} ${color2}${offset 20}CPU 核心 2:${color} ${alignr}${offset -10}${cpu cpu2}%${alignr}${cpubar cpu2} ${color2}${offset 20}CPU 核心 3:${color} ${alignr}${offset -10}${cpu cpu3}%${alignr}${cpubar cpu3} ${color2}${offset 20}CPU 核心 4:${color} ${alignr}${offset -10}${cpu cpu4}%${alignr}${cpubar cpu4} ${color2}${offset 20}CPU 核心5:${color} ${alignr}${offset -10}${cpu cpu5}%${alignr}${cpubar cpu5} ${color2}${offset 20}CPU核心6:${color} ${alignr}${offset -10}${cpu cpu6}%${alignr}${cpubar cpu6} ${color2}${offset 20}CPU核心7:${color} ${alignr}${offset -10}${cpu cpu7}%${alignr}${cpubar cpu7} ${color2}${offset 20}CPU核心8:${color} ${alignr}${offset -10}${cpu cpu8}%${alignr}${cpubar cpu8} ${color2}${offset 20}CPU核心9:${color} ${alignr}${offset -10}${cpu cpu9}%${alignr}${cpubar cpu9} ${color2}${offset 20}CPU 核心 10:${color} ${alignr}${offset -10}${cpu cpu10}%${alignr}${cpubar cpu10} ${color2}${offset 20}CPU 核心 11:${color} ${alignr}${offset -10}${cpu cpu11}%${alignr}${cpubar cpu11} ${color2}${offset 20}CPU 核心 12:${color} ${alignr}${offset -10}${cpu cpu12}%${alignr}${cpubar cpu12}

${color2}${offset 20}CPU 总计:${color} ${alignr}${offset -10}${cpu cpu0}%${alignr}${cpubar cpu0}

${color5}${offset 20}调速器:${color} ${alignr}${offset -10}${execi 5 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}

${color2} 顶级进程${goto 222}CPU%${goto 274} ${voffset 4} $
{color2} 1 - ${top name 1}${alignr}${goto 170} ${goto 222}${color}${top cpu 1} ${color2} 2 - ${top name 2}${alignr} ${goto 222}${color}${top cpu 2} ${goto 274} ${color2} 3 - ${top name 3}${alignr} ${goto 222}${color}${top cpu 3} ${goto 274}
${color2} 4 - ${top name 4}${alignr} ${goto 222}${color}${top cpu 4} ${goto 274} ${color2} 5 - ${top name 5}${alignr} ${goto 222}${color}${top cpu 5} ${goto 274}

${color5}${font Roboto:size=10}驱动器 ${hr 2}${font}${color} ${offset 30}${color2}SSD:${color} ${alignr}${offset -10}${fs_used /} / ${fs_size /}${alignr}${fs_used_perc /} % ${offset 30}${color2}HDD:${color} ${alignr}${offset -10}${fs_used /home} / ${fs_size /home}${alignr}${fs_used_perc /home} %

${color5}${color5}${font Roboto:size=10}网络 ${hr 2}${font}${color} ${color2}${offset 30}IP 地址:${color} ${alignr}${offset -10$}${addrs wlo1}

${color5}${color5}${font Roboto:size=10}电池 ${hr 2}${font}${color} ${color2}${offset 30}剩余时间:${color} ${alignr}${offset -10$}${battery_time BAT0} ${color2}${offset 30}状态:${color} ${alignr}${offset -10$}$电池

${color5}${color5}${font Roboto:size=10}TLP ${hr 2}${font}${color} ${color2}${offset 30}状态:${color} ${alignr}${offset -10}${exec tlp-stat -s |grep 'battery\|AC'}

]];

答案1

可能有很多方法可以实现你想要的,但我个人使用sedawk来进行这种字符串操作。(这些不是复杂的工具)。

因此,假设您期望的输出是Power source = AC您感兴趣的实际项目是第四个值(空格分隔的值),因此仅返回第四个值的 awk 命令将是:

tlp-stat -s |grep 'battery\|AC' |awk '{print $4}'

因此,您可以使用该表单来输出您需要的内容以及 conky 对齐命令,例如{alignr 80}或您需要对齐文本/值等的任何内容。

sed 和 awk 是强大的字符串扫描/操作工具 - 查看手册页并在线搜索可能的内容。

答案2

非常感谢!解决方法如下:

${color2}模式:${color} ${exec tlp-stat -s |grep '模式' |awk '{print $3}' } ${color2}电源:${color} ${exec tlp-stat -s |grep '源' |awk '{print $4}' }

这是最终结果!

解决了

相关内容