The best parts of fish and the best parts of xonsh. I really like xonsh,
but fish's autocomplete and suggestion system is way superior to xonsh's.
But I also love the fact that xonsh has its whole state as Python objects.
So I decided to combine the two.
This code is 100% garbage. It's very hacky, a single python program manages
an instance of xonsh and an instance of fish. On pressing [ENTER], fish
sends a message to the running mollusk instance over a socket, and mollusk
runs that inside of its child xonsh process.
I consider this an improvement on xonsh, but not an improvement on fish
at the moment. Once the main bugs are fixed, I'll probably consider it an
overall improvement, despite the spawning of a fish shell every time a
command is run.
-
Add the contents of the configuration files in
fish_configto your files in~/.config/fish/. Since configuration files are so complex, there is no way to do this automatically. -
Put
molluskin/usr/bin/or somewhere in your path. Make sure thatfishcan findmolluskwherever it may be. -
Try it out, see it break.
- Multi-line command support
- Robustness against breaking the internal xonsh interpreter
Fix end of file not terminating shell- Fix syntax highlighting
Probably combinemolluskandmollusk-relay
- Have
~/.xonshrc's prompt be the one presented on the fish prompt. - Ultimately never have to edit any fish configuration files, only
xonshones
Sadly I can't change $SHELL to /usr/bin/mollusk. This is because xonsh
is what is actually running the commands.