Conky+Lua脚本显示异常窗口求助:桌面名言列表显示错乱
解决Conky窗口错乱与字体极小问题
一、字体问题修复
字体极小通常是因为Conky无法正确识别你指定的字体名称,而非字体未安装:
- 用
fc-list | grep "Liberation Mono"命令查询该字体的正确XFT名称,例如输出可能是Liberation Mono:style=Regular。 - 将
.conkyrc中的xftfont参数修改为正确名称,比如:xftfont = 'Liberation Mono:style=Regular:size=16', - 若仍有问题,换用系统默认预装的字体测试,比如
DejaVu Sans Mono:size=16。
二、窗口错乱修复(针对GNOME桌面)
GNOME桌面对desktop类型窗口的兼容性较差,调整窗口配置:
- 修改窗口类型:将
own_window_type从'desktop'改为'override':own_window_type = 'override', - 让窗口自适应内容:取消固定最小尺寸,限制最大宽度避免文本溢出:
minimum_width = 0, minimum_height = 0, maximum_width = 600,
三、Lua脚本优化(避免潜在问题)
- 初始化随机种子仅一次:将
math.randomseed(os.time())移到Lua脚本最顶部,避免每次调用函数时重复重置导致随机结果异常。 - 动态调整名言数量:将
num_quotes的随机生成逻辑移到缓存刷新时,确保每次轮播都随机3-4条:function conky_quote() if cache_expired() then local all = load_quotes() local num_quotes = math.random(3, 4) -- 每次刷新时随机数量 local selected = {} while #selected < num_quotes and #all > 0 do local i = math.random(#all) table.insert(selected, all[i]) table.remove(all, i) end write_cache(selected) end -- ... end - 优化缓存文件读取:给缓存文件名加引号,避免文件名含空格时
stat命令出错:local last_mod = io.popen("stat -c %Y '" .. cache_file .. "'"):read("*n")
四、测试步骤
- 关闭运行中的Conky进程:
killall conky - 重新启动Conky:
conky -c ~/.conkyrc
内容的提问来源于stack exchange,提问作者desert_ranger
相关产品推荐
相关产品推荐

