/pumpt-up-prompt

🎈 A pumped up shell prompt. Light, beautiful and hard to pronounce.

Primary LanguageShellMIT LicenseMIT

Pumpt Up Prompt

Pumped Up Prompt

Pumped Up Prompt is a set of solutions to improve your shell experience. It contains:

  1. Custom segmented shell prompt;
  2. Fonts with segment separators and icons*;
  3. Optional improvements.

*Font separators use the same Unicode places as Powerline Patched fonts (e.g. Nerd Fonts).

Features

Light 🎈
Pure bash. No hidden engines in the background. Fast even in huge projects.

Beautiful 🎀
All the separators are handcrafted and pixel-perfect. Enjoy the smoothness.

Hard to pronounce 🤔
Not really a feature, but... you can use it as a tongue twister!

Previews

Solarized Dark preview

Terminal: iTerm2
Theme: Solarized Dark
Font: Menlo PP15

Installation

1. Prompt:

  1. Copy pumpt-up-prompt.sh to your root directory;
  2. Include pumpt-up-prompt script to your .bash_profile by adding:
    [[ -f ~/pumpt-up-prompt.sh ]] && . ~/pumpt-up-prompt.sh
    or just copy the .bash_profile file from this repo.

2. Font (separators and icons):

  1. Download your favorite font from the Fonts folder;
  2. Choose a font depending on the font size you are using, ex. take Menlo PP15 if you are using 15pt font size in your terminal.

3. Git Prompt Plugin:

Copy git-prompt.sh and git-completion.bash from Git Prompt Plugin to your home directory;

4. [Optional] Install the latest Bash version:

  1. Install Homebrew:
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Install Bash:
    brew install bash
  3. Add the new shell to the list of allowed shells:
    sudo bash -c 'echo /usr/local/bin/bash >> /etc/shells'
  4. Change your shell to the new shell:
    chsh -s /usr/local/bin/bash

5. [Optional] Install a better bash default configuration with Sensible Bash

6. [Optional] Copy .screenrc to your root directory to enable Pumped Up Prompt inside bash screen sessions.

7. [Optional] Copy .bash_aliases to your root directory to get some useful aliases from Oh My Zsh.

Segments

Segments' color, order and icons are changed in the 'Settings' block inside pumpt-up-prompt.sh.

Segment Description
time Current time
user User name
host Host name
dir Directory
git Git branch (commit)
venv Activated Python virtual environment name
ssh SSH host name
screen Current screen name

Terminals

Notes on using Pumpt up Prompt with different terminal emulators:

iTerm

Pumpt up Prompt was originally developed for iTerm2, there should be no problems.

Hyper

Hyper treats characters as a browser (which differs from how iTerm does it), so separators won't align perfectly. Fortunately, you can easily fix it by adding some CSS to Hyper settings (⌘ + ,).
Start with this configuration:

// custom css to embed in the terminal window
termCSS: '.unicode-node { margin-left: -1px; padding-right: 1px; overflow: hidden; }',

Then add line-height (1.2em by default) and font-size (1em by default) changes if needed.

Terminal.app

Terminal.app has a mechanism that changes color for the last prompt character (Some research on the topic). There is no way to disable this behavior. I suggest you try other emulators if that bothers you.

TODO

  • Update font files for the iTerm2 v3
  • Add more previews
  • Create a complete release
  • Add terminal theme recommendations
  • Remove line wrap bug caused by unclosed color tags
  • Research the possibility of using 256 colors
  • Windows OS adaptation
  • Fix git autocomplete when using git aliases

Credits

Inspired by Oh My Zsh and agnoster theme.
Icons by Font Awesome.