为终端设置 ASCII ART
2021-09-21 17:30:11 #WSL
突发奇想,想在进入 WSL 时,显示用于欢迎的 ASCII ART,最好还是彩色的。找了诸如figlet、toilet等工具,都不好用,于是写了一个 python 脚本来解决这个问题
虽然这玩意儿没什么用,但是搞的好看心情舒畅哇 😄
成果图如下,可以实现随机色彩:

这里用到了 python 库:pyfiglet,用于实现字符串转变为 ASCII ART;然后通过增加颜色代码,来实现随机色彩输出
1 |
|
然后通过写入~/.zshrc来默认启动
1 | python $HOME/.script/rainbow-ascii-art.py |
代码挺简单,但是在测试的时候发现折磨人的问题了
一开始,可以在打开 shell 时正常输出 ASCII ART,但是通过 ranger 的S命令进入当前停留目录时,也会输出
通过排查 ranger 的S命令,得到如下
1 | map S shell $SHELL |
ranger 通过$SHELL打开一个新的子 shell,打开子 shell 时会调用配置文件~/.zshrc,就会重复输出
想到通过更改 ranger 的S命令,启动终端的同时设置一个环境变量,子 shell 通过判断环境变量是否存在,来判断当前 shell 是不是 rnager 打开的子 shell
最终更改如下:
1 |
|
为终端设置 ASCII ART
2021-09-21 17:30:11 #WSL
突发奇想,想在进入 WSL 时,显示用于欢迎的 ASCII ART,最好还是彩色的。找了诸如figlet、toilet等工具,都不好用,于是写了一个 python 脚本来解决这个问题
虽然这玩意儿没什么用,但是搞的好看心情舒畅哇 😄
成果图如下,可以实现随机色彩:

这里用到了 python 库:pyfiglet,用于实现字符串转变为 ASCII ART;然后通过增加颜色代码,来实现随机色彩输出
1 |
|
然后通过写入~/.zshrc来默认启动
1 | python $HOME/.script/rainbow-ascii-art.py |
代码挺简单,但是在测试的时候发现折磨人的问题了
一开始,可以在打开 shell 时正常输出 ASCII ART,但是通过 ranger 的S命令进入当前停留目录时,也会输出
通过排查 ranger 的S命令,得到如下
1 | map S shell $SHELL |
ranger 通过$SHELL打开一个新的子 shell,打开子 shell 时会调用配置文件~/.zshrc,就会重复输出
想到通过更改 ranger 的S命令,启动终端的同时设置一个环境变量,子 shell 通过判断环境变量是否存在,来判断当前 shell 是不是 rnager 打开的子 shell
最终更改如下:
1 |
|