diff --git a/plugins/starship/README.md b/plugins/starship/README.md new file mode 100644 index 0000000..f07ae7b --- /dev/null +++ b/plugins/starship/README.md @@ -0,0 +1,464 @@ +

+ Starship – Cross-shell prompt +

+ +

+ GitHub Actions workflow status + Crates.io version + Packaging status
+ Chat on Discord + Follow @StarshipPrompt on Twitter +

+ +

+ Website + · + Installation + · + Configuration +

+ +

+ English +   + Deutsch +   + Español +   + Français +   + Bahasa Indonesia +   + Italiano +   + 日本語 +   + Português do Brasil +   + Русский +   + Українська +   + Tiếng Việt +   + 简体中文 +   + 繁體中文 +

+ +[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) + +

+ +Starship with iTerm2 and the Snazzy theme + +**The minimal, blazing-fast, and infinitely customizable prompt for any shell!** + +- **Fast:** it's fast – _really really_ fast! 🚀 +- **Customizable:** configure every aspect of your prompt. +- **Universal:** works on any shell, on any operating system. +- **Intelligent:** shows relevant information at a glance. +- **Feature rich:** support for all your favorite tools. +- **Easy:** quick to install – start using it in minutes. + +

+Explore the Starship docs  ▶ +

+ + + +## 🚀 Installation + +### Prerequisites + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)). + +### Step 1. Install Starship + +Select your operating system from the list below to view installation instructions: + +
+Android + +Install Starship using any of the following package managers: + +| Repository | Instructions | +| ---------- | ---------------------- | +| [Termux] | `pkg install starship` | + +
+ +
+BSD + +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` | + +
+ +
+Linux + +Install the latest version for your system: + +```sh +curl -sS https://starship.rs/install.sh | sh +``` + +Alternatively, install Starship using any of the following package managers: + +| Distribution | Repository | Instructions | +| ------------------ | ----------------------- | ------------------------------------------------------------- | +| **_Any_** | **[crates.io]** | `cargo install starship --locked` | +| _Any_ | [conda-forge] | `conda install -c conda-forge starship` | +| _Any_ | [Linuxbrew] | `brew install starship` | +| _Any_ | [Snapcraft] | `snap install --edge starship` | +| Alpine Linux 3.13+ | [Alpine Linux Packages] | `apk add starship` | +| Arch Linux | [Arch Linux Extra] | `pacman -S starship` | +| CentOS 7+ | [Copr] | `dnf copr enable atim/starship`
`dnf install 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` | + +
+ +
+macOS + +Install the latest version for your system: + +```sh +curl -sS https://starship.rs/install.sh | sh +``` + +Alternatively, install Starship using any of the following package managers: + +| Repository | Instructions | +| --------------- | --------------------------------------- | +| **[crates.io]** | `cargo install starship --locked` | +| [conda-forge] | `conda install -c conda-forge starship` | +| [Homebrew] | `brew install starship` | +| [MacPorts] | `port install starship` | + +
+ +
+Windows + +Install the latest version for your system with the MSI-installers from the [releases section](https://github.com/starship/starship/releases/latest). + +Install Starship using any of the following package managers: + +| Repository | Instructions | +| --------------- | --------------------------------------- | +| **[crates.io]** | `cargo install starship --locked` | +| [Chocolatey] | `choco install starship` | +| [conda-forge] | `conda install -c conda-forge starship` | +| [Scoop] | `scoop install starship` | +| [winget] | `winget install --id Starship.Starship` | + +
+ +### Step 2. Set up your shell to use Starship + +Configure your shell to initialize starship. Select yours from the list below: + +
+Bash + +Add the following to the end of `~/.bashrc`: + +```sh +eval "$(starship init bash)" +``` + +
+ +
+Cmd + +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"))() +``` + +
+ +
+Elvish + +Add the following to the end of `~/.elvish/rc.elv`: + +```sh +eval (starship init elvish) +``` + +Note: Only Elvish v0.18+ is supported + +
+ +
+Fish + +Add the following to the end of `~/.config/fish/config.fish`: + +```fish +starship init fish | source +``` + +
+ +
+Ion + +Add the following to the end of `~/.config/ion/initrc`: + +```sh +eval $(starship init ion) +``` + +
+ +
+Nushell + +Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + +```sh +mkdir ~/.cache/starship +starship init nu | save -f ~/.cache/starship/init.nu +``` + +And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`): + +```sh +use ~/.cache/starship/init.nu +``` + +Note: Only Nushell v0.78+ is supported + +
+ +
+PowerShell + +Add the following to the end of your PowerShell configuration (find it by running `$PROFILE`): + +```powershell +Invoke-Expression (&starship init powershell) +``` + +
+ +
+Tcsh + +Add the following to the end of `~/.tcshrc`: + +```sh +eval `starship init tcsh` +``` + +
+ +
+Xonsh + +Add the following to the end of `~/.xonshrc`: + +```python +execx($(starship init xonsh)) +``` + +
+ +
+Zsh + +Add the following to the end of `~/.zshrc`: + +```sh +eval "$(starship init zsh)" +``` + +
+ +### 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). + +If you are fluent in a non-English language, we greatly appreciate any help keeping our docs translated and up-to-date in other languages. If you would like to help, translations can be contributed on the [Starship Crowdin](https://translate.starship.rs/). + +If you are interested in helping contribute to starship, please take a look at our [Contributing Guide](https://github.com/starship/starship/blob/master/CONTRIBUTING.md). Also, feel free to drop into our [Discord server](https://discord.gg/8Jzqu3T) and say hi. 👋 + +## 💭 Inspired By + +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/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. + +## ❤️ Sponsors + +Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. + +**Supporter Tier** + +- [Appwrite](https://appwrite.io/) + +

+
+ Starship rocket icon +

+ +## 📝 License + +Copyright © 2019-present, [Starship Contributors](https://github.com/starship/starship/graphs/contributors).
+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 extra]: https://archlinux.org/packages/extra/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 +[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 +[snapcraft]: https://snapcraft.io/starship +[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 +[winget]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/s/Starship/Starship \ No newline at end of file diff --git a/plugins/starship/index.ts b/plugins/starship/index.ts new file mode 100644 index 0000000..1a58318 --- /dev/null +++ b/plugins/starship/index.ts @@ -0,0 +1,133 @@ +const booleanCompile = (value: boolean) => (value ? "true" : "false"); + +const plugin: Fig.Plugin = { + name: "starship", + displayName: "Starship", + type: "shell", + description: + "The minimal, blazing-fast, and infinitely customizable prompt for any shell!", + icon: "https://starship.rs/icon.png", + site: "https://starship.rs/", + docs: "https://starship.rs/guide/", + github: "starship/starship", + twitter: "StarshipPrompt", + license: ["ISC"], + authors: [ + { name: "Matan Kushner", twitter: "@matchai", github: "matchai" }, + { name: "Phil Brocker", github: "pbr0ck3r" }, + ], + shells: ["zsh"], + categories: ["Prompt"], + keywords: [ + "zsh", + "zsh-users", + "prompt", + "oh-my-zsh", + "zsh-theme", + "shell", + "starship", + "shell-prompt", + "terminal", + "shell-theme", + ], + installation: { + origin: "github", + sourceFiles: ["$HOME/.config/starship.toml"], + onInstall: { + command: [ + "curl -sS https://starship.rs/install.sh | sh -s -- --yes --bin-dir=$HOME/.local/bin", + ], + check: { + commandExists: ["starship"], + commandOutput: [ + { + command: "starship module character", + output: "[1;32m❯ ", + }, + ], + }, + }, + onUninstall: { + file: ["$HOME/.local/bin/starship"], + }, + bash: { + postScript: 'eval "$(starship init bash)"', + }, + fish: { + postScript: "starship init fish | source", + }, + zsh: { + postScript: 'eval "$(starship init zsh)"', + }, + }, + configuration: [ + { + displayName: "Prompt", + configuration: [ + { + displayName: "Format", + description: "Configure the format of the prompt.", + type: "environmentVariable", + name: "format", + interface: "textarea", + default: "$all", + }, + { + displayName: "Right Format", + description: + "Currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell.", + type: "environmentVariable", + name: "right_format", + interface: "toggle", + default: false, + compile: booleanCompile, + }, + { + displayName: "Scan Timeout", + description: "Timeout for starship to scan files (in milliseconds).", + type: "environmentVariable", + name: "scan_timeout", + interface: "text", + default: "30", + }, + { + displayName: "Commmand Timeout", + description: + "Timeout for commands executed by starship (in milliseconds).", + type: "environmentVariable", + name: "command_timeout", + interface: "text", + default: "500", + }, + { + displayName: "Add Newline", + description: "Inserts blank line between shell prompts.", + type: "environmentVariable", + name: "add_newline", + interface: "toggle", + default: false, + compile: booleanCompile, + }, + { + displayName: "Palette", + description: "Sets which color palette from `palettes` to use.", + type: "environmentVariable", + name: "palette", + interface: "text", + default: "", + }, + { + displayName: "Palettes", + description: + "Collection of color palettes that assign colors to user-defined names. Note that color palettes cannot reference their own color definitions.", + type: "environmentVariable", + name: "palettes", + interface: "textarea", + default: "{}", + }, + ], + }, + ], +}; + +export default plugin;