A stable and predictible terminal experience. David's Terminal = dterm.
When I start using a new package or tool I add it to the Containerfile
and push the repo to Github. A Github Action then builds the custom image and pushes it to the registry. The bootstrap script runs after Distrobox/Toolbox has created the container and performs tasks such as installing and invoking chezmoi to grab my dotfiles.
This repo is based on boxkit, a set of GitHub actions and skeleton files to build toolbox and distrobox images.
With Distrobox installed run:
distrobox create --image ghcr.io/davemccrea/dterm:latest --name dterm --home ~/distrobox/dterm
distrobox enter dterm
The bootstrap script will run on first load to change the default shell, load dotfiles, etc.
podman pull ghcr.io/davemccrea/dterm; \
distrobox stop dterm; \
distrobox rm dterm; \
sudo rm -rf ~/distrobox/dterm; \
distrobox create --image ghcr.io/davemccrea/dterm:latest --name dterm --home ~/distrobox/dterm; \
distrobox enter dterm
- tmux
- Open tmux and invoke
prefix + I
to install plugins
- Open tmux and invoke
These images are signed with sisgstore's cosign. Generate a new keypair with cosign. The public key is kept in the public repo. Paste the private key in Settings -> Secrets -> Actions.