Configuration files for the fish shell.
- plugins managed via fisher
 - pure prompt
- right prompt hacked with 
inspirationsby π¦ΈββοΈ reitzig/theme-dmorrell- thinking to try jorgebucaran/hydro, apparently (and astonishingly) simpler than pure
 
 
 - right prompt hacked with 
 - kitty terminal emulator
- screenshot theme: maxdevjs/dotfiles-kitty/themes/rose-pine.conf
 - my configuration files for it
 
 laaliased to exa-al
When using yadm, add this repo as submodule. The general recipe is:
NOTE: this specific command
MUSTbe issued in$HOME
~ $ yadm submodule add <url> path
~ $ yadm submodule update --init --recursiveIn this specific case:
~ $ yadm submodule add https://github.com/maxdevjs/dotfiles-fish .config/fish
~ $ yadm submodule update --init --recursiveThis repo is currently added as submodule to my dotfiles via yadm.
fish plugins are managed via fisher.
I encountered a few issues trying to bootstrap fisher π¦ΉββοΈ after adding this submodule:
~ $ yadm submodule add https://github.com/maxdevjs/dotfiles-fish .config/fishEverything did π₯ putting the Multiverse in π₯.
Theoretically I'd use fisher's shiny ~/.config/fish/fish_plugins file to install every needed plugin. In my case it looks something like:
jorgebucaran/fisher
rafaelrinaldi/pure
jethrokuan/z
acomagu/fish-async-prompt
jorgebucaran/spark.fish
joseluisq/gitnow
jorgebucaran/autopair.fish
gazorby/fish-abbreviation-tipsUnfortunately, on its own install fisher removes any previous track of ~/.config/fish/fish_plugins.
Troubleshooting
If needed, get rid of the submodule π€
- delete the relevant section from the 
~/.gitmodulesfile: 
[submodule ".config/fish"]
    path = .config/fish
    url = https://github.com/maxdevjs/dotfiles-fish- stage the .gitmodules changes
 
~ $ git add .gitmodules- delete the relevant section from 
~/.local/share/yadm/repo.git/config 
[submodule ".config/fish"]
    url = https://github.com/maxdevjs/dotfiles-fish
    active = true- 
yadm rm --cached ~/.config/fish(no trailing slash) - 
rm -rf ~/.local/share/yadm/repo.git/modules/.config/fish(no trailing slash) - 
yadm commit -m "Remove fish submodule" - 
delete the now untracked submodule files
rm -rf ~/.config/fish 
π₯³ππΊπΊπ
Current workaround π©Ή
Hooks
NOTE: this must be set in
~/.local/share/yadm/repo.git/modules/.config/fish/hooks/
I use Git Hooks (8.3 Customizing Git - Git Hooks / githooks - Hooks used by Git), specifically the pre-commit, to:
- backup a copy of 
~/.config/fish/fish_pluginsto~/.config/fish/fish_plugins_BACKUP git add ~/.config/fish/fish_plugins_BACKUP
- I went through the fisher.fish function code
- did not seem trivial to change its behaviour on fisher installation
 
 
Start from fisher update returns conflicting files errors and removes fish_plugins file #670
