my fish shell configuration
- Shell 98.5%
- Makefile 1.5%
| completions | ||
| conf.d | ||
| functions | ||
| plugins | ||
| themes | ||
| .gitignore | ||
| .gitmodules | ||
| config.fish | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
To use, clone to ~/.config/fish and run make to download any plugin
submodules.
I have /bin/sh set as my user login shell. My ~/.profile is used upon login
and a ~/.config/sh/env is sourced for interative shells, which does exec fish.
This avoids any issues with your login shell or SHELL being non-POSIX.
# ~/.profile
# If the shell is interactive, this file will be sourced, too.
# Make sure this file is private: `chmod 600 $ENV`
ENV="${HOME}/.conifg/sh/env"
# Cache the result of `uname` (it never changes) instead of
# needing to repeatedly invoke it in scripts.
UNAME="$(uname)"
export ENV UNAME
# ~/.config/sh/env
if [ "x$(printf %.1s "$0")" = x- ]; then
exec fish -l
else
exec fish
fi