Coder Social home page Coder Social logo

oh-my-fish's Introduction

The Fishshell Framework

MIT License Fish Shell Version Travis Build Status Slack 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.



English简体中文

Install

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

Or download and run it yourself:

curl -L github.com/oh-my-fish/oh-my-fish/raw/master/bin/install > install
fish 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:

  1. BACKUP ALL YOUR CUSTOM STUFF
  2. mv ~/.config/fish/config{,_old}.fish
  3. rm -rf ~/.oh-my-fish
  4. Do a clean Oh My Fish install
  5. Copy all lines starting with Plugin and Theme from ~/.config/fish/config_old.fish
  6. Paste them it into $OMF_CONFIG/bundle file. If it doesn't exist, create it
  7. Convert all Plugin "name" lines to package name
  8. Convert all Theme "name" lines to theme name
  9. 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 doctor

Use to troubleshoot before opening an issue.

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 files. 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 four important files:

  • theme - The current theme
  • bundle - List of currently installed packages/themes
  • init.fish - Custom script sourced after shell start
  • before.init.fish - Custom script sourced before shell start

It's highly recommended that your custom startup commands go into init.fish file instead of ~/.config/fish/config.fish, as this allows you to keep the whole $OMF_CONFIG directory under version control.

If you need startup commands to be run before Oh My Fish begins loading plugins, place them in before.init.fish instead. If you're unsure, it is usually best to put things in init.fish.

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.

oh-my-fish's People

Contributors

amio avatar beloglazov avatar bobthecow avatar bpinto avatar cap10morgan avatar derekstavis avatar farao avatar felipero avatar godfat avatar iven avatar jacaetevha avatar jeremiejig avatar jhillyerd avatar joar avatar jonknapp avatar kirach avatar krisleech avatar lvicentesanchez avatar ngroup avatar rominf avatar sagebind avatar scorphus avatar scubacabra avatar skk avatar syl20bnr avatar tannhuber avatar theonewolf avatar tripleplus avatar vincent-psarga avatar wk avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.