Skip to main content

🔺 Programs

Secure with specific version

The ver'…' - allows to select specific version, branch or commit hash, also know as permalink.

It is recommended but not required (HEAD branch auto selected).

Example:

zi wait lucid for \  ver'88f3dae4f5391db589257ea069ab8fe4717c22c6' \    z-shell/F-Sy-H
Your own style

Command wrap example for cleaner or prefered syntax.

z_lucid() {  zi ice lucid ver'master' "$@"}zi0a() {  z_lucid wait'0a' "$@"}zi_program() {  zi0a as'program' "$@"}

Then load as:

zi_program has'…'zi light …zi_program has'…' pick'…' from'…'zi light …zi_program has'…'zi light …

Without for syntax

GH-R: dandavison/delta

zi ice wait lucid as'program' from'gh-r' sbin'**/delta -> delta'zi light dandavison/delta

GH-R: denisidoro/navi

zi ice lucid wait as'program' from"gh-r" has'fzf'zi light denisidoro/navi

GH-R: junegunn/fzf

zi ice from'gh-r' as'program'zi light @junegunn/fzf

GH-R: sharkdp/fd

zi ice from'gh-r' as'program' mv'fd* fd' sbin'**/fd(.exe|) -> fd'zi light @sharkdp/fd

GH-R: sharkdp/bat

zi ice from'gh-r' as'program' mv'bat* bat' sbin'**/bat(.exe|) -> bat'zi light @sharkdp/bat

GH-R: sharkdp/hexyl

zi ice from'gh-r' as'program' mv'hexyl* hexyl' sbin'**/hexyl(.exe|) -> hexyl'zi light @sharkdp/hexyl

GH-R: sharkdp/hyperfine

zi ice from'gh-r' as'program' mv"hyperfine* hyperfine" sbin"**/hyperfine(.exe|) -> hyperfine"zi light @sharkdp/hyperfine

GH-R: sharkdp/vivid

zi ice from'gh-r' as'program' mv'vivid* vivid' sbin'**/vivid(.exe|) -> vivid'zi light @sharkdp/vivid

GH-R: ogham/exa

zi ice from'gh-r' as'program' sbin'**/exa -> exa' atclone'cp -vf completions/exa.zsh _exa'zi light ogham/exa

GH-R: docker/compose

zi ice from"gh-r" as'program' mv'docker* -> docker-compose'zi light docker/compose

GH-R: neovim/neovim

zi ice as'program' from'gh-r' \  bpick'nvim-linux64.tar.gz' sbin'**/bin/nvim -> nvim'zi light neovim/neovim

GH-R: direnv/direnv

zi ice as'program' from'gh-r' mv'direnv* -> direnv'zi light direnv/direnv

GH-R: mvdan/sh

zi ice as'program' from'gh-r' mv'shfmt* -> shfmt'zi light mvdan/sh

GH-R: b4b4r07/gotcha

zi ice as'program' from'gh-r' mv'gotcha_* -> gotcha'zi light b4b4r07/gotcha

SC: zdharma/revolver

zi ice wait lucid as'program' pick'revolver'zi light zdharma/revolver

SC: zdharma/zunit

zi ice wait lucid as'program' pick'zunit' atclone'./build.zsh' atpull'%atclone'zi load @zdharma/zunit

SC: Osse/git-scripts/git-unique

zi ice as'program' id-as'git-unique' pick'git-unique'zi snippet https://github.com/Osse/git-scripts/blob/master/git-unique

SC: mfaerevaag/wd

zi ice wait lucid as'program' cp'wd.sh -> wd' mv'_wd.sh -> _wd' atpull'!git reset --hard' pick'wd'zi light mfaerevaag/wd

SC: z-shell/zsh-diff-so-fancy

zi ice wait lucid as'program' pick'bin/git-dsf'zi load z-shell/zsh-diff-so-fancy

SC: obihann/archey-osx

zi ice wait lucid as'program' pick'bin/archey'zi light obihann/archey-osx

SC: eth-p/bat-extras

zi ice lucid wait as'program' has'bat' pick'src/*'zi light eth-p/bat-extras

SC: paulirish/git-open

zi ice lucid wait as'program' has'git' atclone"cp git-open.1.md $ZPFX/man/man1/git-open.1" atpull'%atclone'zi light paulirish/git-open

SC: LuRsT/hr

zi ice lucid wait as'program' atclone"cp hr.1 $ZPFX/man/man1" atpull'%atclone'zi light LuRsT/hr

SC: z-shell/imgur-album-downloader

zi ice lucid wait as'program' has'python3' pick'imguralbum.py'zi light z-shell/imgur-album-downloader

SC: Seirdy/stpv

zi ice lucid wait as'program' has'fzf' pick'fzfp'zi light Seirdy/stpv
zi ice lucid wait as'program' has'ueberzug' pick'stpvimg'zi light Seirdy/stpv
zi ice lucid wait as'program' pick'stpv'zi light Seirdy/stpv

SC: exiftool/exiftool

zi ice lucid wait as'program' has'perl' has'convert' pick'exiftool'zi light exiftool/exiftool

SC: smxi/inxi

if [ -z "$SSH_CONNECTION" ]; then  zi ice lucid wait as'program' has'perl' pick'inxi'  zi light smxi/inxifi

SC: dylanaraps/pash

zi ice lucid wait as'program' has'gpg'zi light dylanaraps/pash

SC: hackerb9/lsix

zi ice lucid wait as'program' has'mogrify'zi light hackerb9/lsix

SC: denilsonsa/prettyping

zi ice lucid wait as'program' pick'prettyping' has'ping'zi light denilsonsa/prettyping

SC: greymd/tmux-xpanes

zi ice lucid wait as'program' has'tmux' pick'bin/xpanes'zi light greymd/tmux-xpanes

SC: DanielG/dxld-mullvad/blob/master/am-i-mullvad.sh

zi ice lucid wait as'program' has'jq'zi snippet 'https://github.com/DanielG/dxld-mullvad/blob/master/am-i-mullvad.sh'

B: abishekvashok/cmatrix

# Regular syntaxzi ice lucid as'program' atclone"autoreconf -i && PREFIX=$ZPFX ./configure" \  atpull'%atclone' pick"$ZPFX/cmatrix" make"PREFIX=$ZPFX"zi light abishekvashok/cmatrix
# With the for syntaxzi for as'program' atclone"autoreconf -i && PREFIX=$ZPFX ./configure" \  atpull'%atclone' pick"$ZPFX/cmatrix" make"PREFIX=$ZPFX" abishekvashok/cmatrix

B: tj/git-extras

zi ice wait lucid as'program' pick'$ZPFX/bin/git-*' make'PREFIX=$ZPFX' nocompilezi light tj/git-extras

B: k4rthik/git-cal

zi ice wait lucid as'program' atclone'perl Makefile.PL PREFIX=$ZPFX' atpull'%atclone' make'install' pick'$ZPFX/bin/git-cal'zi light k4rthik/git-cal

B: aaronNG/reddio

zi ice lucid wait as'program' has'jq' pick'reddio' from'gitlab'zi light aaronNG/reddio

B: TheLocehiliosan/yadm

zi ice lucid wait as'program' has'git' pick'yadm' atclone"cp yadm.1 $ZPFX/man/man1" atpull'%atclone'zi light TheLocehiliosan/yadm

B: sdushantha/farge

zi ice if'[[ -n "$WAYLAND_DISPLAY" ]]' lucid wait as'program' pick'farge'zi light 'sdushantha/farge'

B: dylanaraps/neofetch

zi ice lucid wait as'program' pick'neofetch' atclone"cp neofetch.1 $ZPFX/man/man1" atpull'%atclone'zi light dylanaraps/neofetch

B: vim/vim

zi ice as'program' atclone'rm -f src/auto/config.cache; ./configure' \  atpull'%atclone' make pick'src/vim'zi light vim/vim

B: direnv/direnv

zi ice as'program' make'!' atclone'./direnv hook zsh > zhook.zsh' atpull'%atclone' src'zhook.zsh'zi light direnv/direnv

B: mptre/yank

zi ice as'program' pick'yank' makezi light mptre/yank

B: pyenv/pyenv

zi ice atclone'PYENV_ROOT="$PWD" ./libexec/pyenv init - > zpyenv.zsh' \  atinit'export PYENV_ROOT="$PWD"' atpull"%atclone" \  as'program' pick'bin/pyenv' src"zpyenv.zsh" nocompile'!'zi light pyenv/pyenv

B: sdkman/sdkman-cli

zi ice as'program' pick'$ZPFX/sdkman/bin/sdk' id-as'sdkman' run-atpull nocompile \  atclone'curl -s "https://get.sdkman.io?rcupdate=false" -o scr.sh; SDKMAN_DIR=$ZPFX/sdkman bash scr.sh' \  atpull'SDKMAN_DIR=$ZPFX/sdkman sdk selfupdate' \  atinit'export SDKMAN_DIR=$ZPFX/sdkman; source $ZPFX/sdkman/bin/sdkman-init.sh'zi light z-shell/0

B: asciinema/asciinema

zi ice as"program" wait lucid atinit"export PYTHONPATH=$ZPFX/lib/python3.10/site-packages/" \  atclone"PYTHONPATH=$ZPFX/lib/python3.10/site-packages/ python3 setup.py --quiet install --prefix $ZPFX" \  atpull"%atclone" test"0" pick"$ZPFX/bin/asciinema"zi load asciinema/asciinema

RA: Rust and Peltoche/lsd

zi ice rustup cargo'!lsd' id-as'lsd' as'program' nocompilezi load z-shell/0

RA: Rust and ogham/exa

# the `ls' shim exposing the `exa' binaryzi ice rustup cargo'!exa -> ls' id-as'exa' as'program' nocompilezi load z-shell/0
# shim with standard error redirected to /dev/nullzi ice rustup cargo'!E:exa' id-as'exa' as'program' nocompilezi load z-shell/0

RA: Rust and ogham/exa, Peltoche/lsd

zi ice rustup cargo'exa;lsd' nocompilezi load z-shell/0
# exposes their binaries by altering $PATHzi ice rustup cargo'exa;lsd' as'program' pick"bin/(exa|lsd)" nocompilezi load z-shell/0

RA: Rust compiler environment

# Just install rust and make it available globally in the systemzi ice id-as"rust" wait"0" lucid rustup as"program" pick"bin/rustc" \  atload="export nocompile CARGO_HOME=\$PWD RUSTUP_HOME=\$PWD/rustup"zi load z-shell/0

With for syntax

GH-R: argoproj/argo-cd

zi light-mode for \  as'completions' atclone'./argocd* completion zsh > _argocd' \  atpull'%atclone' from'gh-r' if'[[ "$(uname -m)" == x86_64 ]]' \  sbin'argocd* -> argocd' \    argoproj/argo-cd

GH-R: junegunn/fzf + grab extras

zi for atclone'mkdir -p $ZPFX/{bin,man/man1}' atpull'%atclone' from'gh-r' dl'      https://raw.githubusercontent.com/junegunn/fzf/master/shell/completion.zsh -> _fzf_completion;      https://raw.githubusercontent.com/junegunn/fzf/master/shell/key-bindings.zsh -> key-bindings.zsh;      https://raw.githubusercontent.com/junegunn/fzf/master/man/man1/fzf-tmux.1 -> $ZPFX/man/man1/fzf-tmux.1;      https://raw.githubusercontent.com/junegunn/fzf/master/man/man1/fzf.1 -> $ZPFX/man/man1/fzf.1' \  id-as'junegunn/fzf' nocompile pick'/dev/null' sbin'fzf' src'key-bindings.zsh' \    @junegunn/fzf

GH-R: junegunn/fzf, sharkdp/fd, sharkdp/bat, ogham/exa

zi from"gh-r" as"null" for \  sbin"fzf" junegunn/fzf \  sbin"**/fd" @sharkdp/fd \  sbin"**/bat" @sharkdp/bat \  sbin"**/exa -> exa" atclone"cp -vf completions/exa.zsh _exa" ogham/exa

SC: zdharma/revolver, zdharma/zunit

zi wait lucid for as'program' \  atclone'ln -sfv revolver.zsh-completion _revolver' \  atpull'%atclone' pick'revolver' \    @zdharma/revolver \  as'completion' atclone'./build.zsh; ln -sfv zunit.zsh-completion _zunit' \  atpull'%atclone' sbin'zunit' \    @zdharma/zunit

SC: tj/n

zi light-mode for as'program' atinit'export N_PREFIX="$PWD/n"; \[[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH+=":$N_PREFIX/bin"' pick"bin/n" \    tj/n

GH-R: pnpm/pnpm

tip
  • Manage node version:
  • Install required release:
    • See available releases in the repository.
    • Use bpick to match most relevant part of the release name as shown in example bellow.
zi light-mode for id-as'pnpm' from'gh-r' bpick'*-linux-x64' as'program' \  atinit'export PNPM_HOME=$ZPFX/bin; [[ -z $NODE_PATH ]] && \  export NODE_PATH=$PWD' sbin'pnpm* -> pnpm' nocompile \    pnpm/pnpm

GH-R: yarnpkg/yarn

zi light-mode for from'gh-r' as'program' \  atinit'export PATH="$HOME/.yarn/bin:$PATH"' mv'yarn* -> yarn' \  pick"yarn/bin/yarn" bpick'*.tar.gz' \    yarnpkg/yarn

B: jarun/nnn

zi light-mode for pick'misc/quitcd/quitcd.zsh' as'program' nocompile \  sbin make \    jarun/nnn

SC: homebrew/brew

zi for as'null' depth'3' nocompletions sbin'bin/brew' \  atclone'+zi-message "{auto}Installing brew …"; ./bin/brew update --preinstall; \    ln -sf $PWD/completions/zsh/_brew $ZI[COMPLETIONS_DIR]; \    rm -f brew.zsh; ./bin/brew shellenv --dummy-arg > brew.zsh; \    zcompile brew.zsh;' \  atpull'%atclone' src'brew.zsh' \    @homebrew/brew

RA: Rust compiler environment + completions

zi id-as"rust" wait=1 as=null sbin="bin/*" lucid rustup nocompile \  atload="[[ ! -f ${ZI[COMPLETIONS_DIR]}/_cargo ]] && zi creinstall -q rust; \export CARGO_HOME=\$PWD; export RUSTUP_HOME=\$PWD/rustup" for \  z-shell/0