The Fish Shell Framework
Go to file
2015-02-01 13:50:48 +09:00
custom fixing example custom load file format 2013-02-07 09:31:59 -02:00
functions Do not add test/spec files to function path via skip glob in import. 2015-01-14 10:34:21 +09:00
plugins Update plugins README with information about new plugins: msg, getopts, fish-spec. 2015-02-01 13:50:48 +09:00
script test runner should search fish_path for specs instead of * 2015-01-21 13:03:35 +09:00
spec Closes #322: rename to-(not-)contain to to-(not-)contain-all 2015-01-17 13:32:19 -02:00
templates Revert "fish has renamed . to source" 2013-10-18 14:15:47 -03:00
themes Add preview image. 2015-01-29 20:04:59 -02:00
tools Update install.fish 2015-01-24 18:37:56 -02:00
.gitignore Gitignore: Ignore vim backup file (sw?). 2014-04-16 21:43:33 +02:00
.travis.yml email notification settings 2015-01-19 12:58:50 -02:00
CONTRIBUTING.md contributing guidelines 2015-01-30 02:01:03 -02:00
Dockerfile seq call in getopts should specify negative step 2015-01-24 06:57:51 +09:00
LICENSE MIT License 2014-07-22 07:25:04 -03:00
oh-my-fish.fish Subsequent tests should run if one test fails. 2015-01-13 19:16:48 -02:00
README.markdown Update README with information about tests. 2015-02-01 13:50:48 +09:00

Oh My Fish!

Build Status

Why?

Developing on a shell should be a pleasure. Our goal is to help developers that don't want to spend time configuring their own computer to spend time doing what they want.

How?

With the power of our community, we take the already awesome fish shell to another level by creating simple-to-use plugins and themes.

What?

Oh-my-fish is a user-friendly framework for managing your fish-shell configuration. It includes optional plugins (brew, git, rails, python, node, etc) and themes.

Installation

Oh-my-fish is built for recent versions of the fish shell, namely "fish 2.0".

curl -L https://github.com/bpinto/oh-my-fish/raw/master/tools/install.fish | fish

If you want to install it manually, keep reading.

Usage

Enabling a new plugin or theme is as easy as it should be. Open your fish configuration file
~/.config/fish/config.fish and specify the theme and the plugins you want to use.

As an example, to enable rails and git plugins add this line set fish_plugins git rails
to your configuration file.

Tests

Oh-My-Fish comes fully tested via fish-spec, a plugin bundled with the framework. To learn how to use fish-spec in your own projects, check out the usage guide.

Customization

If you have many functions which go well together, you can create custom plugin in the custom/plugins/PLUGIN_NAME
directory and add to it as many functions as you want.

If you would like to override the functionality of a plugin distributed with oh-my-fish,
create a plugin of the same name in the custom/plugins/ directory and it will be loaded
instead of the one shipped with oh-my-fish.

If you would like to use your custom theme, move it with the same name in the custom/themes/ directory
and it will override the original theme in themes/.

If you just want to override any of the default behavior or add some environment variables,
just add a new file (ending in .load) into the custom/ directory.

Send us your theme!

I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the themes directory.

Switching to fish

If you wish to use fish as your default shell, use the following command:

grep -q '^/usr/local/bin/fish$' /etc/shells; or echo '/usr/local/bin/fish' | sudo tee -a /etc/shells
chsh -s /usr/local/bin/fish

chsh will prompt you for your password, and change your default shell.

To switch your default shell back, you can run:

chsh -s /bin/bash

Substitute /bin/bash with /bin/tcsh or /bin/zsh as appropriate.

Manual installation

  1. Clone the repository
    git clone git://github.com/bpinto/oh-my-fish.git ~/.oh-my-fish
  1. Create a new fish config by copying the fish template we've provided.
    cp ~/.oh-my-fish/templates/config.fish ~/.config/fish/config.fish
  1. Start / restart fish (just open a new terminal)

Uninstall

rm -rf ~/.oh-my-fish

Oh My ZSH

This project is heavily inspired by oh-my-zsh