Skip to content

Based on Antigen, Triton is the simplest possible package manager for the fish shell that can be easily understood and just works.

License

Notifications You must be signed in to change notification settings

dukedorje/triton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Install

Installation Script:

wget -qO- https://git.io/fp7xA | fish

Quickstart

wget -qO- https://git.io/fp7xA | fish
triton bootstrap
nano ~/.config/fish/config.fish

Each package is a single line in config.fish which can be commented or edited. When you fire up your shell it simply loads whatever you tell it to.

Optionally clean up your config.fish by adding packages in ~/.config/fish/fishfile.

It supports github libraries only for now.

e.g. for https://github.com/joehillen/to-fish chop the first part off and write triton joehillen/to-fish.

Usage

triton : Initialize Triton. This initializes triton, and loads or installs all of the libraries listed in your fishfile.

triton bootstrap : Copy the included configuration file templates into the config directory.

triton [repo/lib] : Load or install the specified library. e.g. triton joehillen/to-fish is at https://github.com/joehillen/to-fish

triton fishfile [file] : Load/install all of the libraries in the given fishfile.

What Does It Do?

You give triton just about any repository that is meant to be a fish plugin, and it will install it. If it's already installed in triton's plugin installation directory, it will load it.

The end result is a nice list of all of installed packages in config.fish and fishfile, not a confusing pile of symlinks or a maze of deeply nested calls across multiple directories. Everything is in ~/.config/fish/, and everything triton is in the triton subdirectory.

Great Packages

We suggest putting themes in config.fish to be able to comment them out at will, but reference them later. Libraries that are must-haves and always givens can go into Fishfile.

# Some suggestions for your config.fish:

# triton oh-my-fish/theme-bobthefish
triton oh-my-fish/theme-agnoster
# triton oh-my-fish/theme-es
# triton jorgebucaran/fish-sol
# triton jorgebucaran/fish-sektor

triton joehillen/to-fish # Fish shell directory bookmarks
triton oh-my-fish/plugin-spark
triton oh-my-fish/plugin-node-binpath

# this requires the fzf binary installed
triton jethrokuan/fzf
# And this requires The Silver Searcher binary `ag`.
set -U FZF_FIND_FILE_COMMAND "ag -l --hidden --ignore .git"
set -U FZF_ENABLE_OPEN_PREVIEW 1

And here is my fishfile:

edc/bass
joehillen/to-fish
jethrokuan/z

Other Package Lists

Origin Story

One day I was searching for a setting in a Fish plugin that was causing a problem, but when I started looking through my Fish config, I became lost in a dense and impenetrable forest of references. I couldn't find where the actual library files lived. Was it symlinked from fisherman? Was it in one of oh-my-fish's numerous special directories? How was it even being loaded?! What was being loaded?!! Functions, or conf.d.... I had to read through the source code of oh-my-fish to figure out what the heck was going on. It was almost enough to send me back to Zsh, again.

But recall that Fish has an actual scripting language that makes sense. And so, armed with that and a few design principles I set out to make something discoverable, explicit, and magical enough to surprise and delight. Please enjoy and drop me a line if you like it or have feedback.

Inspirations include: antigen.zsh, Vim+Pathogen.

Triton

Triton

About

Based on Antigen, Triton is the simplest possible package manager for the fish shell that can be easily understood and just works.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages