Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/pure-fish/pure

Pretty, minimal, and fast prompt for Fish shell inspired by sindresorhus/pure
https://github.com/pure-fish/pure

fish fish-plugin fish-prompt fisher prompt pure shell

Last synced: 13 days ago
JSON representation

Pretty, minimal, and fast prompt for Fish shell inspired by sindresorhus/pure

Awesome Lists containing this project

README

        

Pure.fish logo

[![ci-status]][ci-link] ![fish-3] [![release-version]][release-link] [![sponsors]][sponsor-link]

# _Pure_ `โฏโฎโฏ`

> Pretty, minimal and fast Fish ๐ŸŸ prompt, ported from [`zsh`](https://github.com/sindresorhus/pure).


Pure with dark colorscheme
Pure with light colorscheme

## Documentation

:sparkles: Check-out our [brand-new documentation][doc] for configurations, features and colours as well as contributing guide.

## :rocket: Install

**:warning: requirements**: fish `โ‰ฅ3.x`, [fisher](https://github.com/jorgebucaran/fisher):

```shell
fisher install pure-fish/pure
```

## Features

Fully **customizable** (colors, symbols and features):

* [Excellent prompt character `โฏ` ๐Ÿ› ][prompt-symbol]:

* [Change `โฏ` to red when previous command has failed ๐Ÿ› ][separate-error-symbol] ;
* [Start prompt with _current working directory_ ๐Ÿด][current-working-directory] ;
* [Compact-mode (single-line prompt) ๐Ÿด][single-line-prompt] ;

* [Check for new release on start ๐Ÿด๐ŸŒ][check-for-new-release] ;
* [Display _username_ and _hostname_ when in an `SSH` session ๐Ÿ› ][ssh-session] ;
* [Display command _duration_ when longer than `5` seconds ๐Ÿ› ][time-duration] ;
* [Display `Python` _virtualenv_ when activated ๐Ÿด๐Ÿ› ][python-virtualenv] ;
* [Display `AWS` profile when set ๐Ÿด๐Ÿ› ][aws-profile] ;
* [Display `VI` mode and custom symbol for non-insert mode ๐Ÿด๐Ÿ› ][vi-mode] ;
* [Display `kubernetes` context and namespace ๐Ÿด๐Ÿ› ][kubernetes] ;
* [Detect when running in a container (e.g. `docker`, `podman`, `LXC`/`LXD`) ๐Ÿด๐Ÿ› ][container-detection-docker]
* [Indicate if a `nix develop` shell is activated ๐Ÿด๐Ÿ› ][nix-os].
* [Show system time ๐Ÿด][time-duration] ;
* [Show number of running jobs ๐Ÿด][jobs] ;
* [Prefix when `root` ๐Ÿด๐Ÿ› ][working-as-root] ;
* [Display `git` branch name ๐Ÿด๐Ÿ› ][git] ;

* Display `*` when `git` repository is _dirty_ ;
* Display `โ‰ก` when `git` repository is _stashed_ ;
* Display `โ‡ก` when branch is _ahead_ (commits to push) ;
* Display `โ‡ฃ` when branch is _behind_ (commits to pull) ;
* [Async update when configured with fish-async-prompt][async] ;

* [Update terminal title with _current folder_ and _command_ ๐Ÿ› ][title] ;
* [Shorten or truncate _current folder_ component ๐Ÿด๐Ÿ› ][current-working-directory] ;
* and moreโ€ฆ

๐Ÿด means it's controlled by a feature flag, ๐Ÿ›  mean it's configurable.

## Configuration

See [How to configure pure prompt?][configure]

## Features' Flags

See [Features and their respective options][features].

## :heart: Contribute

If you have any ideas or suggestions, we encourage you to submit a pull request. Our team will review and discuss your contribution.

Checkout our [Contribution Guide][contribution] to get familiar with our conventions and requirements.

## :man_technologist: People

* [ร‰douard Lopez](https://github.com/edouard-lopez) product lead ;
* [@andreiborisov](https://github.com/andreiborisov) for the [docker images][docker-images] ;
* [@jorgebucaran](https://github.com/jorgebucaran/) for [fishtape](https://github.com/jorgebucaran/fishtape) ;
* [@rafaelrinaldi](https://github.com/rafaelrinaldi) for starting the project and publishing the initial releases

## [MIT][MIT] License

## Ports

* Original [sindresorhus/pure](https://github.com/sindresorhus/pure) Zsh implementation ;
* :fish: [pure-fish/pure](https://github.com/pure-fish/pure/) Fish implementation (features rich) ;
* :snake: [edouard-lopez/pure.py](https://github.com/edouard-lopez/pure.py/) Python implementation (partial features) ;
* :goat: [edouard-lopez/pure.go](https://github.com/edouard-lopez/pure.go/) Golang implementation (partial features) ;
* :gear: [xcambar/purs](https://github.com/xcambar/purs) Rust implementation ;
* :window: [nickcox/pure-pwsh](https://github.com/nickcox/pure-pwsh/) PowerShell implementation.
* :shell: [krashikiworks/pure-prompt-bash](https://github.com/krashikiworks/pure-prompt-bash) Bash implementation.

[doc]: https://pure-fish.github.io/pure/
[configure]: https://pure-fish.github.io/pure/#configuration
[features]: https://pure-fish.github.io/pure/#overview
[contribution]:https://pure-fish.github.io/pure/contributing/

[ci-link]: "Github CI"
[ci-status]: https://img.shields.io/github/actions/workflow/status/pure-fish/pure/.github/workflows/ci.yml?style=flat-square

[fish-3]: "Support Fish 3"
[docker-images]: https://github.com/andreiborisov/docker-fish/
[MIT]: LICENSE.md

[release-version]: https://img.shields.io/github/v/tag/pure-fish/pure?label=latest%20&style=flat-square
[release-link]: https://github.com/pure-fish/pure/releases "GitHub tag (latest SemVer)"
[sponsors]: https://img.shields.io/github/sponsors/edouard-lopez?label=๐Ÿ’ฐ&style=flat-square "GitHub Sponsors"
[sponsor-link]: https://github.com/sponsors/edouard-lopez/ "Become a sponsor"

[async]: https://github.com/pure-fish/pure/wiki/Async-git-Prompt
[check-for-new-release]: https://pure-fish.github.io/pure/#check-for-new-release
[container-detection-docker]: https://pure-fish.github.io/pure/#container-detection-docker
[current-working-directory]: https://pure-fish.github.io/pure/#current-working-directory
[git]: https://pure-fish.github.io/pure/#git
[jobs]: https://pure-fish.github.io/pure/#jobs
[kubernetes]: https://pure-fish.github.io/pure/#kubernetes
[nix-os]: https://pure-fish.github.io/pure/#nix-os
[prompt-symbol]: https://pure-fish.github.io/pure/#prompt-symbol
[python-virtualenv]: https://pure-fish.github.io/pure/#python-virtualenv
[aws-profile]: https://pure-fish.github.io/pure/#aws-profile
[separate-error-symbol]: https://pure-fish.github.io/pure/#separate-error-symbol
[single-line-prompt]: https://pure-fish.github.io/pure/#single-line-prompt
[ssh-session]: https://pure-fish.github.io/pure/#ssh-session
[time-duration]: https://pure-fish.github.io/pure/#time-duration
[title]: https://pure-fish.github.io/pure/#title
[vi-mode]: https://pure-fish.github.io/pure/#vi-mode
[working-as-root]: https://pure-fish.github.io/pure/#working-as-root