oh-my-fish/docs/Themes.md
Pablo Santiago Blum de Aguiar 3eb76e105f Change table structure
2021-01-25 10:54:59 +01:00

173 KiB
Raw Blame History

Available themes

Expand for a table of themes
agnoster
aight
ays
barracuda
batman
beloglazov
bira
bobthefish
bongnoster
boxfish
budspencer
cbjohnson
chain
clearance
cmorrell
coffeeandcode
cor
cyan
dangerous
default
dmorrell
doughsay
eclm
edan
eden
emoji-powerline
es
fishbone
fishface
fishy-drupal
fisk
flash
fox
gentoo
gianu
gitstatus
gnuykeaj
godfather
graystatus
harleen
idan
integral
jacaetevha
johanson
kawasaki
krisleech
l
lambda
lavender
lolfish
mars
mish
mokou
mtahmed
nai
nelsonjchen
neolambda
numist
ocean
one
pastfish
perryh
pie
plain
pure
pygmalion
random
randomrussel
red-snapper
redfish
rider
robbyrussell
sashimi
scorphish
shellder
simple-ass-prompt
simplevi
slacker
slavic-cat
solarfish
spacefish
sushi
syl20bnr
taktoa
technopagan
toaster
tomita
trout
tweetjay
uggedal
will
wolf-theme
yimmy
zeit
zephyr
zish



agnoster

agnoster

A fish theme optimized for people who use:

  • Solarized
  • Git
  • Mercurial (requires 'hg prompt')
  • SVN
  • Unicode-compatible fonts and terminals (Use a Powerline patched font, e.g., from here: https://github.com/powerline/fonts)
  • Fish Vi-mode

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

agnoster theme

Characteristics
  • If the previous command failed (✘)
  • If private mode is enabled (🔒)
  • User @ Hostname (if user is not DEFAULT_USER, which can be set in your profile)
  • Git/HG status
  • Subversion status enabled by adding set -g theme_svn_prompt_enabled yes to your config.fish.
  • Branch () or detached head (➦)
  • Current branch / SHA1 in detached head state
  • Dirty working directory (±, color change)
    • By default, git repos will show as dirty if there are untracked files. This can be changed by adding set -g fish_git_prompt_untracked_files no to your config.fish. This value is passed into git status --untracked-files, so any value git supports is valid for this command
  • Current working directory
  • Elevated (root) privileges ()
  • Current virtual environment (Python virtualenv and Nix Shell)
    You will probably want to disable the default virtualenv prompt. Add to your init.fish:
    set -gx VIRTUAL_ENV_DISABLE_PROMPT 1
  • Indicate vi mode.
  • Source control blacklist. To disable source control prompts in certain directories, you can add the following to your init.fish or config.fish: set -g scm_prompt_blacklist "/path/to/blacklist".

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

aight

Aight

A theme for fish that puts most stuff on the right.

Installation

omf update
omf install aight

Features

  • Stuff goes on the right, out of your way.

Contributing

Just fork and make PRs.

License

MIT © Austin Bingham 2017

ays

Ays

Theme imported from oh-my-zsh ys-theme

MIT License
Fish Shell Version


Screenshot

Install

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

omf install ays

barracuda

Barracuda theme (for fish in Termux terminal)

This theme is a fork of oh-my-fish/theme-budspencer, which means it keeps almost all it's awesome features.

Some fancy visual changes has been done taking advantage of Powerline Symbols.

Barracuda is in essence:

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

screenshot

Requirements

  • An up-to-date fish shell version from github or a
    nightly build.
  • Patched Powerline fonts installed. (See how to install here)

Non standard tools:

  • APK Termux:API plug-in It's recommended to download **Termux** and **Termux:API** from [F-Droid](https://f-droid.org) as both apps most have the same PGP signature
termux-api
apt install termux-api
nodejs
apt install nodejs
pv
apt install pv

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.

Languages

This theme can be shown in different languages (three langiages so far): Spanish, English and French

There are two ways to change interface language: one is by using the function termux-language followed by the language identifier, and
the other one, just typing the language name on the prompt.

Supported languages and their identifiers are:

  • sp for spanish
  • en for english
  • fr for french

e.g To set french language:

termux-language fr

Or

french
Colors

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 $barracuda_nocmdhist. Default:

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

Disable:

set -U barracuda_nogreeting

Reenable:

set -e barracuda_nogreeting
Show Node version

To show your current node version, do following in your Fish configs

Enable:

set -g barracuda_alt_environment "node -v"

Disable:

set -U barracuda_alt_environment

Outer prompt segments

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

Left prompt segments

  • Present working directory (on top)
  • Prompt line number
  • Barracuda ASCII logo
  • 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
  • Active Python virtual environment. Requires Virtual Fish

Right prompt segments

  • Shows current interface language

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.

unmark can take an argument to remove a specific bookmark in the bookmark list.
Simply add the number of the bookmark you would like to remove as the argument.

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.

By default the shell will change to the directory of the latest bookmark on a new session.
This can be disabled by adding the following line:

set -U barracuda_no_cd_bookmark

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 barracuda_nobell

Termux Backup

With this function it's possible to perdorm a full backup of system and user's files.

To create a new backup type:

termux-backup -c <or> --create [file_name]

To list existing backups use:

termux-backup -l <or> --list

screenshot

To delete an existing backup:

termux-backup -d <or> --delete

screenshot
To show help:

termux-backup -h <or> --help

Unfortunately this function can only perform backups. Restores have to be decompressed and copied manually.

TODO
  • Add option to restore backups
  • Add support for more languages

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.

Oh My Fish MIT License

bobthefish

Installation

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

omf install bobthefish

You will need a Powerline-patched font for this to work, unless you enable the compatibility fallback option:

set -g theme_powerline_fonts no

I recommend picking one of these. For more advanced awesome, install a nerd fonts patched font, and enable nerd fonts support:

set -g theme_nerd_fonts yes

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
  • Status flags:
    • Previous command failed (!)
    • Private mode (🔒 or )
    • You currently have superpowers ($)
    • Background jobs (%)
  • Current vi mode
  • User@Host (unless you're the default user)
  • Current RVM, rbenv or chruby (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
  • Current NVM/FNM version (Nodejs) (inactive by default; see configurations in the next paragraph)
  • 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_dirty no
set -g theme_display_git_untracked no
set -g theme_display_git_ahead_verbose yes
set -g theme_display_git_dirty_verbose yes
set -g theme_display_git_stashed_verbose yes
set -g theme_display_git_default_branch yes
set -g theme_git_default_branches master main
set -g theme_git_worktree_support yes
set -g theme_use_abbreviated_branch_name yes
set -g theme_display_vagrant yes
set -g theme_display_docker_machine no
set -g theme_display_k8s_context yes
set -g theme_display_hg yes
set -g theme_display_virtualenv no
set -g theme_display_nix no
set -g theme_display_ruby no
set -g theme_display_node yes
set -g theme_display_user ssh
set -g theme_display_hostname ssh
set -g theme_display_vi no
set -g theme_display_date no
set -g theme_display_cmd_duration yes
set -g theme_title_display_process yes
set -g theme_title_display_path no
set -g theme_title_display_user yes
set -g theme_title_use_abbreviated_path no
set -g theme_date_format "+%a %H:%M"
set -g theme_date_timezone America/Los_Angeles
set -g theme_avoid_ambiguous_glyphs yes
set -g theme_powerline_fonts no
set -g theme_nerd_fonts yes
set -g theme_show_exit_status yes
set -g theme_display_jobs_verbose yes
set -g default_user your_normal_user
set -g theme_color_scheme dark
set -g fish_prompt_pwd_dir_length 0
set -g theme_project_dir_length 1
set -g theme_newline_cursor yes
set -g theme_newline_prompt '$ '

Git options

  • theme_display_git_default_branch. By default theme will hide/collapse the branch name in your prompt when you are using a Git default branch i.e. historically master and often main now. Set to yes to stop these branches from being hidden/collapsed.
  • theme_git_default_branches. The big cloud repos (GitHub, Bitbucket, GitLab et al.) are moving away from using master as the default branch name, and allow you to choose your own. As of version 2.28, Git also supports custom default branch names via the init.defaultBranch config option. If our defaults of master main don't suit you, you can add/remove names in thist list i.e. main trunk. This ensures correct hiding/collapsing behaviour with custom default branch names (unless option above is activated).

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_display_user. Set to yes to show the current user in the tab title (unless you're the default user).
  • 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_node. If set to yes, will display current NVM or FNM node version.
  • theme_display_vagrant. This feature is disabled by default, use yes to display Vagrant status in your prompt. Please note that only the VirtualBox and VMWare providers are supported.
  • theme_display_vi. By default the vi mode indicator will be shown if vi or hybrid key bindings are enabled. Use no to hide the indicator, or yes to show the indicator.
  • theme_display_k8s_context. This feature is disabled by default. Use yes to show the current kubernetes context (> kubectl config current-context).
  • theme_display_k8s_namespace. This feature is disabled by default. Use yes to show the current kubernetes namespace.
  • theme_display_aws_vault_profile. This feature is disabled by default. Use yes to show the currently executing AWS Vault profile.
  • theme_display_user. If set to yes, display username always, if set to ssh, only when an SSH-Session is detected, if set to no, never.
  • theme_display_hostname. Same behaviour as theme_display_user.
  • theme_display_sudo_user. If set to yes, displays the sudo-username in a root shell. For example, when calling sudo -s and having this option set to yes, the username of the user, who called sudo -s, will be displayed.
  • theme_show_exit_status. Set this option to yes to have the prompt show the last exit code if it was non_zero instead of just the exclamation mark.
  • theme_display_jobs_verbose. If set to yes this option displays the number of currently running background jobs next to the percent sign.
  • theme_git_worktree_support. If you do any git worktree shenanigans, setting this to yes will fix incorrect project-relative path display. If you don't do any git worktree shenanigans, leave it disabled. It's faster this way :)
  • theme_use_abbreviated_branch_name. Set to yes to truncate git branch names in the prompt.
  • fish_prompt_pwd_dir_length. bobthefish respects the Fish $fish_prompt_pwd_dir_length setting to abbreviate the prompt path. Set to 0 to show the full path, 1 (default) to show only the first character of each parent directory name, or any other number to show up to that many characters.
  • theme_project_dir_length. The same as $fish_prompt_pwd_dir_length, but for the path relative to the current project root. Defaults to 0; set to any other number to show an abbreviated path.
  • theme_newline_cursor. Use yes to have cursor start on a new line. By default the prompt is only one line. When working with long directories it may be preferrend to have cursor on the next line. Setting this to clean instead of yes suppresses the caret on the new line.
  • theme_newline_prompt. Use a custom prompt with newline cursor. By default this is the chevron right glyph or > when powerline fonts are disabled.

Color scheme options

dark light
solarized solarized-light
base16 base16-light
zenburn terminal-dark
nord

You can use the function bobthefish_display_colors to preview the prompts in
any color scheme.

Set theme_color_scheme in a terminal session or in your fish startup files to
one of the following options to change the prompt colors.

  • dark. The default bobthefish theme.
  • light. A lighter version of the default theme.
  • solarized (or solarized-dark), solarized-light. Dark and light variants
    of Solarized.
  • base16 (or base16-dark), base16-light. Dark and light variants of the
    default Base16 theme.
  • zenburn. An adaptation of Zenburn.
  • gruvbox. An adaptation of gruvbox.
  • dracula. An adaptation of dracula.
  • nord. An adaptation of nord.

Some of these may not look right if your terminal does not support 24 bit color,
in which case you can try one of the terminal schemes (below). However, if
you're using Solarized, Base16 (default), or Zenburn in your terminal and the
terminal does support 24 bit color, the built in schemes will look nicer.

There are several scheme that use whichever colors you currently have loaded
into your terminal. The advantage of using the schemes that fall through to the
terminal colors is that they automatically adapt to something acceptable
whenever you change the 16 colors in your terminal profile.

  • terminal (or terminal-dark or terminal-dark-black)
  • terminal-dark-white. Same as terminal, but use white as the foreground
    color on top of colored segments (in case your colors are very dark).
  • terminal-light (or terminal-light-white)
  • terminal-light-black. Same as terminal-light, but use black as the
    foreground color on top of colored segments (in case your colors are very
    bright).

For some terminal themes, like dark base16 themes, the path segments in the
prompt will be indistinguishable from the background. In those cases, try one of
the following variations; they are identical to the terminal schemes except
for using bright black (brgrey) and dull white (grey) in the place of black
and bright white.

  • terminal2 (or terminal2-dark or terminal2-dark-black)
  • terminal2-dark-white
  • terminal2-light (or terminal2-light-white)
  • terminal2-light-black

Finally, you can specify your very own color scheme by setting
theme_color_scheme to user. In that case, you also need to define some
variables to set the colors of the prompt. See the "Colors" section of
fish_prompt.fish for details.

VCS options

  • set -g theme_vcs_ignore_paths /some/path /some/other/path{foo,bar}. Ignore project paths for Git or Mercurial. Supports glob patterns.
Overrides

You can disable the theme default greeting, vi mode prompt, right prompt, or title entirely — or override with your own — by adding custom functions to ~/.config/fish/functions:

  • ~/.config/fish/functions/fish_greeting.fish
  • ~/.config/fish/functions/fish_mode_prompt.fish
  • ~/.config/fish/functions/fish_right_prompt.fish
  • ~/.config/fish/functions/fish_title.fish

To disable them completely, use an empty function:

function fish_right_prompt; end

… Or copy one from your favorite theme, make up something of your own, or copy/paste a bobthefish default function and modify it to your taste!

function fish_greeting
  set_color $fish_color_autosuggestion
  echo "I'm completely operational, and all my circuits are functioning perfectly."
  set_color normal
end

bongnoster

bongnoster

A fish theme optimized for people who use:

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

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

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.

Adapted from https://github.com/oh-my-fish/theme-agnoster.

boxfish

boxfish

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install boxfish

Features

  • Minimalist ASCII-only prompt
  • The most compact vi mode support possible (only 1 character!)
  • Error indicator on return code != 0

Screenshot

License

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

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.

Install advanced sed and expr versions:

$ brew install coreutils gnu-sed

Add this to your ~/.config/fish/config.fish:

if test (uname -s) = "Darwin"
  set -gx PATH /usr/local/opt/coreutils/libexec/gnubin $PATH
  set -gx PATH /usr/local/opt/gnu-sed/libexec/gnubin $PATH
end

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
Show Node version

To show your current node version, do following in your Fish configs

set -g budspencer_alt_environment "node -v"

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.

Disable the acoustic bell

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

set -U budspencer_nobell

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.

unmark can take an argument to remove a specific bookmark in the bookmark list.
Simply add the number of the bookmark you would like to remove as the argument.

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.

By default the shell will change to the directory of the latest bookmark on a new session.
This can be disabled by adding the following line:

set -U budspencer_no_cd_bookmark

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>.

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

  • Customizable prompt elements.
  • Default prompt elements such as 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.

Links are entirely customizable, and it is easy to create and customize your own links.

Chain comes with six default links (in order from left to right):

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

Making your own links is as simple as writing a small function. A link is rendered using a link function, which is just a Fish function that outputs two lines: the first line is the color of the link; the second line is the link text. For example, if we wanted a yellow link that showed the current time, we could write a function like this:

function time_link
  echo yellow
  date '+%H:%M:%S'
end

Now we can add it to the end of our prompt:

chain.push time_link

Your links are saved automatically, so it is not necessary to add chain.push commands to your configuration. Running the command once is enough.

Commands

Chain offers several commands you can use to customize and manipulate your prompt. Here is some brief documentation on what these functions do:

chain.compile

To improve performance, the prompt function is actually generated from the configuration dynamically, or "compiled". Normally this function is called for you when needed.

chain.defaults

Resets the prompt to the default set of links.

chain.inspect

A neat-looking debug tool that prints out your chain-related configuration, gives a preview of all your enabled links, and dumps the compiled prompt function.

chain.multiline

Toggle multi-line prompt display on and off. A multi-line prompt can make more room for typing if you have a lot of links in your prompt chain.

chain.pop

Remove the last link in the prompt chain.

chain.push <function>

Add a link function to the end of the prompt chain.

chain.shift

Remove the first link in the prompt chain.

chain.unshift <function>

Add a link function to the beginning of the prompt chain.

Customization

Chain uses several global variables to customize the prompt appearance. The most important one is $chain_links: a list of function names that print out a single link in the prompt.

The glyphs used in the default links can be customized using global variables. Here is a list of glyph-related variables:

  • $chain_prompt_glyph: The arrow character at the end of the chain, right before the text input.
  • $chain_git_branch_glyph: Glyph to indicate the Git branch.
  • $chain_git_dirty_glyph: Glyph to indicate that the working branch has uncommitted changes.
  • $chain_su_glyph: Glyph to indicate that you have superuser privileges.
  • $chain_link_open_glyph: Glyph before each individual chain link (default <).
  • $chain_link_close_glyph: Glyph after each individual chain link (default >).

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 list 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

cyan

cyan

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework
Join the chat at https://gitter.im/oh-my-fish/theme-qing

IMG

Install

$ omf install cyan

This theme is based Michele Bologna's theme you can see @Michele Bologna for more informations.
and the fish_greeting.fish forked from @bramblex.
Thanks!

Features

  • Lorem ipsum dolor sit amet.
  • Consectetur adipisicing elit.

The Prompt

  • User@Hostname
  • Current project's repo branch(master) and Head short hash(d0dfd9b)
  • Current project's status, via colors and flags:
    • new file
    • modified M
    • deleted
    • reanme
    • unmerge (TODO)
    • untracked
    • working directory clean
    • Note that not all of these have been implemented yet _(:з」∠)_
  • Current project's branch status
    • equal to upstream =
    • ahead of upstream >
    • behind upstream <
    • diverged from upstream <>

License

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

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

dmorrell

DMorrell Fish Theme

This is a theme for
fish
that focuses on staying out of the way while giving helpful information,
in particular when working with Git.

2018-07-22 00 48 23 screenshot

Features

  • Minimal base prompt.
  • Indicates if previous command failed.
  • Shows compact Git status with
    • the number of added, modified, and removed files, as well as the number of stashes;
    • the type and name of the current revision; and
    • indication whether a merge or rebase is happening.
  • Gives visual indication when you're logged in via SSH, or logged in as anyone
    but the default user. Shows a bright red "!" if you are 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.

Installation

Install using
Oh My Fish:

omf install https://github.com/reitzig/theme-dmorrell.git 
omf theme dmorrell

Set the list of default users by adding

set -g default_user "me" "buddy"

to your .config/fish/config.fish.
Of course, this only makes sense if you use the same config across multiple accounts.
You can also add the same line to your own fork of the theme.

Acknowledgements

  • Derived from Chris Morrell's
    cmorrell.
    Hence the name, because d comes after c.
  • Took some hints from Stefan Maric's
    bigfish,
    in particular about smart glyph choices for representing Git status.
  • Grabbed some Git-related code from
    git_util.

doughsay

Moved Permanently.

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.

eden

eden

A theme for fishshell.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

Using Oh My Fish:

$ omf install eden

### to uninstall :/
$ omf uninstall eden

Using Fisherman:

$ fisher https://github.com/amio/fish-theme-eden

### to uninstall :/
$ fisher rm theme-eden

Features

  • Last command's timestamp & exit status on right.
  • eden_toggle_path display long or short pwd.
  • eden_toggle_host show or hide host & user.
  • eden_prompt_char custom prompt char.
  • eden_toggle_ssh_tag show or hide -SSH- tag.
  • A blue (red for root user) -SSH- tag on ssh connection.

Screenshot

Theme Eden Screenshot

Font: INCONSOLATA

License

[MIT][mit] © Amio

emoji-powerline

emoji-powerline

Based on Agnoster, extended with emojis representing home and root directories. Paths in the pwd prompt and git branch are split by "/" and joined as powerline segments for a clean aesthetic. Input is broken onto a new line for more consistent positioning.

Colours and emojis used are easily configurable at the top of ./fish_prompt.fish

Get the full path in your prompt by running:

set -U fish_prompt_pwd_dir_length 0
Preview

emoji-powerline theme

Characteristics
  • If you're under your home directory, "~" is replaced with "🏠"
  • If you're outside your home directory, the root-level "/" is replaced with "🌏"
  • pwd_prompt is split by "/", each section is turned into a Powerline segment
  • Git branch is split by "/", each section is turned into a Powerline segment
  • 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)
  • Clean 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.

Forked from https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md#agnoster-1

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

Requirements

  • Latest fish version with a builtin string function (above 2.2.0, so please get the latest version from HEAD)
  • Powerline-patched font

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 (iTerm and Terminal) is out of focus
  • Limits path to two last folders for better visibility, with $HOME directory abbreviated to ~

Screenshot

Git folder

Normal folder (no Git)

Normal read-only folder (no Git)

License

[MIT][mit] © eugenesvk

fishbone

fishbone

A clean theme for fish shell managed by Oh my fish



Example

Installation

omf update  # Just if your omf installation is old. Avoids missing the package
omf install fishbone

omf (Oh my fish) is a package manager for fish shell. Just like pip is for Python and gem is for Ruby

Features

  • Only displays an abbreviatted path on left side;
  • Displays the current time at right;
  • On git repositories shows its current branch and modifications on right side;
  • For Python users, if there is an active virtualenv, it will be displayed at right between brackets;
  • Colon at left side becames red if last command fails;
  • At start up, shows user name, date, uptime, informations about OS, CPU, memory and network;

Project structure

We have two branches:

  • master: Where the necessary files for theme is;
  • animation: There is two adicional files (animation.cxf, fishbone.gif) that is used for theme example at README.md file.

The theme files are separated as follows:

  • fish_prompt.fish: Has the function to print the prompt line;
  • fish_right_prompt.fish: Prints the right side of the shell prompt;
  • fish_greeting.fish: Prints the welcome message at shell session start up;

Contributing

We are not stringent with contributions.
Just fork the project, do some modifications and send us a Pull request : )
Bugs and improvements can be reported/suggested as issues.

License

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

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

Slack Room

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.

  • Colors inspired by The Flash.

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

fox

fox

cloned from oh-my-zsh.

fox theme

gentoo

Gentoo fish theme

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install gentoo

Features

Unofficial Gentoo fish prompt theme which tries to follow Gentoo default bash $PS1.

  • Left-hand side:

    • user@host for regular user, green color
    • host for root user, red color
    • full cwd for regular user, short cwd for root, home dir is replaced by ~
    • EXTRA: git branch with state info (if applicable)
  • Right-hand side:

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

Screenshot

Credits:

License

MIT ©

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.

graystatus

graystatus

Prompt theme for fish shell.

  • modest prompt
  • deference to contents

Screen Shot

screenshot

Install

If you use fisher :

fisher add usami-k/graystatus

If you use oh-my-fish :

omf install graystatus

Configuration

To configure, you can use environment variables.

  • GRAYSTATUS_COLOR_PROMPT : prompt color (default: brblack)
  • GRAYSTATUS_COLOR_STATUS : exit status color (default: red)

The color value is passed to set_color command.

License

Copyright 2017 USAMI Kosuke

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

harleen

Harleen

A Oh My Fish theme inspired by Harleen Quinzel.

MIT License
Fish Shell Version
Oh My Fish Framework

Install

$ omf install harleen

Please notice the theme requires git to work efficiently.

Description

Harleen is a simple yet useful Oh My Fish theme highly inspired by the batman theme and the sushi theme, but also from the fish default theme.

It is meant to remain simple and bring some useful information when browsing a git repository.

Huge thanks as well to erikachristine for her beautiful color palette which I used for that theme.

Also a huge thanks to @sagebind for his really nice and helpful comments 👍

Features

  • Minimal prompt,
  • Displays status of last command as color,
  • Displays useful information when browsing a Git repository,
  • Displays number of ahead/behind commits between current and remote branch,
  • Displays time on the right.

Screenshot

screenshot

License

[MIT][mit] © [Antoine Neveux][author] et al

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>

johanson

johanson

A two-line theme for Oh My Fish with Python virtual environment and fabfile support. Loosely based on cbjohnson.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install johanson

Screenshot

Omf johanson theme screenshot

Omf johanson theme screenshot

Omf johanson theme screenshot

License

[MIT][mit] © [Rasmus Johanson][author] et al

kawasaki

kawasaki

kawasaki is a customizable fish theme that emphasizes a simple and useful prompt without useless cluttter.

Oh My Fish
license

kawasaki

Example customizations
Minimal Midnight Joker
midnight joker

Installation

Requirements
  • Fish shell - a smart and user-friendly command line
    shell for OS X, Linux, and the rest of the family
  • Oh My Fish - The Fishshell Framework

Once Oh My Fish is installed:

omf install kawasaki

This theme was inspired by bira.

Notes

To use kawasaki's virtualenv prompt instead of the default virtualenv prompt append set -x VIRTUAL_ENV_DISABLE_PROMPT 1 to your init.fish

Features

  • Completely customizable.
  • Display status of the working tree for Git projects.
  • Read/write indicator of the current working directory.
  • Background jobs indicator.
  • Virtualenv prompt indicator.

Customizing

Override defaults

You can override the default display settings by specifying any of the following settings in your init.fish:

#### Enable the time to be displayed.
set -g theme_display_time yes

#### Disable playing the user's current group.
set -g theme_display_group no

### Display the system hostname.
set -g theme_display_hostname no

#### Disable Git-awareness.
set -g theme_display_git no

#### Don't disable jobs indicator.
set -g theme_display_jobs no

#### Always display the jobs indicator, even if there are no jobs.
set -g theme_display_jobs_always yes

#### Hide the current directory read/write indicator.
set -g theme_display_rw no

#### Don't display the VirtualEnv prompt.
set -g theme_display_virtualenv no

#### Display the battery
set -g theme_display_batt no
set -g theme_display_batt_icon no
Look and feel

Nearly every aspect of kawasaki can be customized. The following can be set to adjust the look and feel of kawasaki:

set -g theme_color_error                           red
set -g theme_color_superuser                       red
set -g theme_color_user                            white
set -g theme_color_group                           666666
set -g theme_color_host                            brgreen
set -g theme_color_separator                       brblack
set -g theme_color_bracket                         brblue
set -g theme_color_normal                          normal
set -g theme_color_time                            666666
set -g theme_color_path                            brwhite
set -g theme_color_prompt                          white
set -g theme_color_virtualenv                      bryellow
set -g theme_color_status_prefix                   brblue
set -g theme_color_status_jobs                     brgreen
set -g theme_color_status_rw                       brwhite
set -g theme_color_batt_icon                       white
set -g theme_color_batt_charging                   brgreen
set -g theme_color_batt_discharging                red
set -g theme_color_batt_0                          red
set -g theme_color_batt_25                         red
set -g theme_color_batt_50                         bryellow
set -g theme_color_batt_75                         bryellow
set -g theme_color_batt_100                        brgreen

set -g theme_prompt_char_normal                    '$'
set -g theme_prompt_char_superuser                 '#'
set -g theme_prompt_char                           "$theme_prompt_char_normal"

set -g theme_prompt_superuser_glyph                \u2605
set -g theme_prompt_userhost_separator              '@'
set -g theme_prompt_group_separator                 ':'

set -g theme_prompt_segment_separator_char         ' '
set -g theme_prompt_segment_separator_color        normal

set -g theme_prompt_status_jobs_char               '%'
set -g theme_prompt_status_rw_char                 '.'
set -g theme_prompt_status_separator_char          '/'

set -g theme_prompt_virtualenv_char_begin          '('
set -g theme_prompt_virtualenv_char_end            ')'
set -g theme_prompt_virtualenv_color_char_begin    normal
set -g theme_prompt_virtualenv_color_char_end      normal

set -g theme_prompt_batt_charging_char             '↑'
set -g theme_prompt_batt_discharging_char          '↓'
set -g theme_prompt_batt_0                         ''
set -g theme_prompt_batt_25                        ''
set -g theme_prompt_batt_50                        ''
set -g theme_prompt_batt_75                        ''
set -g theme_prompt_batt_100                       ''

set -g theme_display_time_format                   '+%I:%M'

set -g __fish_git_prompt_color_merging             red
set -g __fish_git_prompt_color_branch              brblue
set -g __fish_git_prompt_showcolorhints            yes
set -g __fish_git_prompt_show_informative_status   yes
set -g __fish_git_prompt_char_stateseparator       ' '

set -g __fish_git_prompt_char_branch_begin         ''
set -g __fish_git_prompt_char_branch_end           ''
set -g __fish_git_prompt_color_branch_begin        bryellow
set -g __fish_git_prompt_color_branch_end          bryellow

####### Examples

Minimal midnight

midnight

set -gx fish_prompt_pwd_dir_length 0
set -g theme_display_group no
set -g theme_display_hostname no
set -g theme_color_user aa55ff
set -g theme_display_rw no

Joker

joker

set theme_primary                                   1eb980
set theme_secondary                                 ffcf44
set theme_primary_variant                           045d56
set theme_secondary_variant                         ff6859
set theme_hilight                                   b15dff

set -g theme_color_user                             $theme_hilight
set -g theme_color_host                             $theme_primary_variant
set -g theme_color_separator                        brblack
set -g theme_color_normal                           normal
set -g theme_color_time                             $theme_secondary_variant
set -g theme_color_path                             $theme_primary
set -g theme_color_prompt                           $theme_secondary_variant
set -g theme_color_virtualenv                       $theme_secondary
set -g theme_color_status_prefix                    $theme_hilight
set -g theme_color_status_jobs                      $theme_primary
set -g theme_color_status_rw                        $theme_primary
set -g theme_display_group                          no
set -g theme_prompt_segment_separator_color         $theme_primary
set -g theme_prompt_userhost_separator              '.'
set -g __fish_git_prompt_char_branch_begin          '['
set -g __fish_git_prompt_char_branch_end            ']'
set -g __fish_git_prompt_color_branch_begin         brblack
set -g __fish_git_prompt_color_branch_end           brblack
set -g __fish_git_prompt_color_branch               $theme_secondary

set -gx fish_prompt_pwd_dir_length                  1
set -g theme_display_jobs_always                    yes

License

kawasaki is released under The MIT License (MIT)

Copyright (c) 2016 Beau Hastings

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

######## Added VirtualEnv Support
preview

Install
[Fisherman]
fisher i lambda

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

omf install lambda

lavender

lavender

A elegant theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install lavender

Features

Based on clearance theme. Display the following bits on the left:

Screenshot

License

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

lolfish

lolfish

such rainbow, wow.

lolfish
lolfish

Easy Install

Using oh-my-fish:

omf install lolfish

Less Easy Install

Download and source the prompt file

curl -L https://github.com/er0/lolfish/raw/master/lol.fish -o $HOME/.config/fish/functions/lol.fish 

Features

  • Only the best rainbow xterm colors!
  • git branch/status info
  • Return value from the last command
  • Right prompt displays number of backgrounded jobs, tmux sessions, and the time.

mars

mars

Based on the eclm theme (which was based on the robbyrussell theme).

mars 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

mish

Moved Permanently.

mokou

mokou

possibly the dumbest theme for oh-my-fish

how it's structured: {directory name} > {prompt}

$ omf install mokou

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

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

neolambda

NeoLambda

The unofficial fork of the omf lambda theme

MIT License
Fish Shell Version

Featurecast 🎥

asciicast

Gif

An animated GIF deoming some of the features provided by this theme


To avoid double printing of the virtualenv name in prompt add the below to config.fish

set -gx VIRTUAL_ENV_DISABLE_PROMPT 1

Install

Oh-My-Fish
omf install neolambda

TODOs

  • experiment with creating an animated svg to replace / complement the animaged gif
    • cat myrecrod.cast | svg-term --out myrecord.svg --window

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.

one

One v2

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install one
Note for macOS users

If you're getting a expr: syntax error try expr from coreutils package.

If you're getting an Array index out of bounds error run brew install --with-default-names gnu-sed.

Features

  • Git ahead/behind indicator with number of commits
  • Git status indicators
  • Git branch info
  • Abreviated working directory
  • Node.js version indicator
  • SSH user/hostname information
  • Prompt sign turns red if previous command failed
  • Prompt sign turns double and yellow in superuser mode

Screenshot

Forked from Toaster

Aesthetic stolen from Pure

License

MIT © Max Rovensky

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

pie

🥧 πie

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


A minimalist developer-friendly shell prompt for fish shell

Install

$ omf install pie
$ omf theme pie

Features

  • 🎨 Native colors (changes with your preferences)
  • Human readable execution time of last command
  • 📂 Shortened cwd
  • Last status success
  • 🔁 Git status
    • Current branch
    • Untracked files ?
    • Stashed changes $
    • Dirty working directory
    • Staged files
    • Upstream status 🠋, 🠉

Screenshot

License

[MIT][mit] © [Jaroslav Šmolík][author] et al

plain

Slack Room

plain

Colorful git-aware plain text prompt

Features

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

Install

With [Fisherman]

fisher i plain

pure

Psst! Migrating from v1.x to v2.x? We got you. Check our migration guide and happy upgrading

Pretty, minimal and fast Fish 🐟 prompt, ported from zsh.

Pure with dark colorscheme Pure with light colorscheme

🚀 Install

⚠️ requirements: fish ≥3.x

Fisher
fisher install rafaelrinaldi/pure
Manually

Via cURL:

### Download the installer to `/tmp`
curl git.io/pure-fish --output /tmp/pure_installer.fish --location --silent
### Source and trigger the installer
source /tmp/pure_installer.fish; and install_pure

Features

Fully customizable (colors, symbols and features):

  • Excellent prompt character :
    • Change to red when previous command has failed ;
    • Start prompt with current working directory 🏳️ ;
    • Compact-mode (single-line prompt) 🏳️ ;
  • Display current directory tail ;
  • check for new release on start 🏳️ ;
  • Display username and hostname when in an SSH session ;
  • Display command duration when longer than 5 seconds ;
  • Display Python virtualenv when activated ;
  • Display VI mode and custom symbol for non-insert mode 🏳️ ;
  • Show system time 🏳️ ;
  • Show number of running jobs 🏳️ ;
  • Prefix when root 🏳️ ;
  • Display git branch name 🏳️ ;
    • Display * when git repository is dirty ;
    • Display when git repository is stashed ;
    • Display when branch is ahead (commits to push) ;
    • Display when branch is behind (commits to pull) ;
  • Update terminal title with current folder and command ;

🖌️ Configuration

You can tweak pure behavior and color by changing universal variables either directly in the terminal, e.g.:

set --universal pure_show_system_time true
set --universal pure_color_system_time pure_color_mute

or changing the defaults in your config.fish, e.g.:

_pure_set_default pure_show_system_time false
_pure_set_default pure_color_system_time grey --reverse
Prompt Symbol
Option Default Description
pure_symbol_git_dirty * Repository is Dirty (uncommitted/untracked changes).
pure_symbol_git_stash Repository git stash status.
pure_symbol_git_unpulled_commits Branch is behind upstream (commits to pull).
pure_symbol_git_unpushed_commits Branch is ahead upstream (commits to push).
pure_symbol_prefix_root_prompt # Prefix prompt when logged in as root.
pure_symbol_prompt Prompt symbol.
pure_symbol_reverse_prompt VI non-insert mode symbol.
pure_symbol_title_bar_separator - Separator in terminal's windows title.

Need safer git symbols?

🔌 Features' Flags
Option Default Description
pure_begin_prompt_with_current_directory true true: pwd git, SSH, duration.
false: SSH pwd git, duration.
pure_check_for_new_release false true: check repo for new release (on every shell start)
pure_enable_git true Show info about Git repository.
pure_enable_single_line_prompt false true: Compact prompt as a single line
pure_reverse_prompt_symbol_in_vimode true true: indicate a non-insert mode.
false: indicate vi mode with [I], [N], [V].
pure_separate_prompt_on_error false Show last command exit code as a separate character.
pure_show_jobs false Show Number of running jobs
pure_show_prefix_root_prompt false true: shows prompt prefix when logged in as root.
pure_show_subsecond_command_duration false Show subsecond (ex. 1.5s) in command duration.
pure_show_system_time false true: shows system time before the prompt symbol (as %H:%M:%S).
pure_threshold_command_duration 5 Show command duration when above this value (seconds).
🎨 Colours

See set_color documentation for full possibilities.

⚠️ The absence of $ sign is expected in pure_ named colours.

Base Color Inherited by Default
pure_color_danger pure_color_prompt_on_error red
pure_color_dark black
pure_color_info pure_color_git_unpulled_commits
pure_color_git_unpushed_commits
cyan
pure_color_light pure_color_ssh_user_root white
pure_color_mute pure_color_git_branch
pure_color_git_dirty
pure_color_git_stash
pure_color_ssh_hostname
pure_color_ssh_separator
pure_color_ssh_user_normal
pure_color_virtualenv
brblack
pure_color_normal pure_color_jobs normal
pure_color_primary pure_color_current_directory blue
pure_color_success pure_color_prompt_on_success magenta
pure_color_warning pure_color_command_duration yellow

👍 Contribute

requirements: docker (isolate from your environment)

Specify the FISH_VERSION you want, and the CMD executed by the container:

make build-pure-on FISH_VERSION=3.1.2
make dev-pure-on FISH_VERSION=3.1.2 CMD="fishtape tests/*.test.fish"

👨‍💻 Maintainer

👏 Thanks

🏛️ License

MIT

pygmalion

pygmalion theme

A minimal theme forked from the cbjohnson theme

Based on the zsh theme pygmalion

screenshot

random

random

A 'theme' for Oh My Fish that loads a random theme.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install random

License

[MIT][mit] © [Tycho Grouwstra][author] et al

randomrussel

randomrussell

A colorful robbyrussel clone.

randomrussell theme
randomrussel theme

Characteristics
  • Displays git information in the command prompt when available.
  • If the last command was failed, the indicator would be a red cross, otherwise it's a colored dollar sign.
Note

You will need powerline or nerd font to display unicode characters correctly.

You can download "D2Coding" powerline+nerdfont patched font here

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

redfish

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework

Install

$ omf install redfish

Features

  • Current Directory shown in prompt.
  • Full path shown in right prompt.
  • Git branch and status shown.
  • Show exit status in right prompt.
  • Show current time in right prompt.
  • Set title to current prompt.
  • More!

Screenshot

Image in which I meant to exclude -rf to show the exit code of a failed command

Author

redfish © [redxtech][author], Released under the MIT License.

rider

rider

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install rider

Features

  • Current username
  • Shortened current working directory
  • Last command status code indicator (green arrow on success, red on failure)
  • Current git branch (red on master, yellow on develop, green otherwise)
  • Execution time of the previous command on the right prompt

Screenshot

License

[MIT][mit] © [Ron Rider][author] et al

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

sashimi

Sashimi

Releases
MIT License

A minimal fish shell prompt made of raw fish.

Sashimi uses your prompt real estate as low as possible. It focuses on only required information. Along with being minimalist, the error codes are shown to user so that you can start to debug from a better point. See the features list for more detailed information.

screenshot

Features

  • Compatible with fish 3.0+
  • Sleek
    • Displays only the parent directory instead of the entire working directory
  • Git Support
    • Shows clean/dirty status
    • Shows branch ahead/behind information
    • Discourages working on master branch
  • Informative When Required
    • Shows error exit status in red
Installation

You can install sashimi by cloning this repository and linking the fish_prompt.fish file to your ~/.config/fish/functions directory or any directory in your fish functions path.

git clone https://github.com/isacikgoz/sashimi
cd sashimi
ln -s fish_prompt.fish ~/.config/fish/functions/fish_prompt.fish

If you are using a package manager, you have the following options:

  • Using Fisher:
    fisher add isacikgoz/sashimi
    
  • Or, if you prefer Oh My Fish!:
    omf install sashimi
    

Credits

This prompt was inspired by other promps such as:

License

MIT

scorphish

Scorphish

Compact. Sufficient.

scorphish

Left prompt

Abbreviated path, Ruby version and gemset, Python version and virtualenv, Rust
version, NodeJS version, Git information and last command execution time.

Configuration:

The following options can be added to ~/.config/fish/conf.d/omf.fish to change
the appearance and behavior of left prompt.

  • To display current Rust version:
set -g theme_display_rust yes
  • To display current Node version:
set -g theme_display_node yes

Note: Node version may be lazy loaded depending on which nvm plugin you're
using

  • To display current working directory on a second line:
set -g theme_display_pwd_on_second_line yes
  • To display Git information on the first line:
set -g theme_display_git_on_first_line yes
  • To omit only dirty status of current local Git repository and have
    a faster prompt:
set -g theme_display_git_dirty no
  • To omit information of current Git repository altogether:
set -g theme_display_git no

  • To omit current Ruby version and gemset:
set -g theme_display_ruby no

  • To omit current Python version and virtualenv:
set -g theme_display_virtualenv no

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

  1. No solarized ― xterm256 colors are beautiful enough
  2. zsh + fish support
  3. Speed ― Carefully optimized for slow environments like MSYS2

screenshot image of shellder

Installation

You can install shellder via various plugin managers.

Zsh, [zinit]
### ~/.zshrc
zinit light simnalamburt/shellder
Fish, [chips]
### ~/.config/chips/plugin.yaml
github:
- simnalamburt/shellder
Fish, oh-my-fish
### ~/.config/chips/plugin.yaml
github:
- simnalamburt/shellder

 

Configuration

You can turn off Fish-like path shrinking by adding the following to your ~/.zshrc:

### ~/.zshrc
export SHELLDER_KEEP_PATH=1

 

Fonts

You'll need a powerline patched font. If you don't have one, download one or
patch some fonts on you own.

 


shellder is primarily distributed under the terms of both the MIT license
and the Apache License (Version 2.0). See [COPYRIGHT] for details.

simple-ass-prompt

simple-ass-prompt

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ 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
  • Support Rust active toolchain
  • The last command failed is displayed with in red

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

slacker

slacker

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install slacker

Features

  • Dead simple with git status and date & time!

Screenshot

License

[MIT][mit] © Maqbool ur Rahim Khan

slavic-cat

Slavic Cat

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

Oh My Fish
license

Slavic cat in action

Instalation

Requirements
  • Fish shell - a smart and user-friendly command line
    shell for OS X, Linux, and the rest of the family
  • Oh My Fish - The Fishshell Framework

Once Oh My Fish is installed:

omf install slavic-cat

forked from Toaster

Features

  • Minimal Look & Prompt
  • Current short version pwd
  • Display branch for Git projects
  • Git project dirty status indicator meow (R,C,A,U,M,?) meow
  • Fish shell vi mode indicator
  • Next line prompt
  • Two unicodes included!

solarfish

theme-solarfish

A simple, git-aware, two-line theme for Oh My Fish. Based off of simple-ass-prompt and optimized for solarized.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

$ omf install theme-solarfish

Features

  • Easy to read prompt, based directly on the bash default prompt
  • Long, short, and current folder directory options
  • Timestamp option
  • Git repository status:
    • ahead "↑"
    • behind "↓"
    • diverged "⥄ "
    • dirty "*"
  • Previous command status
  • Special greeting prompt if cowsay is installed!

Screenshot

Configuration

Add any of the following lines to
~/.config/fish/config.fish

### Displays the timestamp in the prompt
set -g theme_show_time yes

### Uses a short directory path name
set -g theme_short_path yes

### Displays only the current folder name
set -g theme_current_folder_path yes

License

[MIT][mit] © thesilican

spacefish

Focus has shifted to the development of Starship, the successor to Spacefish. If you are interested in contributing or using it, come take a look!

spacefish fish shell theme

Spacefish 🚀🐟

Fish Shell prompt for Astronauts.

Mac OSX & Linux CI Status Fish Version GitHub License

Built with ❤︎ by Matan Kushner and contributors
A port of Spaceship ZSH by Denys Dovhan

Spacefish is a minimalistic, powerful and extremely customizable Fish Shell prompt. It combines everything you may need for convenient work, without unnecessary complications, like a real spacefish.

Spaceship with Hyper and One Dark

Vist Troubleshooting for instructions to recreate this terminal setup.

Features

  • Clever hostname and username displaying.
  • Indicator if user is root.
  • Prompt character turns red if the last command exits with non-zero code.
  • Current Git branch and rich repo status:
    • ? — untracked changes;
    • + — uncommitted changes in the index;
    • ! — unstaged changes;
    • » — renamed files;
    • — deleted files;
    • $ — stashed changes;
    • = — unmerged changes;
    • — ahead of remote branch;
    • — behind of remote branch;
    • — diverged changes.
  • Indicator for jobs in the background ().
  • Current Node.js version, through nvm/nodenv/n ().
  • Current Docker version and connected machine (🐳).
  • Current Ruby version, through rvm/rbenv/chruby/asdf (💎).
  • Current Go version (🐹).
  • Current PHP version (🐘).
  • Current Rust version (𝗥).
  • Current version of Haskell GHC Compiler, defined in stack.yaml file (λ).
  • Current Julia version ().
  • Current Amazon Web Services (AWS) profile (☁️) (Using named profiles).
  • Current Python virtualenv.
  • Current Conda version (🅒).
  • Current Elixir Version (💧).
  • Current Python pyenv (🐍).
  • Current .NET SDK version, through dotnet-cli (.NET).
  • Current Kubectl context (☸️).
  • Package version, if there is a package in current directory (📦).
  • Current battery level and status:
    • - charging;
    • - discharging;
    • - fully charged.
  • Current Vi-mode mode.
  • Optional exit-code of last command.
  • Optional time stamps 12/24hr in format.
  • Execution time of the last command if it exceeds 5 seconds.

Want more features? Please open an issue or send pull request!

Requirements

To get spacefish working correctly, you will need:

Installation

Fisher
$ fisher install matchai/spacefish
Oh My Fish!
$ omf install spacefish

Customization

Spacefish works really well out of the box, but you can customize your fish to your heart's content!

  • Options — Tweak section's behavior with tons of options.

You have the ability to customize or disable specific elements of Spacefish. All options must be overridden in your config.fish.

Troubleshooting

Having issues? Take a look at our Troubleshooting page.

Still struggling? Please file an issue, describe your problem, and we will gladly help you.

Contributors

Thanks goes to these wonderful people (emoji key):

Matan Kushner
Matan Kushner

🐛 💻 📖 👀 ⚠️ 🔧 🎨
Tiffany Le-Nguyen
Tiffany Le-Nguyen

🐛 💻 📖 👀 ⚠️
Snuggle
Snuggle

🐛 💻 📖 👀 ⚠️
Jaskaran Bindra
Jaskaran Bindra

💻 📖 ⚠️
Konstantin Labun
Konstantin Labun

💻 📖 ⚠️
Kyle Holzinger
Kyle Holzinger

💻 📖
Salmanul Farzy
Salmanul Farzy

💻 👀
owais
owais

💻 📖 ⚠️
Samantha Enders
Samantha Enders

💻 📖 ⚠️
Evan Relf
Evan Relf

💻 📖
Jason Etcovitch
Jason Etcovitch

💻 📖
hrvoj3e
hrvoj3e

🐛 💻
Michael Newman
Michael Newman

🐛 💻 📖 ⚠️
Konrad
Konrad

🐛
Will Neville
Will Neville

🐛
Daniel Trautmann
Daniel Trautmann

💻
Jonas Öhlander
Jonas Öhlander

🐛
lindsay
lindsay

📖
Brad
Brad

💻
Nam Nguyen
Nam Nguyen

💻
Austin Ziegler
Austin Ziegler

👀
Konstantinos Koukopoulos
Konstantinos Koukopoulos

💻 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

License

MIT © Matan Kushner

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 selected or default terraform workspace.
  • Displays number of commits current branch is ahead/behind in each remote.
  • 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.
  • Support for Terraform
  • Support for Kubernetes

Screenshot

Screenshot for Sushi Theme

Screenshot of Sushi Theme with Terraform Workspaces

Screenshot of Sushi Theme with Kubernetes

Screenshot of Sushi Theme with SSH

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 (@rickycodes) 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+ and can be disabled with set -x TOMITA_VI no)

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

tweetjay

Moved Permanently.

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

wolf-theme

Wolf Theme for Fish Shell

Theme based in eclm

Install

omf install wolf-theme

omf theme wolf-theme

Team
Igor Oliveira
Igor Oliveira

yimmy

yimmy theme

A simple two-line theme with support for terminals 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
Configuration:
  • Disable Solarized colors in prompt with: set -U yimmy_solarized false

zeit

See https://github.com/mcansh/zeit-fish-theme for details

zephyr

zephyr

A theme for Oh My Fish.

MIT License
Fish Shell Version
Oh My Fish Framework


Install

omf install https://github.com/komarnitskyi/theme-zephyr
omf theme zephyr

Requirements

Update

omf update zephyr

Features

  • Displays git information in the command prompt when available.
  • Displays node version when available
  • Indicate is User has superpower:
    • - default prompt
    • $ - with SU power

Screenshot

License

[MIT][mit] © [Andrii Komarnitskyi][author] et al

zish

Zish

Zhishen Wen's simple fun theme =)

zish

Left prompt

User, host, abbreviated path, and git branch info

Right prompt

Exit code and time

Enjoy!