- If you want to create the new xxh-shell entrypoint you should have portable version of the shell. It could be static binary, AppImage, Flatpak, zipapp, or any other way to run shell without dependencies.
- Fork this repo to create your xxh shell entrypoint.
- Rename your repo to
xxh-shell-myshell
- Install xxh and run once to creating
~/.xxh
cd ~/.xxh/xxh/shells && git clone https://github.com/you/xxh-shell-myshell && cd xxh-shell-myshell
- Edit
build.sh
script. While build you should createbuild
directory with minimal group of files to run the portable shell. - Edit
entrypoint.sh
script. This script should be copied tobuild
directory while building and this script will be the main entrypoint to the shell. - Run
./build.sh
. It will be great if after building you can runbuild/entrypoint.sh
and open the shell locally. - Try to connect:
xxh myhost +if +s xxh-shell-myshell
(+if
means force reinstall). - Try to use commands, try to move thru directories. If everything as expected try commit and push your changes.
- You rock! Tell us about your work!
Real life example of creating xxh-shell and xxh-plugins you could find in xxh-shell-xonsh.
To support plugins to your xxh-shell you should add execution the pluginrc
files. Examples: .zshrc, xonshrc.
The xxh has seamless environment mode which allows to pass variable from your current shell session
to the xxh host session. For example if you have XONSH_COLOR_STYLE
variable with your shell color theme you shouldn't
worry about passing it manually. Example for xonsh:
home> print($XONSH_COLOR_STYLE)
paraiso-dark
home> source xxh.xsh myhost
myhost> print($XONSH_COLOR_STYLE)
paraiso-dark
This very useful when you want to use the same tools on your local and remote host.