# spaceship-prompt
**Repository Path**: qhb_coding/spaceship-prompt
## Basic Information
- **Project Name**: spaceship-prompt
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-11-25
- **Last Updated**: 2021-11-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
๐โญ Spaceship ZSH
Zsh
prompt for Astronauts.
Spaceship is a minimalistic, powerful and extremely customizable [Zsh][zsh-url] prompt. It combines everything you may need for convenient work, without unnecessary complications, like a real spaceship.
Visit Troubleshooting for similar setup and find more examples with different color schemes in Screenshots wiki-page.
## Features
- Clever hostname and username displaying.
- Prompt character turns red if the last command exits with non-zero code.
- Current Git branch and rich repo status:
- `?` โ untracked changes;
- `+` โ uncommitted changes in the index;
- `!` โ unstaged changes;
- `ยป` โ renamed files;
- `โ` โ deleted files;
- `$` โ stashed changes;
- `=` โ unmerged changes;
- `โก` โ ahead of remote branch;
- `โฃ` โ behind of remote branch;
- `โ` โ diverged changes.
- Current Mercurial bookmark/branch and rich repo status:
- `?` โ untracked changes;
- `+` โ uncommitted changes in the index;
- `!` โ unstaged changes;
- `โ` โ deleted files;
- Indicator for jobs in the background (`โฆ`).
- Current Node.js version, through fnm/nvm/nodenv/n (`โฌข`).
- Current Ruby version, through rvm/rbenv/chruby/asdf (`๐`).
- Current Elm version (`๐ณ`)
- Current Elixir version, through kiex/exenv/elixir (`๐ง`).
- Current Swift version, through swiftenv (`๐ฆ`).
- Current Xcode version, through xenv (`๐ `).
- Current Go version (`๐น`).
- Current PHP version (`๐`).
- Current Rust version (`๐ฆ`).
- Current version of Haskell GHC Compiler, defined in stack.yaml file (`ฮป`).
- Current Julia version (`เฎ`).
- Current Docker version and connected machine (`๐ณ`).
- Current Amazon Web Services (AWS) profile (`โ๏ธ`) ([Using named profiles](http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html)).
- Current Google Cloud Platform gcloud active configuration (`โ๏ธ`).
- Current Python virtualenv.
- Current Conda virtualenv (`๐
`).
- Current Python pyenv (`๐`).
- Current .NET SDK version, through dotnet-cli (`.NET`).
- Current Ember.js version, through ember-cli (`๐น`).
- Current Kubectl context (`โธ๏ธ`).
- Current Terraform workspace (`๐ `).
- Current IBM Cloud account (`๐`).
- Package version, if there's is a package in current directory (`๐ฆ`).
- Current battery level and status:
- `โก` - charging;
- `โฃ` - discharging;
- `โข` - fully charged.
- Current Vi-mode mode ([with handy aliases for temporarily enabling](./docs/options.md#vi-mode-vi_mode)).
- Optional exit-code of last command ([how to enable](./docs/options.md#exit-code-exit_code)).
- Optional time stamps 12/24hr in format ([how to enable](./docs/options.md#time-time)).
- Execution time of the last command if it exceeds the set threshold.
- Optional AWS now supports aws-vault ([aws-vault](https://github.com/99designs/aws-vault))
Want more features? Please, [open an issue](https://github.com/spaceship-prompt/spaceship-prompt/issues/new/choose) or send pull request.
**๐ก Tip:** Follow [our Twitter](https://twitter.com/SpaceshipPrompt) to keep yourself updated about new features, improvements, and bugfixes.
## Requirements
To work correctly, you will first need:
- [`zsh`](http://www.zsh.org/) (v5.2 or recent) must be installed.
- [Powerline Font](https://github.com/powerline/fonts) must be installed and used in your terminal (for example, switch font to [Fira Code](https://github.com/tonsky/FiraCode)).
## Installing
Now that the requirements are satisfied, you can install Spaceship ZSH via any of the following tools.
**๐ก Tip:** If you like this project ~~and want to get some stickers and postcards~~, consider becoming a patron:
### [Homebrew]
```
brew install spaceship
```
You can also add the following to your [`Brewfile`](https://github.com/Homebrew/homebrew-bundle#usage):
```ruby
brew "spaceship"
```
### [npm]
```
npm install -g spaceship-prompt
```
Done. This command should link `spaceship.zsh` as `prompt_spaceship_setup` to your `$fpath` and set `prompt spaceship` in `.zshrc`. Just reload your terminal.
Ensure that you have enabled post-scripts in npm by `npm config set ignore-scripts false` before starting installation.
**๐ก Tip:** Update Spaceship to new versions as you would any other package.
### [oh-my-zsh]
Clone this repo:
```zsh
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
```
Symlink `spaceship.zsh-theme` to your oh-my-zsh custom themes directory:
```zsh
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
```
Set `ZSH_THEME="spaceship"` in your `.zshrc`.
### [prezto]
- Follow [prezto-contrib#usage](https://github.com/belak/prezto-contrib#usage) to clone `prezto-contrib` to the proper location.
- Enable the `contrib-prompt` module (before the `prompt` module).
- Set `zstyle ':prezto:module:prompt' theme 'spaceship'` in your `.zpreztorc`.
### [zim]
Add `zmodule spaceship-prompt/spaceship-prompt --name spaceship` to your `.zimrc` and run `zimfw install`.
### [antigen]
Add the following snippet in your `.zshrc`:
```
antigen theme spaceship-prompt/spaceship-prompt
```
### [antibody]
Update your `.zshrc` file with the following line:
```
antibody bundle spaceship-prompt/spaceship-prompt
```
### [zinit]
Add the following line to your `.zshrc` where you're adding your other Zsh plugins:
```
zinit light spaceship-prompt/spaceship-prompt
```
### [zgen]
Add the following line to your `.zshrc` where you're adding your other Zsh plugins:
```
zgen load spaceship-prompt/spaceship-prompt spaceship
```
### [zplug]
Use this command in your `.zshrc` to load Spaceship as prompt theme:
```
zplug "spaceship-prompt/spaceship-prompt", use:spaceship.zsh, from:github, as:theme
```
### Linux package manager
#### Arch Linux
Install the latest master from the AUR package [`spaceship-prompt-git`](https://aur.archlinux.org/packages/spaceship-prompt-git/):
```
git clone https://aur.archlinux.org/spaceship-prompt-git.git --depth=1
cd spaceship-prompt-git
makepkg -si
```
### Manual
If you have problems with approaches above, follow these instructions:
- Clone this repo `git clone https://github.com/spaceship-prompt/spaceship-prompt.git --depth=1`
- Symlink `spaceship.zsh` to somewhere in [`$fpath`](http://www.refining-linux.org/archives/46/ZSH-Gem-12-Autoloading-functions/) as `prompt_spaceship_setup`.
- Initialize prompt system and choose `spaceship`.
#### Example
Run `echo $fpath` to see possible location and link `spaceship.zsh` there, like:
```zsh
$ ln -sf "$PWD/spaceship.zsh" "/usr/local/share/zsh/site-functions/prompt_spaceship_setup"
```
For a user-specific installation, simply add a directory to `$fpath` for that user in `.zshrc`:
```zsh
fpath=( "${ZDOTDIR:-$HOME}/.zfunctions" $fpath )
```
Then install the theme like this:
```zsh
$ ln -sf "$PWD/spaceship.zsh" "${ZDOTDIR:-$HOME}/.zfunctions/prompt_spaceship_setup"
```
For initializing prompt system add this to your `.zshrc`:
```zsh
# .zshrc
autoload -U promptinit; promptinit
prompt spaceship
```
## Customization
Spaceship works well out of the box, but you can customize almost everything if you want.
- [**Options**](./docs/options.md) โ Tweak section's behavior with tons of options.
- [**API**](./docs/api.md) โ Define a custom section that will do exactly what you want.
You have the ability to customize or disable specific elements of Spaceship. Set options and define new sections in your `.zshrc` file, **after** the theme. To include a custom section you have defined in your prompt, add it to the `SPACESHIP_PROMPT_ORDER`.
For example:
```shell
# .zshrc
# add Spaceship (differs by setup, see Installating above)
section_mysection() {
# ...
}
SPACESHIP_PROMPT_ORDER=( mysection )
```
To append custom sections to the default Spaceship prompt, follow the form:
```shell
SPACESHIP_PROMPT_ORDER=($SPACESHIP_PROMPT_ORDER mysection)
```
To prepend custom sections to the default Spaceship prompt, follow the form:
```shell
SPACESHIP_PROMPT_ORDER=(mysection $SPACESHIP_PROMPT_ORDER)
```
**๐ก Tip:** Take a look at popular option presets or share your own configuration on [Presets](https://github.com/spaceship-prompt/spaceship-prompt/wiki/Presets) wiki page.
## Troubleshooting
Having trouble? Take a look at out [Troubleshooting](./docs/troubleshooting.md) page.
Still struggling? Please, [file an issue](https://github.com/spaceship-prompt/spaceship-prompt/issues/new/choose), describe your problem and we will gladly help you.
## Related Projects
Here's a list of related projects that have been inspired by Spaceship ZSH.
- [**matchai/spacefish**](https://github.com/matchai/spacefish) - A port of Spaceship ZSH for fish shell intending to achieve complete feature parity.
- [**starship/starship**](https://github.com/starship/starship) - A blazing-fast, cross-shell prompt written in Rust, heavily inspired by Spaceship ZSH.
## Team
| [](http://denysdovhan.com) | [](https://github.com/salmanulfarzy) | [](https://github.com/maximbaz) | [](https://github.com/Runrioter) |
| :------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------: |
| [Denys Dovhan](https://github.com/denysdovhan) | [Salmanul Farzy](https://github.com/salmanulfarzy) | [Maxim Baz](https://github.com/maximbaz) | [Runrioter Wung](https://github.com/Runrioter) |
## Donate
Hi! I work on this project in my spare time, in addition to my primary job. I hope you enjoy using Spaceship ZSH. If you do, please, [become my patron ๐ค][patreon-url].
| Patreon | Bitcoin | Ethereum |
| :--------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: |
| [Become a patron][patreon-url] | `1FrPrQb6ACTkbSBAz9PduJWrDFfq41Ggb4` | `0x6aF39C917359897ae6969Ad682C14110afe1a0a1` |
|
|
|
|
This is your way make a clear statement: **My work is valued.**
I would appreciate your support! _Thank you!_
## License
MIT ยฉ [Denys Dovhan](http://denysdovhan.com)
[npm-url]: https://npmjs.org/package/spaceship-prompt
[npm-image]: https://img.shields.io/npm/v/spaceship-prompt.svg?style=flat-square
[zsh-url]: http://zsh.org/
[zsh-image]: https://img.shields.io/badge/zsh-%3E%3Dv5.2-777777.svg?style=flat-square
[patreon-url]: https://www.patreon.com/denysdovhan
[patreon-image]: https://img.shields.io/badge/zsh-%3E%3Dv5.2-777777.svg?style=flat-square
[oh-my-zsh]: http://ohmyz.sh/
[prezto]: https://github.com/sorin-ionescu/prezto
[zim]: https://github.com/zimfw/zimfw
[antigen]: http://antigen.sharats.me/
[zgen]: https://github.com/tarjoilija/zgen
[npm]: https://www.npmjs.com/
[antibody]: https://github.com/getantibody/antibody
[zplug]: https://github.com/zplug/zplug
[homebrew]: https://brew.sh
[n]: https://github.com/tj/n
[xcenv]: http://xcenv.org/
[swiftenv]: https://github.com/kylef/swiftenv
[powerline]: https://github.com/powerline/fonts
[zinit]: https://github.com/zdharma/zinit