Shell prompt segments in Go

79ce5d1 Move generators into seg package

~fmac pushed to ~fmac/corylus git

a month ago

a347a31 Add Makefile

~fmac pushed to ~fmac/corylus git

5 months ago


Simple shell prompt generator in Go.


Corylus expects strings as arguments.

If an argument matches the name of a known segment generator, then the result will be appended.

If an argument does not match any generator then it is appended as string.

Edit the prompt variable in your shell configuration file, probably .bashrc, .zshrc or .profile.

For ZSH you may need to enable the prompt expansion by adding setopt PROMPT_SUBST to your .zshrc.

At the moment the available segments are:

  • cwd
  • cwd-count
  • hostname
  • tail
  • time-unix
  • username

Here is an example with some colors.

PS1='$(corylus \
	"[" hostname "] " \
	"\033[34m" username "\033[0m " \
	"\033[31m $? \033[0m " \
	"\033[35m" cwd "\033[0m " \
	"[" cwd-count " files] " \
	"[" time-unix "]" \

Which outputs with this format:

[maze] fmac  0  ~/r/c/.git [13 files] [1620754137]


go get git.sr.ht/~fmac/corylus


Of course you are free to send me a git-email with a patch that adds new segments.