oh-my-fish/docs/Themes.md
2016-01-25 16:29:02 -02:00

75 KiB
Raw Blame History

Available themes

agnoster

agnoster

A fish theme optimized for people who use:

  • Solarized
  • Git
  • Mercurial (requires 'hg prompt')
  • SVN
  • Unicode-compatible fonts and terminals (I use iTerm2 + Menlo)

For Mac users, I highly recommend iTerm 2 + Solarized Dark

agnoster theme

Characteristics
  • If the previous command failed (✘)
  • User @ Hostname (if user is not DEFAULT_USER, which can then be set in your profile)
  • Git/HG/SVN status
  • Branch () or detached head (➦)
  • Current branch / SHA1 in detached head state
  • Dirty working directory (±, color change)
  • Working directory
  • Elevated (root) privileges ()
  • Current virtualenv (Python) You will probably want to disable the default virtualenv prompt. Add to your init.fish: set --export VIRTUAL_ENV_DISABLE_PROMPT 1
  • Indicate vi mode. (If you've set fish_vi_mode in your config and don't like the ugly left prompt indicator you can solve this by replacing it with set -g fish_key_bindings fish_vi_key_bindings and then removing the if set -q __fish_vi_mode check at the bottom of the fish_right_prompt.fish)

Ported from https://gist.github.com/agnoster/3712874.

agnoster-mercurial

[DEPRECATED] agnoster-mercurial

Deprecation notice: Since mercurial support has been merged into theme-agnoster directly, this repository will be discontinued.


A ZSH theme optimized for people who use:

  • Solarized
  • Git
  • Mercurial
  • Unicode-compatible fonts and terminals (I use iTerm2 + Menlo)

For Mac users, I highly recommend iTerm 2 + Solarized Dark

agnoster theme

Characteristics
  • If the previous command failed (✘)
  • User @ Hostname (if user is not DEFAULT_USER, which can then be set in your profile)
  • Git status
  • Mercurial status
  • Branch () or detached head (➦)
  • Current branch / SHA1 in detached head state
  • Dirty working directory (±, color change)
  • Working directory
  • Elevated (root) privileges ()

Ported from https://gist.github.com/agnoster/3712874.

batman

Batman

A Oh My Fish theme inspired by Batman.

MIT License Fish Shell Version Oh My Fish Framework


Features

From left to right:

  • $HOME directory abbreviated to ^^
  • Path to current working directory is abbreviated.
  • Arrow symbol >>> becomes red if last $status was != 0
  • Display exit status for non zero codes (Not shown in the picture)
  • ^ character denotes the current repository has stashed changes.
  • * character denotes the current repository is dirty.
  • Display current branch.
  • Display number of commits in relation to the current branch.
  • Display current time.
  • Batman inspired colors.

Screenshot

License

[MIT][mit] © [Jorge Bucaran][author] et al

Disclaimer: This work is not intended to infringe on any rights by and of the companies and/or individuals involved in the production of any series mentioned here. I don't own Batman.

beloglazov

beloglazov

A theme based on the default robbyrussell theme. This theme adds time, the number of non-pushed commits, and whether the previous command has failed.

beloglazov-fish-theme

Characteristics
  • Displays git information in the command prompt when available
  • Displays the number of non-pushed git commits
  • Displays the current time
  • Displays ✘ if the previous command failed

bira

bira

Theme imported from Oh my ZSH: https://github.com/robbyrussell/oh-my-zsh/blob/master/themes/bira.zsh-theme Contains traces of nuts and code from other Oh my fish themes.

Display username, hostname, current path, ruby version and git status. Display the latest error status in the right prompt.

bira theme

TODO:

  • display Python version

bobthefish

bobthefish

bobthefish is a Powerline-style, Git-aware fish theme optimized for awesome.

![](https://img.shields.io/badge/Framework-Oh My Fish-blue.svg?style=flat) Join the chat at https://gitter.im/oh-my-fish/oh-my-fish

bobthefish

Installation

Be sure to have Oh My Fish installed. Then just:

omf install bobthefish

You will probably need a Powerline-patched font for this to work. I recommend picking one of these.

This theme is based loosely on agnoster.

Features
  • A helpful, but not too distracting, greeting.
  • A subtle timestamp hanging out off to the right.
  • Powerline-style visual hotness.
  • More colors than you know what to do with.
  • An abbreviated path which doesn't abbreviate the name of the current project.
  • All the things you need to know about Git in a glance.
  • Visual indication that you can't write to the current directory.
The Prompt
  • Flags:
    • Previous command failed (!)
    • Background jobs (%)
    • You currently have superpowers ($)
  • Current vi mode
    • You'll need to set -g theme_display_vi yes to enable
  • User@Host (unless you're the default user)
  • Current RVM or rbenv (Ruby) version
  • Current virtualenv (Python) version
    • If you use virtualenv, you will probably need to disable the default virtualenv prompt, since it doesn't play nice with fish: set -x VIRTUAL_ENV_DISABLE_PROMPT 1
  • Abbreviated parent directory
  • Current directory, or Git or Mercurial project name
  • Current project's repo branch (branch-glyph master) or detached head ( d0dfd9b)
  • Git or Mercurial status, via colors and flags:
    • Dirty working directory (*)
    • Untracked files ()
    • Staged changes (~)
    • Stashed changes ($)
    • Unpulled commits (-)
    • Unpushed commits (+)
    • Unpulled and unpushed commits (±)
    • Note that not all of these have been implemented for hg yet :)
  • Abbreviated project-relative path
Configuration

You can override some of the following default options in your config.fish:

set -g theme_display_git no
set -g theme_display_git_untracked no
set -g theme_display_git_ahead_verbose yes
set -g theme_display_vagrant yes
set -g theme_display_hg yes
set -g theme_display_virtualenv no
set -g theme_display_ruby no
set -g theme_display_user yes
set -g theme_display_vi yes
set -g theme_display_vi_hide_mode default
set -g theme_title_display_process yes
set -g theme_title_display_path no
set -g theme_title_use_abbreviated_path no
set -g theme_date_format "+%a %H:%M"
set -g theme_avoid_ambiguous_glyphs yes
set -g default_user your_normal_user

Title options

  • theme_title_display_process. By default theme doesn't show current process name in terminal title. If you want to show it, just set to yes.
  • theme_title_display_path. Use no to hide current working directory from title.
  • theme_title_use_abbreviated_path. Default is yes. This means your home directory will be displayed as ~ and /usr/local as /u/local. Set it to no if you prefer full paths in title.

Prompt options

  • theme_display_ruby. Use no to completely hide all information about Ruby version. By default Ruby version displayed if there is the difference from default settings.
  • theme_display_vagrant. This feature is disabled by default, use yes to display Vagrant status in your prompt. Please note, only VirtualBox provider is supported.

budspencer

Budspencer theme

A theme for nerds, makes fish even more powerful. It's equipped with a hell of a lot of nice functions and key bindings to speed up your workflow.

The philosophy behind budspencer theme:

  • Delimit the prompt lines clearly to the output.
  • Produce output only if it contains relevant information.
  • Show useful notifications within the prompt.
  • Equip the prompt with toggle commands in order to change its style interactively.
  • Store sessions in order to make frequently used commands quickly accessible.
  • Make navigation within the directory tree as easy as possible using bookmarks and a directory history without duplicates.
  • Make histories quickly accessible with menus.
  • Don't stress your eyes. Use different colors in dark and bright environments.

Demonstration video

video

Requirements

You need an up-to-date fish shell version from github or a nightly build.

Non standard tools:

Note for OS X users

The theme uses advanced sed and expr features. The OS X tools have restricted functionality.

Try expr from coreutils package if you see expr: syntax error in budspencer prompt.

Execute brew install --with-default-names gnu-sed if there are Array index out of bounds messages in your prompt.

Configuration

General configuration

The theme behaves similar to vim's airline/powerline plugins. Thus, it needs a powerline font. It's also crucial to have vi mode enabled. Thus, execute

set -U fish_key_bindings fish_vi_key_bindings

before enabling the theme.

Colors

Redefine $budspencer_colors with the set command in order to change the colors of the prompt.

Example:

set budspencer_colors 000000 333333 666666 ffffff ffff00 ff6600 ff0000 ff0033 3300ff 0000ff 00ffff
00ff00

will result in a prompt like this: color replace example

Two color schemes for bright and dark environments are predefined. You can enable them with day and night, respectively.

Command history

Commands that shouldn't appear in the command history are defined by a universal list $budspencer_nocmdhist. Default:

set -U budspencer_nocmdhist c d ll ls m s
Disable/reenable greeting

Disable:

set -U budspencer_nogreeting

Reenable:

set -e budspencer_nogreeting

Outer prompt segments

  • Vi mode is indicated by color of outer segments, cursor color also changes if terminal supports it:
    • blue: NORMAL mode
    • yellow: INSERT mode
    • magenta: VISUAL mode

Left prompt segments

  • Prompt line number
  • Git repository information
  • Status symbols
    • ✻: keep track of this shell session, can be toggled with # to show the number of the session within the sessions list
    • ⌘: present working directory is in bookmark list, can be toggled with # to show the number of the bookmark
    • V: vi is parent process
    • R: ranger is parent process
    • ⚙: there are background jobs, can be toggled with # to show the amount of background jobs
    • : no write permissions in present working directory
    • ⚔: there are tasks scheduled for this week, can be toggled with # to show the amount of weekly tasks
    • ⚑: there are appointments for today, can be toggled with # to show the amount of appointments
    • ✔: last command succeeded, can be toggled with # to show the status value
    • ✘: last command failed, can be toggled with # to show the status value
    • : superuser indicator
  • Present working directory
  • Active Python virtual environment. Requires Virtual Fish

Right prompt segments

  • Last command's duration time
  • Git status symbols:
    • ↑: git repository is ahead origin
    • ↓: git repository is behind origin
    • +: changes have been added to git index
    • : files have been deleted in work tree
    • ✱: files have been modified in work tree
    • →: files have been renamed in git index
    • ═: there are unmerged commits
    • ●: there are untracked (new) files
    • ✭: there are stashed commits

Toggle prompt segments

The following shortcuts need vi-mode:

  • Style of "present working directory"-segment can be toggled in NORMAL and in VISUAL mode with space bar
    • styles implemented:
      • short (shows username, short hostname and truncated path; recommended in most cases)
      • long (shows username, full hostname and full path; useful for copy-paste in ssh connections)
      • none (shows nothing except small delimiter; useful for small terminals)
      • If prompt is toggled with #, the IP address is shown instead of the hostname.
    • configurable by universal list $budspencer_pwdstyle (if not set, defaults to short long none); note that changes to $budspencer_pwdstyle keep persistant as it's a universal variable.

pwd style

  • Style of symbols can be toggled in NORMAL and in VISUAL mode with #
    • styles implemented:
      • symbols (shows status symbols)
      • numbers (shows numbers instead of symbols in left prompt as well as amount of changes in right git prompt)

Note, the format is username@hostname:pathname. Thus, you can cut the whole string with your mouse and paste it into ssh commands.

Quickly navigate in history of working directories

The function d drops down a menu showing the history as enumerated list. Unlike fish's builtin dirh, d does not show any duplicates. Enter a number to jump to a directory within the list.

dir menu

The following shortcuts need vi-mode:

  • Press H in NORMAL mode to change present working directory to previous working directory in history.
  • Press L in NORMAL mode to change present working directory to next working directory in history.

Quickly navigate in command history

The function c drops down a menu showing the command history as enumerated list similarly to the d function. Selections are also pasted into the X clipboard. It's possible to load a command of a former prompt by giving the prompt line number as argument.

Bookmarks

A bookmark can be created with mark. It can be removed with unmark. Bookmarks are universal and thus persistant. A new shell automatically changes working directory on startup to newest bookmark. m is a function that drops down a menu showing the bookmarks as enumerated list equivalently to d.

The following shortcuts need vi mode:

  • Create a bookmark for present working directory with m in NORMAL mode.
  • Remove a bookmark for present working directory with M in NORMAL mode.

Edit commandline with your favorite editor

The function edit-commandline let you edit the commandline with your editor. It makes the commandline as powerful as your editor. If $EDITOR is not set, vi is used.

The following shortcut needs vi mode:

  • Type . in NORMAL mode to edit commandline in editor.

Sessions

Shell session can be stored with s <session name>. If a session with session name already exists, the session with this name will be attached. If a session with session name is already active within another terminal, this terminal will be focussed.

A list of available sessions can be shown with s.

A session can be erased with s -e <session name>.

Type s -d to detach current session.

Set window title

Just type wt <title>.

Ring the bell in order to set the urgency hint flag

If you have configured your terminal application to use the visual bell, your window manager will tell you when a job running in your shell has finished. You don't need to check manually whether it's done.

If you have still activated the acoustic bell, you probably hate that feature. Switch it off in that case:

set -U budspencer_nobell

TODO

  • vi REPLACE mode, as soon as REPLACE mode is implemented within fish

Feedback

Give me feedback if you ...

  • ... have ideas how I could improve budspencer.
  • ... have problems with budspencer.
  • ... have questions concerning budspencer.

cbjohnson

cbjohnson theme

A minimal theme forked from the yimmy theme (thanks jhillyerd!)

screenshot

chain

chain

A thin, classy theme composed of a chain of information.

asciicast

Installation

Install with Oh My Fish:

$ omf install chain

Features

  • Displays current Git branch and dirty state.
  • If the last command fails, the exit code is displayed.
  • An abbreviated path.

Your prompt in chain consists of a series of links, with each link displaying a single piece of information. Not all links are always visible and only show up when you need them. Below are all the possible links (in order from left to right):

  • Superuser privileges ()
  • The current working directory
  • The current Git branch ()
  • Git working directory dirty (±)
  • Exit status of the last command

License

[MIT][mit] © [coderstephen][author] et al

clearance

Fish Theme: clearance

A minimalist fish shell theme for people who use git

clearance theme

Like it?

Check out other versions of this theme for OSX Terminal or VIM!

cmorrell

Chris Morrell's Fish Theme

This is a theme I designed for myself but have given to a few friends and decided to publish for others' enjoyment.

Chris Morrell's Fish Theme

Features

  • Minimal base prompt
  • Shows compact git status w/ the number of changed files & current branch
  • Gives a visual indication when you're logged in via SSH, or logged in as anyone but the default user (set the $default_user variable to define your default user)
  • Shows indicator if previous command failed
  • Shows a bright red "!" if you're logged in as root

(Note: This theme is designed for a light-on-dark theme like Solarized but should work in a dark-on-light terminal with a few terminal color tweaks)

coffeeandcode

Fish Theme: coffeeandcode

Another theme choice for Oh-My-Fish! originally created by Jonathan Knapp.

coffeeandcode

Warning:

This theme will overwrite all of your Fish color and git settings. If you'd like to customize them, you will have to make changes to the fish_prompt.fish file in this theme. All of the settings are listed at the top of the file.

cor

cor

The name says it all

cor theme

For this theme you need a emoji supporting terminal and the emoji-clock plugin

  • emoji-clock
  • Git
  • Unicode-compatible fonts and terminals (I use iTerm2 on OSX)
Characteristics

####### Left side prompt

  • If the previous command failed (✘)
  • User @ Hostname
  • Abbriviated path
  • Emoji-clock

####### Right side prompt

  • Branch
  • Git status clean dirty (*)
  • Time of last command

dangerous

Dangerous theme

A theme for the 70s, makes fish even more powerful. It's equipped with a hell of a lot of nice functions and key bindings to speed up your workflow.

The philosophy behind dangerous theme:

  • Delimit the prompt lines clearly to the output.
  • Produce output only if it contains relevant information.
  • Show useful notifications within the prompt.
  • Equip the prompt with toggle commands in order to change its style interactively.
  • Store sessions in order to make frequently used commands quickly accessible.
  • Make navigation within the directory tree as easy as possible using bookmarks and a directory history without duplicates.
  • Make histories quickly accessible with menus.
  • Don't stress your eyes. Use different colors in dark and bright environments.

Screenshot

screenshot

Requirements

You need an up-to-date fish shell version from github or a nightly build.

Non standard tools:

Configuration

General configuration

It's crucial to have vi mode enabled. Thus, execute

set -U fish_key_bindings fish_vi_key_bindings

before enabling the theme.

Colors

Redefine $dangerous_colors with the set command in order to change the colors of the prompt.

Example:

set dangerous_colors 000000 333333 666666 ffffff ffff00 ff6600 ff0000 ff0033 3300ff 0000ff 00ffff
00ff00

Two color schemes for bright and dark environments are predefined. You can enable them with day and night, respectively.

Command history

Commands that shouldn't appear in the command history are defined by a universal list $dangerous_nocmdhist. Default:

set -U dangerous_nocmdhist c d ll ls m s
Disable/reenable greeting

Disable:

set -U dangerous_nogreeting

Reenable:

set -e dangerous_nogreeting

Outer prompt segments

  • Vi mode is indicated by color of outer segments, cursor color also changes if terminal supports it:
    • blue: NORMAL mode
    • yellow: INSERT mode
    • magenta: VISUAL mode

Left prompt segments

  • Prompt line number
  • Git repository information
  • Status symbols
    • ✻: keep track of this shell session, can be toggled with # to show the number of the session within the sessions list
    • ⌘: present working directory is in bookmark list, can be toggled with # to show the number of the bookmark
    • V: vi is parent process
    • R: ranger is parent process
    • ⚙: there are background jobs, can be toggled with # to show the amount of background jobs
    • : no write permissions in present working directory
    • ⚔: there are tasks scheduled for this week, can be toggled with # to show the amount of weekly tasks
    • ⚑: there are appointments for today, can be toggled with # to show the amount of appointments
    • ✔: last command succeeded, can be toggled with # to show the status value
    • ✘: last command failed, can be toggled with # to show the status value
    • : superuser indicator
  • Present working directory

Right prompt segments

  • Last command's duration time
  • Git status symbols:
    • ↑: git repository is ahead origin
    • ↓: git repository is behind origin
    • +: changes have been added to git index
    • : files have been deleted in work tree
    • ✱: files have been modified in work tree
    • →: files have been renamed in git index
    • ═: there are unmerged commits
    • ●: there are untracked (new) files
    • ✭: there are stashed commits

Toggle prompt segments

The following shortcuts need vi-mode:

  • Style of segments can be toggled in NORMAL and in VISUAL mode with space bar

    • styles implemented for present working directory segment:
      • short (shows username, short hostname and truncated path; recommended in most cases)
      • long (shows username, full hostname and full path; useful for copy-paste in ssh connections)
      • none (shows nothing except small delimiter; useful for small terminals)
      • If prompt is toggled with #, the IP address is shown instead of the hostname.
    • configurable by universal list $dangerous_pwdstyle (if not set, defaults to short long none); note that changes to $dangerous_pwdstyle keep persistant as it's a universal variable.
    • The other segments are hidden in case $pwd_style is none.
  • Style of symbols can be toggled in NORMAL and in VISUAL mode with #

    • styles implemented:
      • symbols (shows status symbols)
      • numbers (shows numbers instead of symbols in left prompt as well as amount of changes in right git prompt)

Note, the format is username@hostname:pathname. Thus, you can cut the whole string with your mouse and paste it into ssh commands.

Quickly navigate in history of working directories

The function d drops down a menu showing the history as enumerated list. Unlike fish's builtin dirh, d does not show any duplicates. Enter a number to jump to a directory within the list.

The following shortcuts need vi-mode:

  • Press H in NORMAL mode to change present working directory to previous working directory in history.
  • Press L in NORMAL mode to change present working directory to next working directory in history.

Quickly navigate in command history

The function c drops down a menu showing the command history as enumerated list similarly to the d function. Selections are also pasted into the X clipboard. It's possible to load a command of a former prompt by giving the prompt line number as argument.

Bookmarks

A bookmark can be created with mark. It can be removed with unmark. Bookmarks are universal and thus persistant. A new shell automatically changes working directory on startup to newest bookmark. m is a function that drops down a menu showing the bookmarks as enumerated list equivalently to d.

The following shortcuts need vi mode:

  • Create a bookmark for present working directory with m in NORMAL mode.
  • Remove a bookmark for present working directory with M in NORMAL mode.

Edit commandline with your favorite editor

The function edit-commandline lets you edit the commandline with your editor. It makes the commandline as powerful as your editor. If $EDITOR is not set, vi is used.

The following shortcut needs vi mode:

  • Type . in NORMAL mode to edit commandline in editor.

Sessions

Shell session can be stored with s <session name>. If a session with session name already exists, the session with this name will be attached. If a session with session name is already active within another terminal, this terminal will be focussed.

A list of available sessions can be shown with s.

A session can be erased with s -e <session name>.

Type s -d to detach current session.

Set window title

Just type wt <title>.

TODO

  • vi REPLACE mode, as soon as REPLACE mode is implemented within fish

Feedback

Give me feedback if you ...

  • ... have ideas how I could improve dangerous.
  • ... have problems with dangerous.
  • ... have questions concerning dangerous.

default


Default theme for Oh My Fish.

Install

$ omf theme default

Features

  • All the things you need to know about Git in a glance.
  • A subtle timestamp hanging out off to the right.
  • Previous command status.

Screenshot

Configuration

Only display the folder name:

  set -g theme_short_path yes

License

[MIT][mit] © [bpinto][author] et al

eclm

eclm

Based on the robbyrussell theme.

eclm theme

Characteristics
  • Displays git information in the command prompt when available.
  • Indicates 'master' branch with a distinctive color, encouraging the use of feature-branches (useful when development is done using pull requests)
  • If the last command was failed, the indicator would be red, otherwise it's green

edan

Theme Edan

Inspired by idan, a functional, uncluttered fish theme with usability perks for git users and python developers.

Screenshot of theme Edan

Characteristics

####### Left Prompt

  • User & host (Shown in "remote" mode, hidden by default. Execute edan-set-remote or edan-set-local to switch.)
  • Current python virtualenv (if applicable)
  • Truncated CWD (just the current folder name)
  • Git branch and dirty state (if applicable)

####### Right Prompt

  • Full CWD path
  • Last error code (if applicable)
Font

Check out Anonymous Pro.

es

es theme

A Powerline-style, Git-aware theme for Oh My Fish.

MIT License Fish Shell Version Oh My Fish Framework


Install

Make sure you have Oh My Fish installed. Then just

$ omf install es

Features

  • Git-aware theme with detailed Git status in the left prompt (added, removed, modified, renamed, unstaged, stashed)
  • Node/Python/Ruby@gemset current version inside a git folder in the right prompt if respective virtual environment manager is installed (nvm, pyenv, rbenv)
  • Error status and duration of last command in the right prompt
  • Mac-notifications on completion of long commands (10+ seconds by default) if terminal is out of focus
  • Limits path to two last folders for better visibility, with $HOME directory abbreviated to ~
  • Powerline-patched fonts required

Screenshot

#####Git folder

#####Normal folder (no Git)

License

[MIT][mit] © eugenesvk

fishface

FishFace

Shows an ASCII fish which is blue or green when in a git repo.

fishface theme

fishy-drupal

fishy-drupal

fishy-drupal

Features
  • Shows the present working directory, abbreviated (default fish style)
  • Shows the active git branch, if any
  • Shows the active drush site alias, if any
  • Shows yellow ✗ if the current git directory is "dirty"

fisk

Fisk

theme screenshot

A nice dark blue-green theme with support for:

  • Last exit code
  • Current git HEAD
  • Current python virtualenv

By joar, thanks to adisbladis for the starting point.

flash

[][THEMES-NAMESPACE-flash-Wahoo]

Flash

Theme for Fishshell inspired by the Flash.

Features

From left to right:

  • $HOME directory abbreviated to ( ⌁ )

  • / root is diplayed as ( / )

  • $HOME and / characters change color to dim gray if last $status was != 0.

  • Path to current working directory is abbreviated.

  • Path and prompt separator is displayed as ).

  • < character next to (branch) denotes the repository has stashed changes.

  • * next to the branch name denotes the current repository is dirty.

  • Display current branch.

  • Display current time.

  • Time separator : changes color to red if last $status was != 0.

  • Display exit status for non zero codes after character.

  • Flash inspired colors.

  • Display the number of seconds taken by the last command executed.

Screenshot

License

Disclaimer: This work is not intended to infringe on any rights by and of the companies and/or individuals involved in the production of any series mentioned here. I don't own the Flash.

MIT © [Jorge Bucaran][THEMES-NAMESPACE-flash-Author] et al [THEMES-NAMESPACE-flash-Author]: http://about.bucaran.me [THEMES-NAMESPACE-flash-Wahoo]: https://github.com/bucaran/wahoo

fox

fox

cloned from oh-my-zsh.

fox theme

gianu

Gianu

Original theme made by gianu for oh-my-zsh, converted to oh-my-fish by JBarberU

gianu theme

Characteristics

Displays:

  • Username and hostname
  • Working directory
  • Git information when available.

gitstatus

GitStatus

GitStatus

Characteristics
  • Displays host information in the command prompt when connected via ssh.

  • Displays git information in the command prompt when inside a git repository.

    • Shows current branch name.
    • Shows * if working copy is dirty.
    • Shows # if everything is staged.
    • Shows no indicators if the working copy is clean.

gnuykeaj

Fish Theme: gnuykeaj

Super minimal one line version of clearance theme. Balance between need to know information and space. Has git branch and dirty state information based on the color of the branch name.

gnuykjeatheme

godfather

godfather fish theme

Clean git theme with homey feel and git-centric features.

screenshot

Prompt structure:
  • Left-hand side:

    • user@host:
    • truncated cwd (just the current folder name)
    • git branch with state info (if applicable)
  • Right-hand side:

    • last error code (if applicable)
    • [timestamp]
Credits:

Colors and git functions taken from amio's edan theme.

hogan

[][THEMES-NAMESPACE-hogan-Wahoo]

:hurtrealbad: Hogan

Fishshell Theme.

Features

Use the powerline patched fonts for best results.

  • Powerline displaying current path segments and git status.

  • git status segment becomes pink if the repository is touched / dirty.

  • Directory segments become red if $status is non-zero.

Screenshot

License

MIT © [Jorge Bucaran][THEMES-NAMESPACE-hogan-Author] et al [THEMES-NAMESPACE-hogan-Author]: http://about.bucaran.me [THEMES-NAMESPACE-hogan-Wahoo]: https://github.com/bucaran/wahoo

hulk

[][THEMES-NAMESPACE-hulk-Wahoo]

💢 Hulk

Theme for Fishshell inspired by The Hulk

Features

From left to right:

  • Display current time.
  • $HOME directory abbreviated to an uppercase gamma symbol
  • Colors change to red to denote the last $status code was != 0.
  • Path to current working directory is abbreviated.
  • Display current branch.
  • A green colored branch name denotes the repository is dirty.
  • / root is diplayed as
  • Colors inspired by The Hulk.

Screenshot

License

Disclaimer: This work is not intended to infringe on any rights by and of the companies and/or individuals involved in the production of any series mentioned here. I don't own the Hulk.

MIT © [Jorge Bucaran][THEMES-NAMESPACE-hulk-Author] et al [THEMES-NAMESPACE-hulk-Author]: http://about.bucaran.me [THEMES-NAMESPACE-hulk-Wahoo]: https://github.com/bucaran/wahoo

idan

idan

A functional, uncluttered fish theme with usability perks for git users and python developers.

Screenshot of idan theme

Characteristics

####### Left Prompt

  • Current python virtualenv (if applicable)
  • Truncated CWD (just the current folder name)
  • Git branch and dirty state (if applicable)

####### Right Prompt

  • Full CWD path
  • Last error code (if applicable)

integral

integral

A simple git upstream theme.

Characteristics
  • Current branch
  • Dirty working directory
  • Working directory
  • Git upstream status
Screenshot

Integral Screenshot

jacaetevha

jacaetevha

A theme optimized for people who use:

  • Git
  • Unicode-compatible fonts and terminals (I use iTerm2 + Monaco)

For Mac users, I highly recommend iTerm 2.

jacaetevha
theme

Characteristics
  • Left-hand prompt:
    <user> at <host> in <abbreviated path> <total size of files in dir> (<current Git branch>)
    ↪ 
  • Right-hand prompt:
    <current date>

krisleech

krisleech

A very simple theme optimized for Git. Less is more.

krisleech theme

krisleech theme

Characteristics
  • Current working directory
  • Branch name
  • Dirty working directory (✘)

l


A theme inspired by oh-my-zsh's lambda theme.

Install

$ omf theme l

Features

  • Current branch
  • Dirty working directory
  • Working directory

Screenshot

Configuration

Only if fish_theme_l_right_prompt variable is set true within config.fish:

set theme_display_rbenv 'yes'
set theme_display_rbenv_gemset 'yes'
### if you want to display rbenv ruby version only within directories that contain Gemfile
set theme_display_rbenv_with_gemfile_only 'yes'
  • Rbenv Ruby Version
  • Rbenv Ruby Gemset

License

[MIT][mit] © [bpinto][author] et al

lambda

Lambda

MIT License Fish Shell Version


Screenshot

Install

####### Oh-My-Fish

omf install lambda

led

[][THEMES-NAMESPACE-led-Wahoo]

led

Theme for Fishshell inspired by leds.

Features

  • Basic git info in command prompt.
  • Display × and next to git branch to indicate touched status.
  • Right prompt shows upstream info ^, v or ^v or ahead, behind and diverged respectively.
  • Prompt arrow, path separator / and right prompt becomes red if the last command failed.
  • Battery Indicator if battery plugin is installed.

Screenshot

License

MIT © [Jorge Bucaran][THEMES-NAMESPACE-led-Author] et al [THEMES-NAMESPACE-led-Author]: http://about.bucaran.me [THEMES-NAMESPACE-led-Wahoo]: https://github.com/bucaran/wahoo

lolfish

See https://github.com/er0/lolfish.git for details

mtahmed

mtahmed

Minimal theme.

mtahmed

Left prompt
  • First 10 characters of hostname if ssh'ed
  • Current directory name (not path)
  • ─╼ (cute little unicode characters)
Right prompt
  • Exit code of the previous command

nai

nai

A minimalist fish theme which displays git branch and status information.

nai

Characteristics

####### Left Prompt

  • Truncated CWD (just the current folder name)
  • Git branch and dirty state (if applicable)

nelsonjchen


nelsonjchen theme for Oh My Fish. Based on re5et in Oh-My-Zsh.

Install

$ omf u nelsonjchen

Features and Differences

  • Pretty colors
  • Two line prompt
  • Git Prompt using off-the-shelf fish functions
    • Note that the symbology, colors, and features are more than the zsh version and they don't match up 1-to-1. For example, checking out a tag will show the tag name in fish but the re5et version in zsh will simply show the commit ID. This was one such freebie amongst many I just left in while porting since the fish script was giving it to me for free anyway. It is still pretty close though.
  • Red user prompt if root
  • 12 hour clock
    • re5et: 24 hour clock
  • MM DD YY date format
    • re5et: YY MM DD date format
  • Title Setting to the prompt_pwd function in fish for screen, tmux, and non-terminal multiplexer.

Omissions from the re5et version

  • Trimming down the working directory display only works on ~. The original re5et prompt would also trim based on the current environment variables set. For example, if you had the environment variable FOO set to /usr/local and you did cd /usr/local, you would see $FOO/ in the prompt as the current working directory. I'm not sure how I would get this working. fish does appear to have a condensation function but it goes beyond simple environment variable replacement and I can't figure out how to turn it off.

Screenshot

License

[MIT][mit] © [Nelson Chen][author] et al

numist

See https://github.com/oh-my-fish/theme-numist for details

ocean

ocean

A fish theme with ocean in mind.

Preview

Unicode-compatible fonts and terminals is required.

I would recommend iTerm2 + Solarized Dark for Mac users.

This theme is based loosely on agnoster

Characteristics
  • Show a radioactive symbol (☢) when gain the root privileges (It's dangerous!)

  • Current python virtualenv (if applicable)

  • The anchor () turns red if the previous command failed

  • Full path of current working directory

  • Show the Git branch and dirty state (if applicable)

  • Show User@Hostname if user is not the default user. Set the following two lines in your config.fish to turn on this feature:

    set -g theme display_user yes
    set -g default_user your_default_username
    
Troubleshooting in iTerm

If you see a colored anchor icon instead of the white one, this is because your system font is lacking the anchor icon, and iTerm defaults to the Apple Emoji Font. To get the right icon, either add it to your current font, or chose a powerline font that has it (like Meslo for Powerline, available in https://github.com/powerline/fonts), and select it for your Non-ASCII font.

pastfish


pastfish theme for Oh My Fish.

Install

$ omf u pastfish

Features

  • Random greeting message
  • Command prompts colored based on time (morning is blue, afternoon is green, midnight is red ...)
  • The > at the end of each prompt will turn yellow if the git repo is dirty, red if current location is not writable

Screenshot

License

[MIT][mit] © [chgu82837][author] et al

perryh

perryh

This is similar to godfat's gitstatus theme, but mainly includes red, white, cyan, and yellow.

perryh

plain


plain theme for Oh My Fish.

Features

  • No need to use a patched font
  • Colorful
  • Not folding path
  • Detecting remote logged in and UID
  • Integrates Git

Screenshot

License

[MIT][mit] © [changyuheng][author] et al

pure

Pure

Port of the pure ZSH theme to Fish.

MIT License Fish Shell Version


Screenshot

Install

Fisherman
fisher install pure
Oh-My-Fish
omf install pure
Manually
set -l ffns (echo $HOME/.config/fish/functions)
curl -Ls https://raw.github.com/rafaelrinaldi/pure/master/fish_prompt.fish > $ffns/fish_prompt.fish
. $ffns/fish_prompt.fish

Features

  • Display current directory tail
  • Display Git branch name
  • Display whether or not the working copy is dirty
  • Display an up arrow if there are stuff to be pushed
  • Display an down arrow if there are stuff to be pulled
  • Display prompt symbol in red if previous command has failed
  • Display the current folder and command when a process is running
  • Display username and host when in an SSH session
  • Display duration of failed commands

Contributors

License

[MIT][mit] © [Rafael Rinaldi][author] et al.

red-snapper

RED SNAPPER

Red Snapper

####><}}*> F E A T U R E S

  • Directory path
  • Git branch name
  • Git status
  • YOUR OWN PET FISH!

####><}}*> GIT STATUS

Untracked changes

Your pet will detect if you added files, but didn't track them. He will open his mouth, hungry of yummy commits! fish shell untracked changes

After you commit, he will close his mouth, satiated. fish shell commited

Can't find .git

Something is fishy here! If you are not inside a Git working directory, your pet will go to sleep. fish shell not using git

robbyrussell

robbyrussell

The default theme cloned from oh-my-zsh.

robbyrussell theme

Characteristics
  • Displays git information in the command prompt when available.
  • If the last command was failed, the indicator would be red, otherwise it's green

russell

[][THEMES-NAMESPACE-russell-Wahoo]

russel

Theme for Fishshell based in the original bobbyrussel.

Features

  • Show basic git info in command prompt.
  • Display a yellow if the repository is touched.
  • Prompt arrow becomes red if the last command failed.

Screenshot

License

MIT © [Jorge Bucaran][THEMES-NAMESPACE-russell-Author] et al [THEMES-NAMESPACE-russell-Author]: http://about.bucaran.me [THEMES-NAMESPACE-russell-Wahoo]: https://github.com/bucaran/wahoo

scorphish

Scorphish

Compact. Sufficient.

scorphish

Left prompt

Abbreviated path, ruby version, virtualenv and git info

Right prompt

Last command's exit code and current time

Acknowledgments

This theme is based on Zish and Coffeandcode themes, many thanks to their authors!

Enjoy!

shellder

shellder

Things are beautiful if you love them. ― Jean Anouilh
i-license


  1. Speed ― Carefully optimized with slow environment like msys2
  2. No solarized ― xterm256 colors are beautiful enough, inspired by seoul256.vim
  3. zsh + fish support
Installation

[zplug] for zsh user, oh my fish for fish user

### zsh
zplug "simnalamburt/shellder"

### fish
omf install shellder

You'll need powerline patched font.


MIT License © [simnalamburt] et [al]

simple-ass-prompt

simple-ass-prompt

A theme for Oh My Fish.

MIT License Fish Shell Version Oh My Fish Framework


Install

⚠️This theme uses the string built-in which isn't available in fish 2.2.0. If you want to use this theme please consider building fish from master⚠️

$ omf install simple-ass-prompt

Features

This is Mathias Bynens Bash prompt ported to Fish with a few changed icons and added functionalities. As he put it:

Shell prompt based on the Solarized Dark theme. Screenshot: http://i.imgur.com/EkEtphC.png

Heavily inspired by @necolass prompt: https://github.com/necolas/dotfiles

iTerm → Profiles → Text → use 13pt Monaco with 1.1 vertical spacing.

Features:

  • A dirty state of the branch is displayed by !
  • Untracked files are displayed by
  • The existence of a stash is displayed by
  • A clean branch is displayed by
  • The branch is ahead with +
  • The branch is behind with -
  • The branch has diverged from upstream ±
  • Support for Pythons virtual environments
  • When in a git repo only the path relative to that repo is shown

Right side:

  • The last command failed is displayed by

Screenshot

Git Usage

VirtualFish Usage

Configuration

You can change the greeting message with:

set -g simple_ass_prompt_greeting MyGreeting

License

[MIT][mit] © [lfiolhais][author] et al

simplevi

fish_prompt-simplevi

The stock prompt with the vi indicator appended. It is meant to be used with the vi-mode plugin.

Screenshots:

normal mode

insert mode

sushi


🍣 Sushi theme for Oh My Fish.

Install

$ omf install sushi

Features

  • Minimal Prompt.
  • Git Support.
  • Displays ^ when there are stashed changes.
  • Displays * when there are any changes to files already being tracked in the repo.
  • Displays current branch name.
  • Branch name color changes when there are staged changes.
  • Displays number of commits current branch is ahead/behind from origin.
  • By default it shows only the name of the current directory but it provides a flag theme_complete_path to display abbreviated current working directory instead.
  • Displays Time.

Screenshot

Screenshot for Sushi Theme

License

[MIT][mit] © [Umayr Shahid][author] et al

syl20bnr

syl20bnr theme

A semi-compact oh-my-fish theme with nice support for git.

The theme has been tested on Ubuntu 14.04 (Trusty) and Mac OS X 10.10 (Yosemite). It is also compatible with Cygwin with the appropriate packages.

Table of Contents generated with DocToc

Segments

pwd: Compact current working directory

The pwd segment format is X:P(N) where:

  • X is either home or /
  • P is the current working path base name (name of the current directory)
  • N is the depth of the path starting from X

If the pwd is home or / then the prompt format is simplified to home and / respectively without the current directory and depth.

Examples

In home directory: home

Inside a directory in home: inside_home

Outside the home directory: outside_home

git

If the current directory is a git repository then the pwd segment is replaced by the git segment (I should know where I am).

The git segment format is X:YI@Z:P(N) where:

  • X is git
  • Y is the current branch name
  • I is some information about the current repository state
  • Z is the name of the repository
  • P is the current working path basename (name of the current directory) If P = Z then P(N) is not displayed
  • N is the depth of the path starting from base directory of the repository

The displayed information I is:

  • Unpushed commits are indicated with an up arrow like this [↑1]
  • Unmerged fetched commits are indicated with a down arrow like this [↓1]

Note: The dirtiness of the current branch is indicated by its color:

  • red: it is dirty
  • green: it is up to date

Note: The unmerged commits count appears only if the changes in the upstream branch as been fetched.

Examples

Dirty (changes not committed):

dirty

Unpushed commits:

unpushed_commits

Unmerged commits:

unmerged_commits

Both unpushed and unmerged commits:

unmerged_commits

In a sub-directory of the repository:

repo_subdir

vi-mode

This segment display the current vi-mode if the fish native vi mode or the oh-my-fish vi-mode plugin is used. See the [n] in the previous screenshots.

end

The color of the end of the prompt depends on the $status value of the last executed command. It is green or red depending on the success or failure of the last command.

Since I often use ranger and its shift+s key binding to bring a new child shell session, there is a discreet indicator when the parent process of the current shell is a ranger process: the end of the prompt is written twice (ie: >> instead of just >). With this indicator I quickly see if I can ctrl+d to end the current shell process and go back to the parent ranger process.

where

The where segment format is X@Y where:

  • X is the user name
  • Y is the host name

This segment is displayed in the right prompt.

Functions

Some functions come with the theme:

  • toggle_right_prompt will... toggle the right prompt! (alias: trp)

Mac compatibility

In order to make this theme work correctly with all the features make sure to install the following packages via MacPorts or Homebrew: -pstree (used in ranger detection)

Cygwin compatibility

In order to make this theme work on Cygwin, make sure to install the following packages:

  • bc for math fish function
  • psmisc for pstree (used in ranger detection)
  • git if you want to use the git segment.

taktoa

taktoa

A theme by taktoa

Characteristics
  • Shows current git information
  • Shows hostname if you are connected via ssh
  • Show current terminal multiplexer status (screen/tmux pane name and number)
  • Arrow is a lambda

taktoa theme

technopagan

technopagan

A minimalist fish theme forked from theme-nai (@xorgy) but with added (@rmillr) moonmoji support.

technopagan

Display the following bits on the left:

  • Current directory name
  • Git branch and dirty state (if inside a git repo)

toaster

Toaster

A fish (shell) theme with a poptart cat and a rainbow that signifies git status.

Toaster in action

tomita

source: http://www.isaotomita.net/images/photo/tomi01.jpg

tomita

A minimal, aesthetically pleasing fish theme.

Note: Make sure you're using a Unicode-enabled terminal and font.

Prompt

<abbreviated path> (<current git branch>) [<vi mode>] ⋊>
  • Working directory
  • Current git branch
  • vi mode (requires fish 2.2+)

This theme includes a custom vi mode indicator which is built into fish_prompt. If you'd like to use vi mode, I recommend adding the following lines to your config.fish:

# note: this erases the default fish_mode_prompt, which adds a vi mode
# indicator to the left of your prompt
function fish_mode_prompt; end

# turn on vi mode when the shell starts
fish_vi_mode

Screenshots

Without vi-mode:

without vi-mode

With vi-mode:

with vi-mode

In a git repo:

git branch

trout

A simple, but informative, prompt

example

uggedal

uggedal

Minimal theme.

uggedal theme

Characteristics
  • Only displays the $CWD.
  • Displays hostname if you're connected through ssh(1).
  • Right prompt displays the last command's exit code if it was non-zero.

will

Will

Minimalist theme.

Screenshot

Characteristics
  • The current working directory is displayed on the right-side
  • Hostnames are displayed if and only if we're on an SSH connection
  • Uses logical entailment as the prompt character

yimmy

yimmy theme

A simple two-line theme best displayed on a terminal configured with Solarized Dark colors.

user@host ~/c/w/dir (branch *)
>

Screenshot

Characteristics:

  • Standard fish prompt characters: > for user, # for root
  • Uses the fish prompt_pwd, so paths will be abbreviated
  • Uses built-in __fish_git_prompt functionality
  • Indicates Git work-in-progress (gwip/gunwip) if detected
  • Prompt character is colored red if previous command had a non-zero exit status
  • Includes complementary LS_COLORS

zish

Zish

Zhishen Wen's simple fun theme =)

zish

Left prompt

User, host, abbreviated path, and git branch info

######Right prompt Time and exit code

Enjoy!