Skip to content

ryanccn/vivid-zsh

Repository files navigation

vivid-zsh

vivid LS_COLORS as zsh plugins.

installable anywhere that supports git repositories as plugins.

why do i need this?

simply put, this is faster than calling an external CLI.

benchmark results via hyperfine

Command Mean [ms] Min [ms] Max [ms] Relative
plugin 0.2 ± 0.4 0.0 3.1 1.00
cli 3.8 ± 2.4 1.9 27.3 16.36 ± 27.48
$ hyperfine --shell "zsh" --warmup=5 'vivid_theme=nord source vivid-zsh.plugin.zsh' -n plugin 'export LS_COLORS="$(vivid generate nord)"' -n cli

yes, this is faster than rust. insane.

how do i install this?

it depends on what you are using for managing your zsh plugins.

antidote

  1. add ryanccn/vivid-zsh to your .zsh_plugins.txt
  2. set
    vivid_theme="<name of theme>"
    before antidote load

antigen

  1. antigen bundle ryanccn/vivid-zsh
  2. set
    vivid_theme="<name of theme>"
    in your ~/.zshrc before antigen loads

oh my zsh

  1. clone the repo into the oh my zsh directory
    $ git clone https://github.com/ryanccn/vivid-zsh ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/vivid-zsh
  2. add the plugin to your ~/.zshrc
    plugins=(
       # other plugins...
       vivid-zsh
    )
  3. configure vivid_theme="<name of theme>" before oh my zsh is initialized

manual (no plugin manager)

  1. clone the repo
    $ mkdir -p ~/.zsh
    $ git clone https://github.com/ryanccn/vivid-zsh.git ~/.zsh/vivid-zsh
  2. add this to your .zshrc
    vivid_theme="<name of theme>"
    source ~/.zsh/vivid-zsh/vivid-zsh.zsh
  3. restart your shell

how does this work?

  • gets list of themes from vivid
  • gets each theme from vivid
  • puts them in their own zsh file with export LS_COLORS=
  • sources one of them depending on what you set

how do i build themes locally?

  1. install vivid
  2. run ./build.sh

license

mit