如何修改Linux下screenfetch的默认ASCII 艺术logo ?
文章目录
- 引入
- 效果
- 实践
- 找到本地screenfetch的位置, 并进入其目录下
- 用root 打开screenfetch
- 比如我把我的图案换成那个麋鹿的, 算了还是下面这个吧
- 撤销
引入
我们运行screenfetch命令后, 它会显示一个ASCII 艺术logo图案, 然后再打印系统相关的详细信息:
今天上网时发现有好的好看的ASCII 艺术logo图案(下面使用图案代替), 比如下面这个:
/)/)/) /).-')////((.'_.--' .(\(\(\ n/(/.')_ .((((_/ .' .-`))))))) `-._ ('.' \`(\(_._ ` ( `. (/ | \ ( `-.\`-. \ `-. / `.`. \ \`.`. | / /) \ \ | L`.`._. ||_ (() `.\ ) F(`._ `. < .'.-' \`-._____ || .' /`(\`._.._(\(\)_.'.'-------------.___ `-.(`._ `-./ / _.' .'(.-.| \_`.__.-< `. . .-' `-. _> `-._((`.__.-'_.-'(.--' ' | \ \ /| \.-./ |\ `-. _.'>.___,-'`.( o < | | `o o' | /(`'.-' --. \.' / .' _ | | | | ( .'/ o .-' \ |(__.-.`-._ -' ' \ \ / / ' / _/ | J\_ `. _.__.L | | J ( .'\`. _/-./`-< .-L|'`-| ||\\V/ || `' L \ / /|J || \ |||| ||| | |_| )|| || )|||| ||| || / ||J(| (| / |||) (|| ||| ||||| || / /|||| ||| |(| ||||| || / / |||| ||| ||| |||
_______.------.______/ |_/ |_/_|_/// |__| \\__________// |--( \\---------'-' '-' '-' `-` '-' `-`
但我最终换成了这个

它是怎么做到的呢? 一开始我以为这个图案本就在Linux系统上, 但后面慢慢查找才发现, 原来这些图案都集中在screenfetch的配置里面, 当运行screenfetch时它会确定当前的系统, 与if语句里面的条件匹配就会输出这个系统对应图案, 然后是后面调用系统的信息.
效果
下面是我修改后的输出图案

实践
记得先把文件搞一个备份, 比如把原文件的备份命名为screenfetch.backup.
找到本地screenfetch的位置, 并进入其目录下

大概率是需要root权限的, 所以打开使用root来修改, 否则你修改完后发现无法保存.
用root 打开screenfetch
sudo vim screenfetch
在3000多行处是各个图案的修改处.我的Fedora在3716行, vim的普通模式下直接用/你的操作系统名字, 我使用的是Fedora, 所以是 /Fedora 然后按下Enter, 一直n(下一个)到所对应的修改处就行.

我截图的是一个模块, 所有的都是以"操作系统名字") 开始, 以图案两个分号;;结束.
3716 "Fedora") # 如果是Fedora系统
3717 if [[ "$no_color" != "1" ]]; then # 如果未禁用颜色
3718 c1=$(getColor 'white') # 设置c1为白色
3719 c2=$(getColor 'light blue') # 设置c2为淡蓝色
3720 fi
3721 if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi # 如果用户自定义了颜色,则使用自定义颜色
3722 startline="0" # ASCII艺术开始的起始行
3723 logowidth="37" # 徽标/ASCII艺术的宽度
3724 fulloutput=( # 存储Fedora的ASCII艺术内容(数组)
其他的不用多说, 看这个注解就能明白, 这里强调一点的是:徽标/ASCII艺术的宽度logowidth这个指标, 你可以根据你图案的宽度设定一个, 保存文件后, 运行screenfetch, 遇到的问题是旁边的系统输出信息不对齐, 这时候你要操作了, 而操作的就是下面这个各行的%s前面加减空格
//图案替代部分
3725 "${c1} _nnnn_ %s"
3726 "${c1} dGGGGMMb ,${c2}\"\"\"\"\"\"\"\"\"\"\"\"\"${c1}. %s"
3727 "${c1} @p~qp~~qMb ${c2}| Linux Rules! |${c1} %s"
3728 "${c1} M|@||@) M| ${c2}_;..............'${c1} %s"
3729 "${c1} @,----.JM| ${c2}-'${c1} %s"
3730 "${c1} JS^\\__/ qKL %s"
3731 "${c1} dZP qKRb %s"
3732 "${c1} dZP qKKb %s"
3733 "${c1} fZP SMMb %s"
3734 "${c1} HZM MMMM %s"
3735 "${c1} FqM MMMM %s"
3736 "${c1} __| \". |\\dS\"qML %s"
3737 "${c1} | \`. | \`' \\Zq %s"
3738 "${c1}_) \\.___.,| .' %s"
3739 "${c1}\\____ )MMMMMM| .' %s"
3740 "${c1} \`-' \`--' ${c2}hjm${c1} %s")
比如我把我的图案换成那个麋鹿的, 算了还是下面这个吧
( .-.' `; `-._ __ _c~~p ,---------. `-`-. (_, .-:' `; `-._,---'oo ) \ '( @ > ,'o"( (_, )( O O )/ _) ( (__,-' ,'o"( )>`=^=' / / ) ( (__,-' )\ , . / /_,' / `-'._.--._( )\\ |-----'| / \ / ||| |||`-'._.--._.-'||__| |_|__| ===m""m=== ||| |||Hippo Birdie Two Ewes
把备份的文件命令成screenfetch.backup1, 然后复制一份改命令为screenfetch, 来修改它

把所对应的代码复制过来, 粘贴到其他文件, 完善好之后, 替换原来的.

调整一下格式, 和其他的代码保持一样的风格,这个就是企鹅替换成了河马和小鸟的, 然后保存.

运行screenfetch, 发现右边输出信息没有对其, 再打开修改一下, 你可以像我一样画一个方框, 然后以此为基准调整

将第1行向左移到2格: 2<–1 即光标放在这行末尾%s的前面, 退格2次
1<-2,3
8->2
倒数3行向右若干
注意:第一行也就是上面截图3725, 第一个${c1}开头的地方), 其他的是基于第一行的相对位置.
再次运行screenfetch 后, 我们发现图案的行数比打印的系统信息少, 所以给图再添3行.

为了让图居中, 我给上面天加了1行, 下面添加了2行, 注意括号要移到最后一行的后面.

保存运行着看下效果, 完美!

差点颜色, 可以通过c1和c2修改, 比如我想把这只鸟的炸毛改成蓝色, 颜色在其标签后面起作用, 比入c1上面定义了是白色, 所以它这行后面是白色的. 我们要把炸毛改成蓝色, 就要在它前面加一个c2, 它后面依然是白色, 所以得加一个c1.

你会发现改动的screenfetch配置里面的图案就不成样子了, 所以我就改就改这一处, 我对颜色不是要求太高, 就到这样子了.
撤销
把改动前的备份文件还原成screenfetch就行了.
