bin | ||
db | ||
docs | ||
lib | ||
pkg/omf | ||
templates | ||
tests | ||
tools | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
CONTRIBUTING.md | ||
init.fish | ||
LICENSE | ||
README.md |
The Fishshell Framework
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
Update Instructions
We just moved Oh My Fish repository back to our own organization. Since then, you need to update your Oh My Fish remotes. A clean install is highly recommended for users of old Oh My Fish, and you can follow the steps described below:
- BACKUP ALL YOUR CUSTOM STUFF
mv ~/.config/fish/config{,_old}.fish
rm -rf ~/.oh-my-fish
- Do a clean Oh My Fish install
- Copy all lines starting with
Plugin
andTheme
from~/.config/fish/config_old.fish
- Paste them it into
$OMF_CONFIG/bundle
file. If it doesn't exist, create it - Convert all
Plugin "name"
lines topackage name
- Convert all
Theme "name"
lines totheme name
omf install
If you find any trouble in the upgrade process join us in Slack and we will be happy to help.
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
. You can also preview available Themes before installing.
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 themebundle
- 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.