The Fish Shell Framework
Go to file
Derek Willian Stavis c3009ff97f Merge pull request #54 from wk/master
registry: add ssh-term-helper plugin
2015-09-20 14:18:14 -03:00
bin Back to oh-my-fish organization 2015-09-03 19:35:19 +01:00
db registry: add ssh-term-helper plugin 2015-09-19 12:55:48 +02:00
docs docs: Rewrite package creation example 2015-09-07 00:11:46 -03:00
lib lib/README: fix swapped lines 2015-09-14 14:06:37 -03:00
pkg/omf Using raw name_or_url instead of name. 2015-09-13 23:22:12 +02:00
templates Extracting template to a file and improving it 2015-08-28 12:53:37 +01:00
.editorconfig %%% United States of the Fish → Wahoo + OMF %%% 2015-08-27 00:20:13 +09:00
.gitignore fix omf new theme and remove default theme 2015-08-27 06:04:24 +09:00
.travis.yml Only send travis notifications when build fails 2015-09-06 00:52:37 +01:00
CONTRIBUTING.md Back to oh-my-fish organization 2015-09-03 19:35:19 +01:00
init.fish Remove global OSTYPE variable. 2015-09-05 19:20:24 +01:00
LICENSE Undo Licence.. because you know what happened here 2015-09-03 23:20:42 +01:00
README.md README: Add copyright to license section 2015-09-07 00:12:03 -03:00

The Fishshell Framework

MIT License Fish Shell Version Travis Build Status Travis Build Status

Oh My Fish provides core infrastructure to allow you to install packages which extend or modify the look of your shell. It's fast, extensible and easy to use.



Install

curl -L github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | sh
omf help

Or download and run it yourself:

curl -L github.com/oh-my-fish/oh-my-fish/raw/master/bin/install > install
chmod +x install
./install

Getting Started

Oh My Fish includes a small utility omf to fetch and install new packages and themes.

omf update

Update the framework and installed packages.

omf install [<name>|<url>]

Install one or more packages.

  • You can install packages directly by URL via omf install URL
  • When called without arguments, install missing packages from bundle.

omf list

List installed packages.

omf theme <theme>

Apply a theme. To list available themes type omf theme.

omf remove <name>

Remove a theme or package.

Packages subscribed to uninstall_<pkg> events are notified before the package is removed, so custom cleanup of resources can be done. See Uninstall for more information.

omf new pkg | theme <name>

Scaffold out a new package or theme.

This creates a new directory under $OMF_CONFIG/{pkg | themes}/ with a template.

omf submit pkg/<name> [<url>]

Add a new package. To add a theme use omf submit themes/<name> <url>.

Make sure to send us a PR to update the registry.

omf query <variable name>

Use to inspect all session variables. Useful to dump path variables like $fish_function_path, $fish_complete_path, $PATH, etc.

omf destroy

Uninstall Oh My Fish.

Advanced

Oh My Fish installer places its startup code in your fish config file (~/.config/fish/config.fish).

Startup

Everytime you open a new shell the startup code initializes Oh My Fish installation path and the config path (~/.config/omf by default), sourcing the init.fish script afterwards, which autoload packages, themes and your custom init file. For more information check the FAQ.

Dotfiles

The $OMF_CONFIG directory represents the user state of Oh My Fish, and is the perfect
candidate for being added to your dotfiles and/or checked out to version control. There are two important files:

  • theme - The current theme
  • bundle - List of currently installed packages/themes

About the bundle

Everytime a package/theme is installed or removed the bundle file is updated. You can also edit it manually and run omf install afterwards to satisfy the changes. Please note that while packages/themes added to the bundle gets automagically installed, a package/theme removed from bundle isn't removed from user installation.

Creating Packages

Oh My Fish uses an advanced and well defined plugin architecture to ease plugin development, including init/uninstall events and function autoloading. See the documentation for more details.

License

Copyright (c) 2015 Bruno Ferreira Pinto. See License.