Chainy,年轻人的第一个Zsh主题

终端的主题嘛,还是自己写的顺眼(

在用了整整一年的robbyrussell主题后,决定去码头整点终端主题。一方面我需要一个类似af-magic那样的multi-line prompt;另一方面,由于自己平常需要conda、git,所以希望主题能够呈现出尽可能多的信息。最后在af-magic和astro主题的基础上,修修补补的写出了这个主题。

Chainy Zsh Theme以简洁和高扩展性为设计宗旨,将信息模块(blocks)使用Unicode字符串联形成链条,并且允许用户基于自己的需求增删模块/调整顺序。如果你也喜欢这样的风格,不妨一起来丰富和完善!

项目地址在这里

兼容性

需要安装powerline-patched 字体才能正常显示部分图标,目前仅在fira-code上进行过测试。

安装与配置

  • 下载generate_theme.sh文件,使用该文件生成.zsh-theme。使用方法如下:
    • -l选项可显示当前版本的主题支持显示的信息块。
      1
      2
      3
      4
      5
      6
      7
      8
      > zsh generate_theme.sh -l
      script usage:
      This is a generator for chainy-zsh-theme. Specify the blocks you wish to present in PS1, and this script will generate corresponding file.
      Supported blocks are:
      ip : ip address
      path : current working directory
      git : git statues
      conda : current conda environment
    • -d <target_dir>可指定主题文件的生成目录,默认为当前目录。
    • 在脚本后指定想要加载的信息块,则生成的主题文件中,指定的信息块会按照顺序依次出现在PS1中。
      1
      zsh generate_theme.sh git ip path
      上面的命令生成的主题文件为

仅git、ip、path模块的主题样例

  • (如果你实在不想使用上面的脚本,仓库里也有一个我最喜欢的默认主题文件~)
  • 生成主题文件后,移动到~/.oh-my-zsh/themes/目录下
    1
    mv chainy.zsh-theme ~/.oh-my-zsh/themes/
  • .zshrc文件中,将ZSH_THEME修改为ZSH_THEME="chainy"

截图

  • 默认情况下,该主题会在第一行显示目录、时间、用户名主机名等信息,并在第二行开始接收命令

  • 存在git repo/ip/conda环境时,会显示当前branch和status

TODO

  • 增加其他的git信息,例如Head版本号git_prompt_short_sha
  • 优化配色方案
  • 增加功能选择脚本