IPython Agnoster theme
IPython Agnoster (aka IPster) is a hipster theme for the IPython REPL.
It was designed to provide a consistent terminal experience around
Agnoster Zsh theme <https://github.com/i5ar/agnoster-zsh-theme>
__ fork.
IPster is optimized for people who use:
- Solarized colorscheme;
- Unicode-compatible fonts.
| For GNOME GNU/Linux users, I highly recommend GNOME Terminal + Solarized dark + DejaVu Sans Mono Nerd.
| For KDE GNU/Linux users, I highly recommend Konsole + Solarized Dark <https://github.com/phiggins/konsole-colors-solarized>
__ + DejaVu Sans Mono Nerd.
| For Mac users, I highly recommend iTerm 2 + Solarized Dark.
With some extra hassle this theme works on Windows too.
Installation
For IPython>=5.0
install the package:
::
pip install -U pip setuptools # update environment markers support
pip install ipython-agnoster
For IPython>=0.11,<5.0
clone the repository and copy the ipster
module to the extensions directory (deprecated):
::
git clone --depth=1 https://github.com/i5ar/ipster.git
cd ipster
cp -r ipster "$HOME/.ipython/extensions"
Configuration
Once the module is installed you need to configure it.
Edit your configuration file
~/.ipython/profile_default/ipython_config.py
:
::
## Use 24bit colors instead of 256 colors in prompt highlighting.
c.TerminalInteractiveShell.true_color = True
## Set the color scheme (NoColor, Neutral, Linux, or LightBG).
c.InteractiveShell.colors = 'Linux'
##
c.InteractiveShell.separate_in = ''
For IPython>=5.0
only add the following lines:
::
from ipster.since_5 import IPsterPrompts, IPsterStyle
c.TerminalInteractiveShell.prompts_class = IPsterPrompts
highlighting_ipstyle = IPsterStyle().overrides_linux()
c.TerminalInteractiveShell.highlighting_style_overrides = highlighting_ipstyle
For IPython>=0.11,<5.0
only add the following lines (deprecated):
::
from pygments.token import Token
# Define prompt colors
style_overrides_linux = {
Token.IPsterPromptVirtualenv: 'bg:#859900 #073642',
Token.IPsterPowerlinePromptVirtualenv: 'bg:#073642 #859900',
Token.Prompt: 'bg:#073642 #839496',
Token.PromptNum: 'bg:#073642 #859900 bold',
Token.OutPrompt: 'bg:#073642 #839496',
Token.OutPromptNum: 'bg:#073642 #dc322f bold',
Token.IPsterPowerlinePrompt: '#073642',
Token.IPsterPromptSpace: '#839496',
}
# Override prompt colors
c.TerminalInteractiveShell.highlighting_style_overrides = style_overrides_linux
# Load extension
c.InteractiveShellApp.extensions = [
'ipster.post_0_11'
]
Compatibility
Tmux
True color support must be enabled in the configuration file
``~/.tmux.conf`` for Solarized colorscheme to work properly:
::
# Override screen 256 color with true color
set-option -ga terminal-overrides ",xterm-256color:Tc"
If this fix doesn't work your version of Tmux is probably too old.
Roadmap
-------
When using `IPython
shortcuts <http://ipython.readthedocs.io/en/stable/config/shortcuts/#multi-filtered-shortcuts>`__
for Vi mode, the current mode indication might be very helpful. It would
be great if IPster could show in a right prompt the Vi mode.
Contribute
----------
Suggestions and pull requests are welcome.
Extras
------
If you already use Powerline for IPython, install the IPster theme under
the ``extras`` directory, please.
TODO
----
- Vi mode detection in the `right
prompt <https://github.com/jonathanslenders/python-prompt-toolkit/issues/237>`__;