#shell-prompt #icons #powerline #agnoster

app silver

A cross-shell customizable powerline-like prompt with icons

12 stable releases

2.0.1 Jan 19, 2022
2.0.0 Feb 22, 2021
1.1.0 Sep 12, 2019
1.0.8 Aug 17, 2019
1.0.3 Jul 21, 2018

#1191 in Command line utilities

MIT license

38KB
876 lines

silver

Join the chat at https://gitter.im/reujab-silver/community

Packaging status

A cross-shell customizable powerline-like prompt heavily inspired by Agnoster. The faster rust port of bronze.

How does it work?

Unlike most shell prompts, silver is not written in shell script, but entirely in Rust.

When silver init is run, it outputs shell code that sets your left prompt to run silver lprompt and right prompt to silver rprompt, which output the actual prompt.

Getting started

Since silver is not written in shell script, it should theoretically be compatible with any shell, but the supported shells are Powershell, Bash, Zsh, fish, Ion and Elvish.

Icons

To be able to use the custom icons (which are enabled by default), you must patch your font or install a pre-patched font from Nerd Fonts.

Installation

From source

  • install and setup Rust
  • run cargo install --git https://github.com/reujab/silver

From pre-compiled binary

  • download a binary on the releases page
  • add binary to PATH environment variable

macOS

On macOS, you will have to do a bit more:

  • install Homebrew
  • run brew install coreutils
  • run brew install openssl
  • add alias date="gdate" to your shell config

Configuration

Now that you have silver installed, you need to configure it. To have your prompt look like the one in the screenshot above, create silver.toml with the following content:

[[left]]
name = "dir"
color.background = "blue"
color.foreground = "black"

[[left]]
name = "git"
color.background = "green"
color.foreground = "black"

[[right]]
name = "status"
color.background = "white"
color.foreground = "black"

[[right]]
name = "cmdtime"
color.background = "magenta"
color.foreground = "black"

[[right]]
name = "shell"
color.background = "green"
color.foreground = "black"

Now that silver is configured, you need to evaluate its bootstrap code.

Bash

~/.bashrc:

source <(silver init)

Ion

~/.config/ion/initrc:

eval $(silver init)

Powershell

Invoke-Expression -Command $(silver init | Out-String)

Zsh

See zsh plugin

Fish

See fish plugin

Elvish

See elvish plugin

Documentation

Documentation is available on the wiki.

Project structure

Dependencies

~22MB
~452K SLoC