十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

bottom CPU 图形组件(CPU Graph Widget)完全指南:图例切换、缩放绑定与配置项解析

bottom CPU 图形组件(CPU Graph Widget)完全指南:图例切换、缩放绑定与配置项解析 bottom CPU 图形组件CPU Graph Widget完全指南图例切换、缩放绑定与配置项解析【免费下载链接】bottomYet another cross-platform graphical process/system monitor.项目地址: https://gitcode.com/GitHub_Trending/bo/bottombottomYet another cross-platform graphical process/system monitor的 CPU Widget 用于将 CPU 使用率以百分比折线图的形式随时间绘制出来是本项目中最常用的可视化组件之一。本文将基于官方使用文档与仓库源码系统讲解 CPU Widget 的组成结构、键盘/鼠标交互绑定以及[cpu]配置节下全部参数的默认值与取值帮助你快速掌握从查看多核曲线到定制默认图例项的完整玩法。CPU Widget 的组成图Graph与图例LegendCPU Widget 由两个部分组成图Graph以百分比形式展示当前选中条目的使用率随时间变化的数据纵轴为使用率百分比横轴为时间。图例Legend列出所有可展示在图上的条目并附带每个条目的最近一次使用率百分比All 选项除外。图例的条目与数据组织在源码中定义得非常清晰。在 src/widgets/cpu_graph.rs 中图例数据被建模为CpuWidgetTableData枚举pub enum CpuWidgetTableData { All, Entry { data_type: CpuDataType, usage: f32 }, }其中All对应列表最顶部的全部选项Entry则对应每个 CPU 核心/线程或平均AVG条目usage记录的是该条目最后一次采集到的使用率。set_legend_data方法见 src/widgets/cpu_graph.rs会把All选项与各 CPU 条目拼接成完整图例数据源。图例中每个条目的显示文本由to_cell_text决定见 src/widgets/cpu_graph.rsAvg条目显示为 AVG单个核心条目在宽度足够时显示为 CPU0CPU1 等空间不足时宽度小于断点值 5退化为只显示索引数字使用率列则依据show_decimal配置格式化为带一位小数或不带小数的百分比。此外图例条目的颜色由style_row分配src/widgets/cpu_graph.rsAll使用all_cpu_colour默认绿色Avg使用avg_cpu_colour默认红色各核心则按顺序循环使用cpu_colour_styles调色板在 src/options/config/style/themes/default.rs 中可以看到默认调色板是一组 LightMagenta、LightYellow、LightCyan、LightGreen、LightBlue、Cyan、Green、Blue 的颜色轮换。选择要显示的条目用户既可以用键盘也可以用鼠标在图例中滚动选择要显示在曲线图上的条目图例中每个 CPU 核心/线程以及 AVG平均条目都可被单独选中曲线图上只绘制当前选中条目。选中 All 选项时所有条目会同时绘制在图上。如果你拥有大量核心/线程全部叠加显示可能会变得难以分辨——这正是官方文档特别提示的注意点。在图例顶部固定存在一个 All 行其后才依次排列各 CPU 条目这与源码中的ALL_POSITION: usize 0、AVG_POSITION: usize 1两个常量见 src/canvas/widgets/cpu_graph.rs以及generate_points的索引偏移逻辑src/canvas/widgets/cpu_graph.rs完全对应当选中 All索引 0时绘制全部时间序列曲线否则只绘制current_scroll_position - 1对应的那一条曲线并据show_avg_cpu决定是否对 AVG 条目应用独立配色。调整显示的时间范围CPU 曲线图的横轴时间范围同样支持通过键盘或鼠标调整范围从30 秒到 600 秒。时间范围的底层实现位于时间序列组件中。CPU Widget 在创建状态时会通过TimeseriesConfig读取全局配置见 src/widgets/cpu_graph.rslet ts_config TimeseriesConfig { time_interval: config.time_interval, retention_ms: config.retention_ms, autohide_time: config.autohide_time, default_time_value: config.default_time_value, };其中default_time_value控制初始时间跨度示例配置中为60stime_delta控制每次缩放操作的增减量示例配置中为15000毫秒即 15 秒retention控制数据保留时长示例配置为10m。这些参数均来自 src/options/config/flags.rs可在配置文件的全局节中修改。键盘绑定Key bindings注意bottom 的键位绑定通常是区分大小写的。曲线图Graph区绑定动作放大图表减小时间范围-缩小图表增大时间范围重置缩放图例Legend区绑定动作↑/k在组件内向上移动↓/j在组件内向下移动gg/Home跳到图例第一个条目即 AllG/End跳到图例最后一个条目鼠标绑定Mouse bindings曲线图Graph区绑定动作滚轮向上/向下分别放大/缩小曲线图对应减小/增大时间范围图例Legend区绑定动作滚轮滚动在可显示的选项中滚动选择左键单击选择要在图中显示的 CPU 线程/平均值通过配置文件定制 CPU Widget如果你希望改变 CPU 图形组件的默认行为可以在配置文件中的[cpu]节下进行配置。以下参数均定义于 src/options/config/cpu.rs 的CpuConfig结构体并在 sample_configs/default_config.toml 中给出了完整示例。cpu.default默认选中的曲线通过cpu.default可配置启动时默认显示哪条 CPU 曲线。默认值为all显示所有条目。[cpu] # all默认、average/avg 三选一 default average从源码看该字段由CpuDefault枚举解析src/options/config/cpu.rsserde的alias avg使其同时接受average与avg两种写法并在default all时使用默认变体。选中average时CpuWidgetState::new会将表格的初始绘制索引设为 1即 AVG 位置实现启动即显示平均曲线src/widgets/cpu_graph.rs。对应的解析测试覆盖了空配置、all、avg、average四种情形src/options/config/cpu.rs。cpu.show_decimal使用率是否显示小数通过cpu.show_decimal控制 CPU 使用率数值是否显示一位小数。默认值为false。[cpu] show_decimal true该值在构建图例Use列时传入CpuWidgetColumn::Use { show_decimal }src/widgets/cpu_graph.rs格式化时若为true则输出{:.1}%保留一位小数否则输出{:.0}%取整src/widgets/cpu_graph.rs。cpu.hide_avg_cpu隐藏平均 CPU 条目通过cpu.hide_avg_cpu完全隐藏平均 CPU 条目。默认值为false。[cpu] hide_avg_cpu true该配置会影响曲线图的生成在generate_points中show_avg_cpu决定 AVG 条目是否占用独立的图例位置偏移AVG_POSITION隐藏后核心条目的颜色索引不再为平均值留出偏移位src/canvas/widgets/cpu_graph.rs。注意该选项与全局的hide_avg_cpu相关后者已标记为废弃见 src/options/config/flags.rs 与 sample_configs/default_config.toml。cpu.left_legend图例是否置于左侧通过cpu.left_legend将 CPU 曲线图图例放置到左侧。默认值为false图例在右侧。[cpu] left_legend true绘制逻辑中draw_cpu会将组件宽度按 15% 的比例分配给图例legend_width draw_loc.width * 0.15并根据该配置交换图例与曲线的水平布局顺序src/canvas/widgets/cpu_graph.rs当可用宽度过小图例宽度小于 6 个字符时会直接跳过图例绘制src/canvas/widgets/cpu_graph.rs。cpu.basic_average_cpu_row基础模式下平均 CPU 独立成行在基础模式basic mode下通过cpu.basic_average_cpu_row为平均 CPU 条目分配专属行。默认值为false。[cpu] basic_average_cpu_row true该参数对应源码中标记为废弃的average_cpu_rowsrc/options/config/flags.rs在 sample_configs/default_config.toml 中明确注释为已废弃请改用 cpu.basic_average_cpu_row。配置文件的存放位置以上所有配置都需要写入 bottom 的配置文件bottom.toml。若未通过命令行参数指定bottom 会自动在以下默认位置查找参见 docs/content/configuration/config-file/index.md操作系统默认配置文件位置macOS$HOME/Library/Application Support/bottom/bottom.toml、$HOME/.config/bottom/bottom.toml、$XDG_CONFIG_HOME/bottom/bottom.tomlLinux$HOME/.config/bottom/bottom.toml、$XDG_CONFIG_HOME/bottom/bottom.tomlWindowsC:\Users\USER\AppData\Roaming\bottom\bottom.toml如果配置文件不存在bottom 会自动在该位置生成一份包含默认值的配置文件同时项目还提供了 JSON Schema 支持位于 schema 目录按版本组织配合 IDE 可实现配置项的自动补全与校验。小结CPU Widget 是 bottom 中最直观的实时负载可视化入口左侧或右侧图例负责条目选择与最近使用率展示曲线区负责时间序列渲染配合/-/、j/k、gg/G等键位与鼠标滚轮即可快速完成放大、缩小、切换核心等操作。若希望改变默认体验只需在bottom.toml的[cpu]节中设置default、show_decimal、hide_avg_cpu、left_legend、basic_average_cpu_row五个选项即可——完整可参考 sample_configs/default_config.toml实现细节可从 src/widgets/cpu_graph.rs 与 src/canvas/widgets/cpu_graph.rs 中继续深入。【免费下载链接】bottomYet another cross-platform graphical process/system monitor.项目地址: https://gitcode.com/GitHub_Trending/bo/bottom创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表