docs: break installation instructions to collapsable sections (#3448)

As the number of supported systems and shells has grown, we've had to hand-pick what installation methods would be the "blessed" ones to show on our README. This change changes that to include all installation methods, but hides them each into OS and shell-specific collapsed sections, as is done by the excellent ajeetdsouza/zoxide.
This commit is contained in:
Matan Kushner 2022-01-18 16:11:01 -05:00 committed by GitHub
parent 412cedab78
commit 0da178780f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 191 additions and 93 deletions

284
README.md
View File

@ -169,139 +169,162 @@
- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [Fira Code Nerd Font](https://www.nerdfonts.com/font-downloads)).
### Getting Started
### Step 1. Install Starship
**Note**: due to the proliferation of different platforms, only a subset of supported platforms are
shown below. Can't see yours? Have a look at the [extra platform instructions](https://starship.rs/installing/).
Select your operating system from the list below to view installation instructions:
1. Install the **starship** binary:
<details>
<summary>Android</summary>
#### Install Latest Version
Install Starship using any of the following package managers:
##### From prebuilt binary, with Shell:
| Repository | Instructions |
| ---------- | ---------------------- |
| [Termux] | `pkg install starship` |
</details>
<details>
<summary>BSD</summary>
Install Starship using any of the following package managers:
| Distribution | Repository | Instructions |
| ------------ | --------------- | --------------------------------- |
| **_Any_** | **[crates.io]** | `cargo install starship --locked` |
| FreeBSD | [FreshPorts] | `pkg install starship` |
| NetBSD | [pkgsrc] | `pkgin install starship` |
</details>
<details>
<summary>Linux</summary>
Install the latest version for your system:
```sh
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
```
To update the Starship itself, rerun the above script. It will replace the current version without touching Starship's configuration.
Alternatively, install Starship using any of the following package managers:
**Note** - The defaults of the install script can be overridden see the built-in help.
| Distribution | Repository | Instructions |
| ------------------ | ----------------------- | ------------------------------------------------------------- |
| **_Any_** | **[crates.io]** | `cargo install starship --locked` |
| _Any_ | [conda-forge] | `conda install -c conda-forge starship` |
| _Any_ | [Linuxbrew] | `brew install starship` |
| Alpine Linux 3.13+ | [Alpine Linux Packages] | `apk add starship` |
| Arch Linux | [Arch Linux Community] | `pacman -S starship` |
| CentOS 7+ | [Copr] | `dnf copr enable atim/starship` <br /> `dnf install starship` |
| Fedora 31+ | [Fedora Packages] | `dnf install starship` |
| NixOS | [nixpkgs] | `nix-env -iA nixos.starship` |
| Gentoo | [Gentoo Packages] | `emerge app-shells/starship` |
| Manjaro | | `pacman -S starship` |
| NixOS | [nixpkgs] | `nix-env -iA nixpkgs.starship` |
| Void Linux | [Void Linux Packages] | `xbps-install -S starship` |
</details>
<details>
<summary>macOS</summary>
Install the latest version for your system:
```sh
sh -c "$(curl -fsSL https://starship.rs/install.sh)" -- --help
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
```
#### Install via Package Manager
Alternatively, install Starship using any of the following package managers:
##### With [Homebrew](https://brew.sh/):
| Repository | Instructions |
| --------------- | --------------------------------------- |
| **[crates.io]** | `cargo install starship --locked` |
| [conda-forge] | `conda install -c conda-forge starship` |
| [Homebrew] | `brew install starship` |
| [MacPorts] | `port install starship` |
```sh
brew install starship
```
</details>
##### With [Scoop](https://scoop.sh):
<details>
<summary>Windows</summary>
```powershell
scoop install starship
```
Install Starship using any of the following package managers:
2. Add the init script to your shell's config file:
| Repository | Instructions |
| --------------- | --------------------------------------- |
| **[crates.io]** | `cargo install starship --locked` |
| [Chocolatey] | `choco install starship` |
| [conda-forge] | `conda install -c conda-forge starship` |
| [Scoop] | `scoop install starship` |
#### Bash
</details>
### Step 2. Setup your shell to use Starship
Configure your shell to initialize starship. Select yours from the list below:
<details>
<summary>Bash</summary>
Add the following to the end of `~/.bashrc`:
```sh
# ~/.bashrc
eval "$(starship init bash)"
```
#### Fish
</details>
<details>
<summary>Cmd</summary>
You need to use [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) with Cmd.
Create a file at this path `%LocalAppData%\clink\starship.lua` with the following contents:
```lua
load(io.popen('starship init cmd'):read("*a"))()
```
</details>
<details>
<summary>Elvish</summary>
Add the following to the end of `~/.elvish/rc.elv`:
```sh
eval (starship init elvish)
```
Note: Only Elvish v0.17+ is supported
</details>
<details>
<summary>Fish</summary>
Add the following to the end of `~/.config/fish/config.fish`:
```sh
# ~/.config/fish/config.fish
```fish
starship init fish | source
```
#### Zsh
</details>
Add the following to the end of `~/.zshrc`:
```sh
# ~/.zshrc
eval "$(starship init zsh)"
```
#### PowerShell
Add the following to the end of `Microsoft.PowerShell_profile.ps1`. You can check the location of this file by querying the `$PROFILE` variable in PowerShell. Typically the path is `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` or `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on -Nix.
```powershell
Invoke-Expression (&starship init powershell)
```
#### Ion
<details>
<summary>Ion</summary>
Add the following to the end of `~/.config/ion/initrc`:
```sh
# ~/.config/ion/initrc
eval $(starship init ion)
```
#### Elvish
</details>
**Warning** Only elvish v0.17 or higher is supported.
Add the following to the end of `~/.elvish/rc.elv`:
<details>
<summary>Nushell</summary>
```sh
# ~/.elvish/rc.elv
eval (starship init elvish)
```
#### Tcsh
Add the following to the end of `~/.tcshrc`:
```sh
# ~/.tcshrc
eval `starship init tcsh`
```
#### Xonsh
Add the following to the end of `~/.xonshrc`:
```sh
# ~/.xonshrc
execx($(starship init xonsh))
```
#### Cmd
You need to use [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) with Cmd. Add the following to a file `starship.lua` and place this file in Clink scripts directory:
```lua
-- starship.lua
load(io.popen('starship init cmd'):read("*a"))()
```
#### Nushell
**Warning** This will change in the future. Only nu version v0.33 or higher is supported.
Add the following to your nu config file. You can check the location of this
file by running `config path` in nu.
Add the following to the end of your Nushell configuration (find it by running `config path`):
```toml
startup = [
@ -312,6 +335,63 @@ shown below. Can't see yours? Have a look at the [extra platform instructions](h
prompt = "starship_prompt"
```
</details>
<details>
<summary>PowerShell</summary>
Add the following to the end of your PowerShell configuration (find it by running `$PROFILE`):
```powershell
Invoke-Expression (&starship init powershell)
```
</details>
<details>
<summary>Tcsh</summary>
Add the following to the end of `~/.tcshrc`:
```sh
eval `starship init tcsh`
```
</details>
<details>
<summary>Xonsh</summary>
Add the following to the end of `~/.xonshrc`:
```python
execx($(starship init xonsh))
```
</details>
<details>
<summary>Zsh</summary>
Add the following to the end of `~/.zshrc`:
```sh
eval "$(starship init zsh)"
```
</details>
### Step 3. Configure Starship
Start a new shell instance, and you should see your beautiful new shell prompt.
If you're happy with the defaults, enjoy!
If you're looking to further customize Starship:
- **[Configuration](https://starship.rs/config/)** learn how to configure Starship to tweak your prompt to your liking
- **[Presets](https://starship.rs/presets/)** get inspired by the pre-built configuration of others
## 🤝 Contributing
We are always looking for contributors of **all skill levels**! If you're looking to ease your way into the project, try out a [good first issue](https://github.com/starship/starship/labels/🌱%20good%20first%20issue).
@ -324,11 +404,11 @@ If you are interested in helping contribute to starship, please take a look at o
Please check out these previous works that helped inspire the creation of starship. 🙏
- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** - A ZSH prompt for astronauts.
- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** A ZSH prompt for astronauts.
- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** - Cross-shell robbyrussell theme written in JavaScript.
- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** Cross-shell robbyrussell theme written in JavaScript.
- **[reujab/silver](https://github.com/reujab/silver)** - A cross-shell customizable powerline-like prompt with icons.
- **[reujab/silver](https://github.com/reujab/silver)** A cross-shell customizable powerline-like prompt with icons.
<p align="center">
<br>
@ -339,3 +419,21 @@ Please check out these previous works that helped inspire the creation of starsh
Copyright © 2019-present, [Starship Contributors](https://github.com/starship/starship/graphs/contributors).<br>
This project is [ISC](https://github.com/starship/starship/blob/master/LICENSE) licensed.
[alpine linux packages]: https://pkgs.alpinelinux.org/packages?name=starship
[arch linux community]: https://archlinux.org/packages/community/x86_64/starship
[chocolatey]: https://community.chocolatey.org/packages/starship
[conda-forge]: https://anaconda.org/conda-forge/starship
[copr]: https://copr.fedorainfracloud.org/coprs/atim/starship
[crates.io]: https://crates.io/crates/starship
[fedora packages]: https://src.fedoraproject.org/rpms/rust-starship
[freshports]: https://www.freshports.org/shells/starship
[gentoo packages]: https://packages.gentoo.org/packages/app-shells/starship
[linuxbrew]: https://formulae.brew.sh/formula/starship
[homebrew]: https://formulae.brew.sh/formula/starship
[macports]: https://ports.macports.org/port/starship
[nixpkgs]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix
[pkgsrc]: https://pkgsrc.se/shells/starship
[scoop]: https://github.com/ScoopInstaller/Main/blob/master/bucket/starship.json
[termux]: https://github.com/termux/termux-packages/tree/master/packages/starship
[void linux packages]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship