Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/BrandonRoehl/zsh-clean

Minimal customizable ZSH theme
https://github.com/BrandonRoehl/zsh-clean

zsh

Last synced: 3 months ago
JSON representation

Minimal customizable ZSH theme

Awesome Lists containing this project

README

        

# zsh-clean
![Showcase](_README/img.png?raw=true)

A [pure](https://github.com/sindresorhus/pure) varient however.

Clean is not pure and pure is not clean

## Installation

Now integrates directly with [zsh prompt](https://github.com/zsh-users/zsh/blob/627c91357c29e6fbe8b32d1b5f17f02d555d8360/Functions/Prompts/promptinit#L200)

1. Add to your this repo to your `fpath`
2. Select your theme with `prompt clean`

### [antigen](https://github.com/zsh-users/antigen)

```zsh
antigen bundle BrandonRoehl/zsh-clean
# defaults to executing `prompt clean` or `prompt clean 256`
# based on your terminal
```

### zsh stock

```zsh
autoload -U promptinit
fpath=($prompt_themes /path/to/repo)
promptinit

prompt clean # for Xterm
prompt clean 256 # for Xterm 256
```

## Configuration

Add styles to your `.zshrc` these are the defaults

```zsh

## Checking vcs
# Global vcs_info
# Check if there are modifications and staged changes
zstyle ':vcs_info:*' get-revision true
# Clean only
# Check for untracked files
zstyle ':vcs_info:*' check-for-untracked true
# Check for prompt arrows up and down
zstyle ':vcs_info:*' check-head true

## Symbols
# Modified sym
zstyle ':vcs_info:*' unstagedstr '*'
# Staged sym
zstyle ':vcs_info:*' stagedstr '+'
# Untracked sym
zstyle ':vcs_info:*:clean:*' untrackedstr '.'
# Your head is behind remote
zstyle ':vcs_info:*:clean:*' headbehindstr '⇣'
# Your head is ahead remote
zstyle ':vcs_info:*:clean:*' headaheadstr '⇡'
# Prompt symbol
zstyle ':clean:normal:*' prompt-symbol '❯'
# Prompt symbol as root user
zstyle ':clean:root:*' prompt-symbol '#'

# Note that the * can be replaced with the vcs
# Example these are the symbols that will be used in a git repo
zstyle ':vcs_info:git:*' unstagedstr 'G*'
zstyle ':vcs_info:git:*' stagedstr 'G+'
zstyle ':vcs_info:git:clean:*' untrackedstr 'G.'
# only works with the vcs_info ones matching :vcs_info:svn:context:-all-
```

## Goals

Pure's main goal is to produce a really minimalistic setup and nothing
in the prompt.

While as in clean's main goal is to produce a clean code base with no
dependencies as well as supporting tons of customization.

So customizing the prompt to be supper crazy and over the top complicated
Or be a single line

## Differences

| Pure | Clean |
|------|-------|
| Requires Dependencies for async | Async prompt replacement without |
| Isn't customizable | Can completly replace the prompt |
| Custom methods for vcs | Uses `vcs_info` hooks |
| Doesn't show breakdown of vcs | Shows the breakdown like most other git prompts |
| Only works with git | Works with `git` `hg` `svn` and all others that `vcs_info` supports |