1
0
mirror of https://github.com/Llewellynvdm/starship.git synced 2024-11-24 13:47:38 +00:00
The minimal, blazing-fast, and infinitely customizable prompt for any shell!
Go to file
Matan Kushner d7754f38e7
feat: Implement simplified prompt setup process (#90)
• Add starship init which prints the shell function used to execute starship
• Document the new setup process using starship init
• Remove benchmarks for now (WIP replacement benchmarks in "benchmarking" branch )
2019-07-03 08:03:02 -04:00
.github Clean up feature request template comment 2019-04-30 14:30:40 -04:00
ci Add support for prompt configuration (#62) 2019-06-10 15:56:17 +01:00
media docs: Change the logo to the redesigned logo (#77) 2019-06-12 21:59:58 +01:00
src feat: Implement simplified prompt setup process (#90) 2019-07-03 08:03:02 -04:00
tests feat: Add a disabled configuration option for modules (#86) 2019-07-02 16:12:53 -04:00
.all-contributorsrc docs: add youssefhabri as a contributor (#61) 2019-05-20 14:08:03 -04:00
.dockerignore Add docker for integration tests (#37) 2019-04-28 13:34:46 -04:00
.gitignore Refactor integration tests (#71) 2019-06-06 13:18:00 +01:00
azure-pipelines.yml Use starship-test docker image for running integration tests (#70) 2019-05-29 13:27:18 +02:00
Cargo.lock feat: Implement simplified prompt setup process (#90) 2019-07-03 08:03:02 -04:00
Cargo.toml feat: Implement simplified prompt setup process (#90) 2019-07-03 08:03:02 -04:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#42) 2019-04-30 23:30:42 -04:00
CONTRIBUTING.md docs: Add CONTRIBUTNG.md (#79) 2019-06-15 11:23:29 +01:00
integration_test Add support for prompt configuration (#62) 2019-06-10 15:56:17 +01:00
LICENSE Add LICENSE 2019-04-13 00:47:49 -04:00
README.md feat: Implement simplified prompt setup process (#90) 2019-07-03 08:03:02 -04:00


Starship – Cross-shell prompt

Azure Pipelines Build Status All Contributors Chat on Discord


⚠️ This is very much work in progress, so please don't try to use it just yet!

Starship is a Rust port of the minimalistic, powerful, and extremely customizable prompt Spaceship ZSH.

Development plans

The project is beginning as a port of Spaceship ZSH, but will be improved in areas where Spaceship ZSH was previously limited:

  • Speed
  • Concurrency of segment logic execution
    • Memoization of expensive operations
  • Safety and error handling
  • Testability of code
  • Configuration
    • Cross-shell support with JSON or TOML config files

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.

I'm very new to Rust, so any help is appreciated when it comes to improving development patterns, writing idiomatic Rust, performance, safety, etc. 😄

Prompt segments

  • Prompt character turns red if the last command exits with non-zero code.
  • Current Node.js version().
  • Current Rust version (🦀).
  • Current Python version (🐍).
  • Current Go version (🐹).
  • Package version of package in current directory (📦).
  • Current battery level and status
  • 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
  • Indicator for jobs in the background ().
  • Execution time of the last command if it exceeds the set threshold.

Other features

  • starship.toml configuration
  • Custom sections given commands or binaries
  • Self-updating

Shell support

  • Fish shell
  • Z Shell
  • Bash

Test strategy

  • Per-segment benchmarking
  • Per-segment unit + integration tests
  • Shell + OS matrix acceptance tests

Setup

Prerequisites

  • Rust v1.33 or higher
  • A Powerline font (like Fira Code) installed and enabled in your terminal emulator

Getting Started

  1. cd to the root of the starship repo

  2. Install the starship binary:

    cargo install --path .
    
  3. Add the init script to your shell's config file:

    Bash / Zsh

    Add the following to the end of ~/.bashrc or ~/.zshrc:

    # ~/.bashrc or ~/.zshrc
    
    eval "$(starship init $0)"
    

    Fish

    Add the following to the end of ~/.config/fish/config.fish:

    # ~/.config/config.fish
    
    eval (starship init fish)
    

Contributors

Thanks goes to these wonderful people (emoji key):

Matan Kushner
Matan Kushner

💻 🎨 🤔 🚇 🚧 👀 ⚠️
John Letey
John Letey

💻 🤔 👀 ⚠️
Tim Mulqueen
Tim Mulqueen

💻 🤔 👀 ⚠️
Tiffany Le-Nguyen
Tiffany Le-Nguyen

🤔 🚧 👀
​Snuggle
Snuggle

🎨 🤔 🚧 👀
Ryan Leckey
Ryan Leckey

👀
Youssef Habri
Youssef Habri

💻

This project follows the all-contributors specification. Contributions of any kind welcome!