Powerline for Zsh (This is a fork from https://github.com/milkbikis/powerline-bash)
Python
Latest commit 7111869 Apr 23, 2016 @carlcarl Add MIT license
Permalink
Failed to load latest commit information.
.gitignore Add gitignore Aug 16, 2015
LICENSE Add MIT license Apr 23, 2016
README.md Add MIT license Apr 23, 2016
powerline-zsh.py Fixed typo in 'default' Apr 22, 2016

README.md

Powerline style prompt for Zsh

This is a fork from https://github.com/milkbikis/powerline-bash

A Powerline like prompt for Zsh:

Powerline-Zsh Screenshot Powerline-Zsh Screenshot2

  • Shows some important details about the git branch:
    • Displays the current git branch which changes background color when the branch is dirty
    • A '+' appears when untracked files are present
    • When the local branch differs from the remote, the difference in number of commits is shown along with '⇡' or '⇣' indicating whether a git push or pull is pending
  • Changes color if the last command exited with a failure code
  • If you're too deep into a directory tree, shortens the displayed path with an ellipsis
  • Shows the current Python virtualenv environment
  • It's all done in a Python script, so you could go nuts with it

Setup

  • This script uses ANSI color codes to display colors in a terminal. These are notoriously non-portable, so may not work for you out of the box, but try setting your $TERM to xterm-256color, because that works for me. i.e. edit your .zshrc file to add:

    export TERM='xterm-256color'

If you still face problems seeing colors then read this: https://gist.github.com/3749830#file_powerline_zsh_instructions.md

If you don't want the symlink, just modify the path in the .zshrc command below

  • Now add the following to your .zshrc:
function _update_ps1()
{
    export PROMPT="$(~/powerline-zsh.py $?)"
}
precmd()
{
    _update_ps1
}
  • powerline-zsh.py usage:
-h, --help  show this help message and exit
--cwd-only  Hide parent directory
--hostname  Show hostname at the begin
-m <mode>   Choose icon font: default, compatible, patched or konsole.
            Default is "default"

Python version note

Most of the distros use Python2 as default, however, Some distros like Archlinux use Python3. The earlier version of powerline-zsh is not compatible with Python3. With such condition, you have two ways to solve this issue.

  1. Use the newest version of powerline-zsh. Just download from the master branch.
  2. Modify the .zshrc content, use python2 to execute it.
function _update_ps1()
{
    export PROMPT="$(python2 ~/powerline-zsh.py $?)"
}
precmd()
{
    _update_ps1
}

Pypy note

You can use pypy to speed up your script execution, in your .zshrc:

function _update_ps1()
{
    error=$?
    if [[ -s "/usr/local/bin/pypy" ]]; then
        export PROMPT="$(pypy ~/powerline-zsh.py $error)"
    else
        export PROMPT="$(~/powerline-zsh.py $error)"
    fi
}
precmd()
{
    _update_ps1
}

konsole user note

You may not see the icons when using konsole. To solve this problem, you can use -m option:

function _update_ps1()
{
    export PROMPT="$(~/powerline-zsh.py -m konsole $?)"
}
precmd()
{
    _update_ps1
}

Authors and License

The powerline-zsh package is written by Chien-Wei Huang, Shrey Banga and contributors. It’s MIT licensed and freely available.

Feel free to improve this package and send a pull request to GitHub.