fastfetch Logo 定制 5 分钟上手:从 ASCII 艺术到终端图片显示
【免费下载链接】fastfetchA maintained, feature-rich and performance oriented, neofetch like system information tool.项目地址: https://gitcode.com/GitHub_Trending/fa/fastfetch
打开终端,跑一遍 fastfetch,右边那坨默认 Logo 用了半年没换过?这个系统本身跑得飞快,输出你的系统信息(OS、内核、CPU、内存、磁盘这些),但它真正容易被忽略的本事,是让 Logo 这半边也随你心意:换内置图、自己画、上颜色,甚至把一张真实的 PNG 图怼进终端里。下面这套流程,五分钟能走完。
一条命令换掉内置 Logo
fastfetch 内置了几百个 ASCII art(就是纯符号拼出来的图案)Logo,按发行版和常见软件命名,源码就在 src/logo/ascii/ 下,想抄哪个直接翻目录就行。
最省事的玩法是命令行直接指定:
# 换成 Ubuntu 的内置 Logo,并指定小号版本 fastfetch --logo ubuntu # 想要更小的图 fastfetch --logo ubuntu --logo-type small # 不想看 Logo? fastfetch --logo none注意两点:一是名字拼错不会报错,只是静默回退,发现"换了个寂寞"时先检查名字;二是--logo后面也可以直接跟一个文件路径,这个放到下一节细说。
写一个自己的 ASCII 文件,用 {1}{2} 占位符上颜色
不想用现成的,自己写一个文本文件就行,比如存成mylogo.txt:
{1}╭───────────────╮ {1}│ {2}MY SYSTEM │ {1}╰───────────────╯里面的{1}{2}就是 fastfetch 的颜色占位符:打印时每个占位符会被替换成你指定的颜色,占位符本身不会出现在输出里。颜色支持名称(red)、HEX(#FF8C00)、rgb(r,g,b)这几种写法,数字 1 到 9 都能用,超过 9 个就排不开了。
命令行即时看效果:
fastfetch --logo mylogo.txt --logo-color-1 39 --logo-color-2 "#FFD166"颜色看着不对的话,先确认文件有没有真的被当成带占位符的文本处理;如果{1}原样打印出来了,说明类型被当成了file-raw(原样输出),把类型指定回file即可。
一张 PNG 图显示在终端里
ASCII 终究是字符,想把一张真图片显示进终端,靠的是终端图像协议:简单说,就是终端事先约定好的一套"用转义序列描述图像像素"的格式。fastfetch 支持四种常用协议,选哪个取决于你的终端:
| 协议 | type 值 | 用在哪 | 特点 |
|---|---|---|---|
| Sixel | sixel | Konsole、Foot、WezTerm 等 | Linux 下最常见的选择 |
| Kitty | kitty/kitty-direct/kitty-icat | kitty、WezTerm | 后者由终端直接读文件或调用kitten icat,链路更短 |
| iTerm2 | iterm | macOS 的 iTerm2 | 唯一支持"保持宽高比"的协议,且必须同时给--logo-width和--logo-height |
| Chafa | chafa | 几乎所有终端 | 不是真图片,而是用 chafa 库把图转成字符块;终端不支持图像时的万能兜底 |
用 chafa 协议时还可以调符号集,比如--chafa-symbols block让画面用块状字符拼,颗粒感更细腻。另外 fastfetch 对图像 Logo 做了缓存,图没变时不会重复解码;改了图之后想强制刷新,把配置里的recache设为true就行。
用 fastfetch 配置 JSON 固定 Logo 的位置、大小和留白
命令行适合试,定型之后建议写进配置文件。仓库里的 presets/ 目录放了不少官方预设(neofetch、archey 风格等),可以当模板抄。JSON 配置里和 Logo 相关的字段,常用的有这么几个:
| 字段 | 干什么的 | 备注 |
|---|---|---|
source | Logo 来源:内置名、文件路径或图片路径 | 不填就是自动检测 |
type | Logo 类型:auto、builtin、file、sixel、kitty、iterm、chafa等 | 不填时按 auto 规则推断 |
position | left/top/right | 默认 left |
width/height | 图片 Logo 的字符宽高 | iTerm 协议必填 |
padding | 上下左右留白(字符数) | 对齐模块列表时很实用 |
printRemaining | 模块列表比 Logo 短时,是否补打剩余 Logo 行 | 默认 true |
recache | 是否强制重建图像 Logo 缓存 | 默认 false |
preserveAspectRatio | 不拉伸地填满宽高 | 仅 iTerm 协议生效 |
一个典型的图片 Logo 配置长这样:
{ "logo": { "type": "sixel", "source": "~/Pictures/logo.png", "width": 30, "position": "left", "padding": { "top": 2, "left": 2 } } }显示不对?先对这张排错速查表
| 症状 | 大概率原因 | 快速处理 |
|---|---|---|
| 图片没出来,终端里一堆乱码转义 | 终端不支持该图像协议 | 换chafa类型兜底,或确认终端开了 sixel 支持 |
| 图片出来了但被压扁 | 宽高给得不合理 | 调--logo-width/--logo-height;iTerm 协议可开--logo-preserve-aspect-ratio |
占位符颜色没生效,{1}原样显示 | 类型被识别成了 raw 输出 | 显式指定--logo-type file |
| Logo 比模块列表长,尾部被吃掉 | printRemaining关了 | 配置里设回"printRemaining": true |
| 换了图片,显示还是旧的 | 图像缓存在生效 | recache设true强制重建 |
排到最后发现"终端压根不支持图像",别折腾协议了,chafa 就是给这种情况准备的。
先花一分钟把内置 Logo 换成顺眼的,再慢慢琢磨自己的文件和占位符配色——Logo 这东西,起步快比一步到位重要。去试一把,你的终端值得比默认图好看一点。
【免费下载链接】fastfetchA maintained, feature-rich and performance oriented, neofetch like system information tool.项目地址: https://gitcode.com/GitHub_Trending/fa/fastfetch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考