My user-specific application configuration.
To quickly test the configurations in a container, you can run either of the following commands with Podman or Docker. This will pull the latest image from Docker Hub, then start an interactive terminal session that will be removed when you exit.
podman run --rm -it docker.io/edwardji/dotfiles:latest
docker run --rm -it edwardji/dotfiles:latest
Dotfiles are managed with mise. Clone the repository with submodules, trust its configuration, and let mise symlink everything into place.
git clone --recurse-submodules git@github.com:edward-ji/dotfiles.git
cd dotfiles
mise trust
mise dotfiles apply
To preview changes without writing anything, or to inspect the current state, use the following commands.
mise dotfiles apply --dry-run
mise dotfiles status
Warning
The command below will overwrite your existing configurations. Make sure you have backups of any important files before proceeding.
mise refuses to replace existing files it does not manage. If you want the repository's versions to win over your existing configurations, apply with force:
mise dotfiles apply --force
Note
Rootless Podman maps container users other than root to subordinate UIDs, so
by default the container user admin cannot read or write host volumes. The
--userns=keep-id:uid=1000,gid=1000 option instead maps your host user to
admin (UID 1000), ensuring proper file permissions when working with
mounted host volumes. The :z volume option relabels the directory for
SELinux hosts such as Fedora; it is a no-op elsewhere.
To seamlessly integrate the dotfiles container with your environment, use the following command. This maps your host user to the container user, sets the terminal type for proper functionality, and binds the current directory as the working directory inside the container.
podman run -it \
--userns=keep-id:uid=1000,gid=1000 \
--env TERM=$TERM \
--volume $(pwd):$(pwd):z \
--workdir $(pwd) \
docker.io/edwardji/dotfiles:latest