Conky 桌面系统监视器

在 Ubuntu 上使用 Conky 搭建轻量级透明桌面系统监视器的完整指南。涵盖实时资源面板、每日流量统计、视觉定制和自启动配置。


1. 安装与首次运行


# 安装 Conky 及辅助工具
sudo apt update
sudo apt install conky-all lm-sensors curl jq

# 验证安装
conky --version
# 预期输出:conky 1.12.x 或更高版本

# 使用默认配置测试
conky -c /etc/conky/conky.conf


2. Conky 配置文件语法与布局设计

2.1 文件位置

类型 路径
系统级 /etc/conky/conky.conf
用户配置(推荐) /home/user/.config/conky/conky.conf
多配置 /home/user/.config/conky/panel_*.conf

2.2 配置文件结构

Conky 配置分为两个部分,由关键字 TEXT 分隔:


-- 第 1 部分:CONFIGURATION(TEXT 上方的 Lua 风格设置)
conky.config = {
    -- 显示和定位
    -- 更新间隔
    -- 颜色和字体设置
}

-- 第 2 部分:DISPLAY TEXT(TEXT 下方的所有内容)
conky.text = [[
-- 变量、格式化和布局
]]

2.3 关键配置参数


conky.config = {
    -- === 显示 ===
    alignment = 'top_right',        -- top_left, top_right, bottom_left, bottom_right
    gap_x = 30,                     -- 距右边缘的像素数
    gap_y = 60,                     -- 距顶边缘的像素数
    minimum_width = 280,            -- 面板宽度(像素)
    maximum_width = 320,
    minimum_height = 600,           -- 最小面板高度

-- === 外观 ===
own_window = true,
own_window_type = 'desktop', -- desktop, normal, dock, panel, override
own_window_transparent = true, -- true = 伪透明(读取壁纸像素)
own_window_argb_visual = true, -- 真实透明(需要合成器)
own_window_argb_value = 0, -- 0=完全透明, 255=完全不透明
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',

double_buffer = true, -- 消除闪烁

-- === 更新时机 ===
update_interval = 2.0, -- 刷新间隔秒数
cpu_avg_samples = 2, -- CPU 读数平滑采样数
net_avg_samples = 2, -- 网络读数平滑采样数

-- === 字体默认值 ===
font = 'DejaVu Sans Mono:size=9',
use_xft = true,
xftalpha = 0.9,

-- === 颜色 ===
default_color = '#cccccc', -- 正文
color0 = '#ffffff', -- 白色(标题)
color1 = '#00ff88', -- 绿色(正常值)
color2 = '#ffcc00', -- 黄色(警告)
color3 = '#ff4444', -- 红色(严重)
color4 = '#4da6ff', -- 蓝色(信息)

-- === 边框和轮廓 ===
draw_borders = false,
draw_outline = false,
draw_shades = false,

-- === 杂项 ===
use_spacer = 'none',
no_buffers = true,
uppercase = false,
pad_percents = 2, -- 百分比值填充到 N 位
short_units = true, -- 显示 "GiB" 而非 "gibibytes"
};


3. 实时面板:CPU、内存、磁盘 I/O、网络速度

3.1 包含所有面板的完整 conky.text 部分


conky.text = [[
${color0}${font DejaVu Sans Mono:bold:size=10}SYSTEM${font}${color}
${hr 2}
Hostname:${alignr}${nodename}
Kernel:${alignr}${kernel}
Uptime:${alignr}${uptime}
Load Avg:${alignr}${loadavg 1} ${loadavg 2} ${loadavg 3}
Processes:${alignr}${running_processes} running / ${processes} total

${color0}${font DejaVu Sans Mono:bold:size=10}CPU${font}${color}
${hr 2}
${cpugraph 30 280 00ff88 ff4444 -t -l}
Total: ${cpu cpu0}%${alignr}${cpubar cpu0 8,160}
Core 0: ${cpu cpu1}%${alignr}${cpubar cpu1 8,160}
Core 1: ${cpu cpu2}%${alignr}${cpubar cpu2 8,160}
Core 2: ${cpu cpu3}%${alignr}${cpubar cpu3 8,160}
Core 3: ${cpu cpu4}%${alignr}${cpubar cpu4 8,160}
${if_match ${cpu cpu0} > 80}${color3}⚠ CPU temperature: ${hwmon 0 temp 1}°C${color}${else}CPU temp: ${hwmon 0 temp 1}°C${endif}
Top CPU:
${top name 1}${alignr}${top cpu 1}%
${top name 2}${alignr}${top cpu 2}%
${top name 3}${alignr}${top cpu 3}%

${color0}${font DejaVu Sans Mono:bold:size=10}MEMORY${font}${color}
${hr 2}
RAM:${alignr}$mem / $memmax
${membar 8,280}
${color4}Used: ${memperc}%${alignr}${mem}${color}
Free: ${memeasyfree}
Swap:${alignr}$swap / $swapmax
${swapbar 8,280}
Top Memory:
${top_mem name 1}${alignr}${top_mem mem 1}%
${top_mem name 2}${alignr}${top_mem mem 2}%
${top_mem name 3}${alignr}${top_mem mem 3}%

${color0}${font DejaVu Sans Mono:bold:size=10}DISK${font}${color}
${hr 2}
Root (/):${alignr}${fs_used /} / ${fs_size /}
${fs_bar 8,280 /}
${color4}Used: ${fs_used_perc /}%${color}
${if_mounted /home}Home (/home):${alignr}${fs_used /home} / ${fs_size /home}
${fs_bar 8,280 /home}
${color4}Used: ${fs_used_perc /home}%${color}${endif}
Disk I/O:${alignr}${diskio}
Read: ${diskio_read}${alignr}Write: ${diskio_write}

${color0}${font DejaVu Sans Mono:bold:size=10}NETWORK${font}${color}
${hr 2}
Interface: ${if_up eth0}eth0${else}${if_up wlan0}wlan0${else}${if_up enp0s3}enp0s3${else}N/A${endif}${endif}${endif}
IP:${alignr}${addr eth0}
Gateway:${alignr}${gw_ip}
DNS:${alignr}${nameserver 0}
Down: ${downspeed eth0}${alignr}Up: ${upspeed eth0}
${downspeedgraph eth0 30,140 4da6ff 00ff88 -t -l}${alignr}${upspeedgraph eth0 30,140 4da6ff ffcc00 -t -l}
Total Down: ${totaldown eth0}${alignr}Total Up: ${totalup eth0}
Today:${alignr}${execi 300 /home/user/.config/conky/daily_traffic.sh today}
Month:${alignr}${execi 600 /home/user/.config/conky/daily_traffic.sh month}

${color0}${font DejaVu Sans Mono:bold:size=10}TOP PROCESSES${font}${color}
${hr 2}
${color4}Name PID CPU% MEM%${color}
${top name 1} ${goto 160}${top pid 1} ${goto 210}${top cpu 1} ${goto 260}${top mem 1}
${top name 2} ${goto 160}${top pid 2} ${goto 210}${top cpu 2} ${goto 260}${top mem 2}
${top name 3} ${goto 160}${top pid 3} ${goto 210}${top cpu 3} ${goto 260}${top mem 3}
${top name 4} ${goto 160}${top pid 4} ${goto 210}${top cpu 4} ${goto 260}${top mem 4}
${top name 5} ${goto 160}${top pid 5} ${goto 210}${top cpu 5} ${goto 260}${top mem 5}
]];

3.2 Conky 变量快速参考

CPU 变量

变量 说明
${cpu cpu0} 总 CPU 使用率(所有核心)
${cpu cpu1} 核心 0 使用率
${cpu cpu2} 核心 1 使用率
${cpubar cpu0 8,160} 进度条,高 8px,宽 160px
${cpugraph 30 280} 历史曲线图,高 30px,宽 280px
${top name N} 第 N 高 CPU 进程的名称
${top cpu N} 第 N 高 CPU 进程的 CPU 占用百分比
${hwmon 0 temp 1} 传感器温度(使用 sensors 命令确认)

内存变量

变量 说明
${mem} / ${memmax} 已用 / 总 RAM
${memperc} RAM 使用百分比
${memeasyfree} 空闲 RAM(人类可读,如 "2.3 GiB")
${swap} / ${swapmax} 已用 / 总 Swap
${top_mem name N} 第 N 高内存进程的名称

磁盘变量

变量 说明
${fs_used /} 根分区已用空间
${fs_size /} 根分区总空间
${fs_used_perc /} 使用率百分比
${fs_bar 8,280 /} 使用率进度条
${diskio} 当前磁盘 I/O 操作数/秒
${diskio_read} / ${diskio_write} 读/写吞吐量

网络变量

变量 说明
${addr eth0} eth0 的 IPv4 地址
${gw_ip} 默认网关 IP
${downspeed eth0} 当前下载速度
${upspeed eth0} 当前上传速度
${totaldown eth0} 自启动以来的总下载量
${totalup eth0} 自启动以来的总上传量
${downspeedgraph eth0 30,140} 下载速度历史曲线图
${upspeedgraph eth0 30,140} 上传速度历史曲线图

4. 每日流量统计脚本

4.1 脚本:daily_traffic.sh


#!/bin/bash
# /home/user/.config/conky/daily_traffic.sh
# 跟踪主网卡的每日和每月网络流量。
# 由 Conky 通过 ${execi} 按指定间隔调用。
#
# 用法:daily_traffic.sh [today|month]
#
# 计数器存储在 /tmp/conky_traffic_<iface>.dat

INTERFACE="eth0" # 改为你当前使用的网卡名称
DATAFILE="/tmp/conky_traffic_${INTERFACE}.dat"
TODAY=$(date +%Y-%m-%d)
MONTH=$(date +%Y-%m)
NOW=$(date +%s)

# --- 如果数据文件不存在则初始化 ---
if [ ! -f "$DATAFILE" ]; then
cat > "$DATAFILE" <<EOF
# Conky traffic log — format: date rx_bytes tx_bytes
EOF
fi

# --- 从 /proc/net/dev 读取当前计数器 ---
read RX_NOW TX_NOW < <(awk -v iface="${INTERFACE}:" '
$1 == iface { print $2, $10 }
' /proc/net/dev)

if [ -z "$RX_NOW" ] || [ -z "$TX_NOW" ]; then
echo "N/A"
exit 1
fi

# --- 如果上次记录不是今天的,追加当前快照 ---
LAST_LINE=$(tail -1 "$DATAFILE" 2>/dev/null)
LAST_DATE=$(echo "$LAST_LINE" | awk '{print $1}')

if [ "$LAST_DATE" != "$TODAY" ]; then
echo "${TODAY} ${RX_NOW} ${TX_NOW} ${NOW}" >> "$DATAFILE"
# 仅保留最近 62 条记录(约 2 个月)
tail -n 62 "$DATAFILE" > "${DATAFILE}.tmp" && mv "${DATAFILE}.tmp" "$DATAFILE"
fi

# --- 计算今日流量 ---
if [ "$LAST_DATE" == "$TODAY" ]; then
START_RX=$(echo "$LAST_LINE" | awk '{print $2}')
START_TX=$(echo "$LAST_LINE" | awk '{print $3}')
TODAY_DOWN=$(( (RX_NOW - START_RX) / 1024 / 1024 ))
TODAY_UP=$(( (TX_NOW - START_TX) / 1024 / 1024 ))
else
TODAY_DOWN=0
TODAY_UP=0
fi

# --- 计算本月流量 ---
MONTHLY_DOWN=0
MONTHLY_UP=0
BASE_RX=""
BASE_TX=""

while IFS=' ' read -r date rx tx ts; do
[[ "$date" =~ ^# ]] && continue
[ -z "$date" ] && continue

if [[ "$date" == ${MONTH}-* ]]; then
if [ -z "$BASE_RX" ]; then
BASE_RX=$rx
BASE_TX=$tx
fi
LAST_MONTH_RX=$rx
LAST_MONTH_TX=$tx
fi
done < "$DATAFILE"

if [ -n "$BASE_RX" ]; then
MONTHLY_DOWN=$(( (LAST_MONTH_RX - BASE_RX) / 1024 / 1024 ))
MONTHLY_UP=$(( (LAST_MONTH_TX - BASE_TX) / 1024 / 1024 ))
fi

# --- 格式化输出 ---
format_traffic() {
local mb=$1
if [ "$mb" -lt 0 ]; then
mb=0
fi
if [ "$mb" -ge 1024 ]; then
echo "$(awk "BEGIN {printf \"%.1f\", $mb/1024}") GiB"
else
echo "${mb} MiB"
fi
}

case "${1:-today}" in
today)
echo "↓$(format_traffic $TODAY_DOWN) ↑$(format_traffic $TODAY_UP)"
;;
month)
echo "↓$(format_traffic $MONTHLY_DOWN) ↑$(format_traffic $MONTHLY_UP)"
;;
raw)
echo "today_rx=$TODAY_DOWN today_tx=$TODAY_UP month_rx=$MONTHLY_DOWN month_tx=$MONTHLY_UP"
;;
*)
echo "Usage: $0 [today|month|raw]"
;;
esac

4.2 工作原理

4.3 手动测试


# 赋予执行权限
chmod +x /home/user/.config/conky/daily_traffic.sh

# 测试所有模式
/home/user/.config/conky/daily_traffic.sh today
/home/user/.config/conky/daily_traffic.sh month
/home/user/.config/conky/daily_traffic.sh raw

# 检查数据文件
cat /tmp/conky_traffic_eth0.dat


5. 透明背景与桌面定位

5.1 真实透明(需要合成器)

实现真实透明效果(Conky 后面的窗口可见):


conky.config = {
    own_window = true,
    own_window_type = 'desktop',
    own_window_argb_visual = true,      -- 启用 ARGB 视觉
    own_window_argb_value = 0,          -- 0 = 背景完全透明
    own_window_transparent = true,
    double_buffer = true,
};

检查合成器是否运行:

# GNOME/Mutter:
pgrep -a mutter

# KDE/KWin:
pgrep -a kwin

# Compton/Picom:
pgrep -a picom

# 如果没有合成器,安装 Picom:
sudo apt install picom
picom --daemon

5.2 伪透明(无需合成器)

如果无法使用合成器,Conky 可以通过读取桌面壁纸来模拟透明效果:


conky.config = {
    own_window = true,
    own_window_type = 'desktop',
    own_window_transparent = true,      -- 读取壁纸像素
    own_window_argb_visual = false,
    double_buffer = true,
};

5.3 固定桌面位置


conky.config = {
    -- 锚定到屏幕右上角
    alignment = 'top_right',

-- 距边缘的偏移量
gap_x = 30, -- 距屏幕右边缘的像素数
gap_y = 60, -- 距屏幕顶边缘的像素数

-- 固定尺寸,防止 Conky 因内容变化而改变大小
minimum_width = 320,
minimum_height = 680,
maximum_width = 320,
};

5.4 窗口提示(Own Window Hints)说明


own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',

提示 效果
undecorated 无标题栏和边框
below 渲染在其他窗口之下(停留在桌面层级)
sticky 在所有虚拟桌面/工作区可见
skip_taskbar 不出现在任务栏中
skip_pager 不出现在工作区切换预览中

6. 自启动配置

6.1 方法 1:启动应用程序(GUI,推荐)

-d 标志将 Conky 守护进程化(fork 到后台运行)。

6.2 方法 2:systemd 用户服务

创建用户级别的 systemd 服务以获得更好的控制:


# /home/user/.config/systemd/user/conky.service
[Unit]
Description=Conky System Monitor
After=graphical-session.target
PartOf=graphical-session.target

[Service]
Type=forking
ExecStart=/usr/bin/conky -c /home/user/.config/conky/conky.conf -d
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
RestartSec=5

[Install]
WantedBy=graphical-session.target


# 启用服务
systemctl --user daemon-reload
systemctl --user enable conky.service
systemctl --user start conky.service

# 查看状态
systemctl --user status conky.service

# 查看日志
journalctl --user -u conky.service -f

6.3 方法 3:i3 / Sway 窗口管理器

如果使用平铺窗口管理器,在各自主配置中添加:


# /home/user/.config/i3/config  (或 ~/.config/sway/config)
exec --no-startup-id conky -c /home/user/.config/conky/conky.conf -d

# 自动让 Conky 窗口浮动
for_window [class="Conky"] floating enable, move position 1920 0

6.4 延迟启动(重要)

Conky 需要桌面完全加载后才能启动。短暂的延迟可以防止渲染异常:


#!/bin/bash
# /home/user/.config/conky/conky-start.sh
# 带延迟的自启动包装脚本

sleep 5
conky -c /home/user/.config/conky/conky.conf -d

或在 desktop 文件中:


# /home/user/.config/autostart/conky.desktop
[Desktop Entry]
Type=Application
Name=Conky Monitor
Exec=bash -c "sleep 5 && conky -c /home/user/.config/conky/conky.conf -d"
Hidden=false
X-GNOME-Autostart-enabled=true


7. 高级:多面板布局

如需分离面板(例如,CPU 在右侧,时钟在左侧):


# 创建独立的配置文件
/home/user/.config/conky/
├── conky.conf          # 主系统面板(右上角)
├── clock.conf          # 时钟和日历(顶部居中)
└── network.conf        # 纯网络面板(右下角)

时钟面板 (clock.conf):

conky.config = {
    alignment = 'top_middle',
    gap_y = 30,
    minimum_width = 200,
    minimum_height = 120,
    own_window = true,
    own_window_type = 'desktop',
    own_window_argb_visual = true,
    own_window_argb_value = 0,
    double_buffer = true,
    font = 'DejaVu Sans Mono:size=12',
    default_color = '#ffffff',
    update_interval = 1.0,
};

conky.text = [[
${alignc}${font DejaVu Sans Mono:bold:size=28}${time %H:%M:%S}${font}
${alignc}${font DejaVu Sans Mono:size=14}${time %A, %d %B %Y}${font}
${alignc}${time %Z} | Week ${time %V}
]];

启动所有面板:


conky -c /home/user/.config/conky/conky.conf -d
conky -c /home/user/.config/conky/clock.conf -d
conky -c /home/user/.config/conky/network.conf -d


8. 带注释的完整示例配置

以下是整合了上述所有元素的完整 /home/user/.config/conky/conky.conf


-- ============================================================
-- Conky 系统监视器
-- 位置:/home/user/.config/conky/conky.conf
-- ============================================================

conky.config = {
-- ── 显示 ─────────────────────────────────────────────
alignment = 'top_right',
gap_x = 30,
gap_y = 60,
minimum_width = 320,
minimum_height = 680,
maximum_width = 320,

-- ── 窗口 ──────────────────────────────────────────────
own_window = true,
own_window_type = 'desktop',
own_window_transparent = true,
own_window_argb_visual = true,
own_window_argb_value = 0,
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
double_buffer = true,

-- ── 时机 ──────────────────────────────────────────────
update_interval = 2.0,
cpu_avg_samples = 2,
net_avg_samples = 2,

-- ── 排版 ──────────────────────────────────────────
font = 'DejaVu Sans Mono:size=9',
use_xft = true,
xftalpha = 0.9,

-- ── 颜色(hex RRGGBB) ─────────────────────────────────
default_color = '#cccccc',
color0 = '#ffffff', -- 标题
color1 = '#00ff88', -- 正常
color2 = '#ffcc00', -- 警告
color3 = '#ff4444', -- 严重
color4 = '#4da6ff', -- 信息

-- ── 布局 ──────────────────────────────────────────────
draw_borders = false,
draw_outline = false,
draw_shades = false,
use_spacer = 'none',
no_buffers = true,
uppercase = false,
pad_percents = 2,
short_units = true,

-- ── 温度 ─────────────────────────────────────────
-- 根据 `sensors` 输出调整 hwmon 索引
-- hwmon 0 = k10temp (AMD) 或 coretemp (Intel)
};

conky.text = [[
${color0}${font DejaVu Sans Mono:bold:size=10} SYSTEM ${font}${color}
${hr 2}
Hostname ${alignr}${nodename}
Kernel ${alignr}${kernel}
Uptime ${alignr}${uptime}
Load Avg ${alignr}${loadavg 1} ${loadavg 2} ${loadavg 3}
Processes ${alignr}${running_processes} / ${processes}
Boot ${alignr}${boot_time}

${color0}${font DejaVu Sans Mono:bold:size=10} CPU ${font}${color}
${hr 2}
${cpugraph cpu0 30,300 00ff88 ff4444 -t -l}
Total ${alignr}${cpu cpu0}%
${cpubar cpu0 8,300}
${color4}Core 0 ${cpu cpu1}%${alignr}Core 1 ${cpu cpu2}%${color}
${color4}Core 2 ${cpu cpu3}%${alignr}Core 3 ${cpu cpu4}%${color}
${if_match ${cpu cpu0} > 80}${color3}⚠ ${hwmon 0 temp 1}°C${color}${else}Temp ${hwmon 0 temp 1}°C${endif} ${alignr}Freq ${freq_g cpu0} GHz
${voffset 4}
${color4}Top CPU${color}
${top name 1} ${goto 190}${top cpu 1}%
${top name 2} ${goto 190}${top cpu 2}%
${top name 3} ${goto 190}${top cpu 3}%

${color0}${font DejaVu Sans Mono:bold:size=10} MEMORY ${font}${color}
${hr 2}
RAM ${alignr}${mem} / ${memmax}
${membar 8,300}
${color4}Used ${memperc}%${color}${alignr}Free ${memeasyfree}
${if_match ${swapperc} > 0}
Swap ${alignr}${swap} / ${swapmax}
${swapbar 8,300}
${endif}
${voffset 4}
${color4}Top Memory${color}
${top_mem name 1} ${goto 190}${top_mem mem 1}%
${top_mem name 2} ${goto 190}${top_mem mem 2}%
${top_mem name 3} ${goto 190}${top_mem mem 3}%

${color0}${font DejaVu Sans Mono:bold:size=10} DISK ${font}${color}
${hr 2}
/ ${alignr}${fs_used /} / ${fs_size /}
${fs_bar 8,300 /}
${color4}Used ${fs_used_perc /}%${color}
${if_mounted /home}
/home ${alignr}${fs_used /home} / ${fs_size /home}
${fs_bar 8,300 /home}
${endif}
I/O ${alignr}Read ${diskio_read} / Write ${diskio_write}

${color0}${font DejaVu Sans Mono:bold:size=10} NETWORK ${font}${color}
${hr 2}
${if_up eth0}\
IF eth0
IP ${alignr}${addr eth0}
Down ${downspeed eth0}${alignr}Up ${upspeed eth0}
${downspeedgraph eth0 30,150 4da6ff 00ff88 -t -l}\
${alignr}${upspeedgraph eth0 30,150 4da6ff ffcc00 -t -l}
Total ↓${totaldown eth0} ↑${totalup eth0}
${else}${if_up wlan0}\
IF wlan0
IP ${alignr}${addr wlan0}
Down ${downspeed wlan0}${alignr}Up ${upspeed wlan0}
${downspeedgraph wlan0 30,150 4da6ff 00ff88 -t -l}\
${alignr}${upspeedgraph wlan0 30,150 4da6ff ffcc00 -t -l}
${else}\
${color3}No active network interface${color}
${endif}${endif}
Traffic Today ${execi 300 /home/user/.config/conky/daily_traffic.sh today}
Traffic Month ${execi 600 /home/user/.config/conky/daily_traffic.sh month}

${color0}${font DejaVu Sans Mono:bold:size=10} TOP PROCESSES ${font}${color}
${hr 2}
${color4}Name PID CPU% MEM%${color}
${top name 1} ${goto 140}${top pid 1} ${goto 190}${top cpu 1}% ${goto 240}${top mem 1}%
${top name 2} ${goto 140}${top pid 2} ${goto 190}${top cpu 2}% ${goto 240}${top mem 2}%
${top name 3} ${goto 140}${top pid 3} ${goto 190}${top cpu 3}% ${goto 240}${top mem 3}%
${top name 4} ${goto 140}${top pid 4} ${goto 190}${top cpu 4}% ${goto 240}${top mem 4}%
${top name 5} ${goto 140}${top pid 5} ${goto 190}${top cpu 5}% ${goto 240}${top mem 5}%
]];


9. 故障排查

症状 原因 修复方法
Conky 启动但无可见窗口 own_window_type 设置错误 尝试 desktopnormaloverride
内容闪烁 未开启双缓冲 设置 double_buffer = true
显示黑色矩形而非透明 合成器未运行或窗口类型错误 设置 own_window_type = 'desktop' 并启用合成器
hwmon 显示错误的温度或 "0" hwmon 索引不正确 运行 sensors 并检查索引;依次尝试 hwmon 0/1/2
网络速度显示 0 网卡名称错误 使用 ip link show 检查网卡名称并更新配置
每日流量显示 "N/A" 脚本不可执行或路径错误 chmod +x daily_traffic.sh 并验证配置中的路径
${top} 不显示内容 Conky 缺少权限 某些内核限制进程信息获取;尝试以用户身份运行 Conky
屏幕分辨率变更后 Conky 窗口位置漂移 缺少 sticky 提示 own_window_hints 中添加 sticky
Conky 停留在所有窗口之上 应使用 below own_window_hints 改为包含 below
HiDPI 屏幕字体显示不佳 未设置 Xft DPI 在配置中添加 xftdpi = 192(2x 缩放)