2019-06-12 20:59:58 +00:00
< h1 align = "center" >
< br >
2019-07-10 17:09:45 +00:00
< img width = "400" src = "https://raw.githubusercontent.com/starship/starship/master/media/logo.png" alt = "Starship – Cross-shell prompt" >
2019-05-25 15:11:12 +00:00
< p align = "center" >
2019-07-10 17:09:45 +00:00
< a href = "https://crates.io/crates/starship" > < img src = "https://badgen.net/crates/v/starship" alt = "Crates.io version" > < / a >
2019-05-25 15:11:12 +00:00
< a href = "https://dev.azure.com/starship-control/starship/_build" > < img src = "https://badgen.net/azure-pipelines/starship-control/starship/Starship%20Test%20Suite" alt = "Azure Pipelines Build Status" > < / a >
2019-05-29 20:58:46 +00:00
< a href = "#contributors" > < img src = "https://badgen.net/badge/all%20contributors/7/orange" alt = "All Contributors" > < / a >
2019-05-25 15:11:12 +00:00
< a href = "https://discord.gg/8Jzqu3T" > < img src = "https://badgen.net/badge/chat/on%20discord/7289da" alt = "Chat on Discord" > < / a >
< / p >
2019-06-12 20:59:58 +00:00
< br >
< / h1 >
2019-04-02 03:23:03 +00:00
2019-07-10 17:09:45 +00:00
> ⚠️ Starship is still a work in progress but is now far enough along to be used as a prompt (I personally use it as my daily driver)
2019-04-13 04:45:33 +00:00
Starship is a Rust port of the minimalistic, powerful, and extremely customizable prompt [Spaceship ZSH ](https://github.com/denysdovhan/spaceship-prompt ).
2019-07-15 16:01:37 +00:00
< p align = "center" >
< img alt = "Starship with Hyper and One Dark" src = "https://raw.githubusercontent.com/starship/starship/master/media/demo.gif" >
< / p >
2019-04-13 04:45:33 +00:00
2019-04-13 16:51:12 +00:00
## Development plans
The project is beginning as a port of Spaceship ZSH, but will be improved in areas where Spaceship ZSH was previously limited:
2019-04-17 15:38:36 +00:00
- Speed
- Concurrency of segment logic execution
2019-04-13 16:51:12 +00:00
- Memoization of expensive operations
- Safety and error handling
- Testability of code
- Configuration
- Cross-shell support with JSON or TOML config files
2019-04-14 05:15:48 +00:00
We will _not_ be aiming to achieve full parity with Spaceship ZSH as a result, so I am very open to discussing and reevaluating new solutions and ideas for the prompt.
2019-04-13 16:51:12 +00:00
I'm very new to Rust, so any help is appreciated when it comes to improving development patterns, writing idiomatic Rust, performance, safety, etc. 😄
2019-04-13 04:45:33 +00:00
### Prompt segments
- [x] Prompt character turns red if the last command exits with non-zero code.
- [x] Current Node.js version(`⬢`).
2019-04-24 13:15:00 +00:00
- [x] Current Rust version (`🦀`).
2019-04-25 15:06:18 +00:00
- [x] Current Python version (`🐍`).
2019-05-12 03:58:45 +00:00
- [x] Current Go version (`🐹`).
- [x] Package version of package in current directory (`📦`).
2019-05-22 16:29:39 +00:00
- [x] Current battery level and status
2019-05-14 04:43:11 +00:00
- [x] Current Git branch and rich repo status:
- `=` — conflicting changes
- `⇡` — ahead of remote branch
- `⇣` — behind of remote branch
- `⇕` — diverged changes
- `?` — untracked changes
- `$` — stashed changes
- `!` — modified files
- `+` — added files
- `»` — renamed files
- `✘` — deleted files
2019-04-13 04:45:33 +00:00
- [ ] Indicator for jobs in the background (`✦`).
- [ ] Execution time of the last command if it exceeds the set threshold.
2019-04-13 16:51:12 +00:00
### Other features
2019-04-17 15:38:36 +00:00
2019-06-10 14:56:17 +00:00
- [x] `starship.toml` configuration
2019-04-13 16:51:12 +00:00
- [ ] Custom sections given commands or binaries
2019-04-13 04:45:33 +00:00
### Shell support
- [x] Fish shell
2019-04-17 20:48:44 +00:00
- [x] Z Shell
2019-07-03 12:03:02 +00:00
- [x] Bash
2019-04-13 04:33:50 +00:00
2019-04-13 16:51:12 +00:00
### Test strategy
2019-04-17 15:38:36 +00:00
2019-06-10 14:56:17 +00:00
- [ ] Per-segment benchmarking
2019-04-17 15:38:36 +00:00
- [x] Per-segment unit + integration tests
2019-06-10 14:56:17 +00:00
- [x] Shell + OS matrix acceptance tests
2019-04-13 16:51:12 +00:00
2019-04-13 04:33:50 +00:00
## Setup
### Prerequisites
- Rust v1.33 or higher
2019-07-03 12:03:02 +00:00
- A Powerline font (like [Fira Code ](https://github.com/tonsky/FiraCode )) installed and enabled in your terminal emulator
2019-04-13 04:33:50 +00:00
### Getting Started
1. Install the **starship** binary:
```bash
2019-07-10 17:09:45 +00:00
cargo install starship
2019-04-13 04:33:50 +00:00
```
2019-07-03 12:03:02 +00:00
1. Add the init script to your shell's config file:
2019-04-17 15:38:36 +00:00
2019-07-03 12:03:02 +00:00
#### Bash / Zsh
2019-04-17 15:38:36 +00:00
2019-07-03 12:03:02 +00:00
Add the following to the end of `~/.bashrc` or `~/.zshrc` :
2019-04-13 04:33:50 +00:00
```bash
2019-07-03 12:03:02 +00:00
# ~/.bashrc or ~/.zshrc
eval "$(starship init $0)"
2019-04-13 04:33:50 +00:00
```
2019-04-17 15:38:36 +00:00
2019-07-03 12:03:02 +00:00
#### Fish
2019-04-17 15:38:36 +00:00
2019-07-03 12:03:02 +00:00
Add the following to the end of `~/.config/fish/config.fish` :
2019-04-17 15:38:36 +00:00
2019-07-03 12:03:02 +00:00
```fish
2019-07-15 23:18:27 +00:00
# ~/.config/fish/config.fish
2019-04-17 15:38:36 +00:00
2019-07-03 12:03:02 +00:00
eval (starship init fish)
2019-04-17 15:38:36 +00:00
```
2019-05-14 04:43:11 +00:00
2019-07-10 17:09:45 +00:00
## Configuration
> 🚧 Configuration features and documentation are in the process of being developed
2019-05-16 16:46:07 +00:00
## Contributors
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL - CONTRIBUTORS - LIST:START - Do not remove or modify this section -->
<!-- prettier - ignore -->
2019-07-19 20:21:53 +00:00
< table >
< tr >
< td align = "center" > < a href = "https://twitter.com/matchai" > < img src = "https://avatars0.githubusercontent.com/u/4658208?v=4" width = "100px;" alt = "Matan Kushner" / > < br / > < sub > < b > Matan Kushner< / b > < / sub > < / a > < br / > < a href = "https://github.com/starship/starship/commits?author=matchai" title = "Code" > 💻< / a > < a href = "#design-matchai" title = "Design" > 🎨< / a > < a href = "#ideas-matchai" title = "Ideas, Planning, & Feedback" > 🤔< / a > < a href = "#infra-matchai" title = "Infrastructure (Hosting, Build-Tools, etc)" > 🚇< / a > < a href = "#maintenance-matchai" title = "Maintenance" > 🚧< / a > < a href = "#review-matchai" title = "Reviewed Pull Requests" > 👀< / a > < a href = "https://github.com/starship/starship/commits?author=matchai" title = "Tests" > ⚠️< / a > < / td >
< td align = "center" > < a href = "https://github.com/johnletey" > < img src = "https://avatars0.githubusercontent.com/u/30328854?v=4" width = "100px;" alt = "John Letey" / > < br / > < sub > < b > John Letey< / b > < / sub > < / a > < br / > < a href = "https://github.com/starship/starship/commits?author=johnletey" title = "Code" > 💻< / a > < a href = "#ideas-johnletey" title = "Ideas, Planning, & Feedback" > 🤔< / a > < a href = "#review-johnletey" title = "Reviewed Pull Requests" > 👀< / a > < a href = "https://github.com/starship/starship/commits?author=johnletey" title = "Tests" > ⚠️< / a > < / td >
< td align = "center" > < a href = "http://timmulqueen.com" > < img src = "https://avatars1.githubusercontent.com/u/6132021?v=4" width = "100px;" alt = "Tim Mulqueen" / > < br / > < sub > < b > Tim Mulqueen< / b > < / sub > < / a > < br / > < a href = "https://github.com/starship/starship/commits?author=Multimo" title = "Code" > 💻< / a > < a href = "#ideas-Multimo" title = "Ideas, Planning, & Feedback" > 🤔< / a > < a href = "#review-Multimo" title = "Reviewed Pull Requests" > 👀< / a > < a href = "https://github.com/starship/starship/commits?author=Multimo" title = "Tests" > ⚠️< / a > < / td >
< td align = "center" > < a href = "https://github.com/sirMerr" > < img src = "https://avatars2.githubusercontent.com/u/11183523?v=4" width = "100px;" alt = "Tiffany Le-Nguyen" / > < br / > < sub > < b > Tiffany Le-Nguyen< / b > < / sub > < / a > < br / > < a href = "#ideas-sirMerr" title = "Ideas, Planning, & Feedback" > 🤔< / a > < a href = "#maintenance-sirMerr" title = "Maintenance" > 🚧< / a > < a href = "#review-sirMerr" title = "Reviewed Pull Requests" > 👀< / a > < a href = "https://github.com/starship/starship/commits?author=sirMerr" title = "Documentation" > 📖< / a > < / td >
< td align = "center" > < a href = "https://about.snuggi.es" > < img src = "https://avatars0.githubusercontent.com/u/26250962?v=4" width = "100px;" alt = " Snuggle" / > < br / > < sub > < b > Snuggle< / b > < / sub > < / a > < br / > < a href = "#design-Snuggle" title = "Design" > 🎨< / a > < a href = "#ideas-Snuggle" title = "Ideas, Planning, & Feedback" > 🤔< / a > < a href = "#maintenance-Snuggle" title = "Maintenance" > 🚧< / a > < a href = "#review-Snuggle" title = "Reviewed Pull Requests" > 👀< / a > < / td >
< td align = "center" > < a href = "https://github.com/mehcode" > < img src = "https://avatars1.githubusercontent.com/u/753919?v=4" width = "100px;" alt = "Ryan Leckey" / > < br / > < sub > < b > Ryan Leckey< / b > < / sub > < / a > < br / > < a href = "#review-mehcode" title = "Reviewed Pull Requests" > 👀< / a > < / td >
< td align = "center" > < a href = "https://github.com/youssefhabri" > < img src = "https://avatars3.githubusercontent.com/u/1578005?v=4" width = "100px;" alt = "Youssef Habri" / > < br / > < sub > < b > Youssef Habri< / b > < / sub > < / a > < br / > < a href = "https://github.com/starship/starship/commits?author=youssefhabri" title = "Code" > 💻< / a > < / td >
< / tr >
< / table >
2019-05-16 16:46:07 +00:00
<!-- ALL - CONTRIBUTORS - LIST:END -->
This project follows the [all-contributors ](https://github.com/all-contributors/all-contributors ) specification. Contributions of any kind welcome!