kpango's comprehensive cross-platform dotfiles and fullstack development environments in Docker.
This repository contains personal system configurations, terminal setups, and containerized development environments. It supports multiple operating systems and orchestrates setup via a modular Makefile.
- Editor: Helix with extensive language support (Go, Rust, Nim, Python, C/C++, Ruby, JS, HTML/CSS) and custom themes.
- Shell:
zshplugin management via Sheldon with categorized modules (tmux, git, k8s, docker, os-specific). - Multiplexer:
tmuxwith customized configurations and K8s integrations. - Terminal: Ghostty configurations.
- Prompt: Starship prompt.
- Version Control: Git (with global gitconfig, gitignore, and gitattributes).
- macOS: Configurations including Brewfile, launch agents (autoupdate, ulimit), and customized docker settings.
- Arch Linux: Full desktop setup including Sway/i3, Waybar, Wofi, Fcitx5, PulseAudio, and specific systemd services/udev rules.
- NixOS: Flake-based NixOS configurations (
nix/flake.nixwith core modules and hosts).
Fully Dockerized development environments to maintain a clean host system. Managed via make build:
- Base development environment (
dev.Dockerfile) - Language/Tool-specific environments: Go, Rust, Dart, Nim, Kubernetes (
k8s.Dockerfile), and Google Cloud (gcloud.Dockerfile). - Multi-architecture Docker builds powered by buildx.
ghqmakedockerbash/zsh
It is recommended to use ghq to manage the repository location.
# Configure ghq root
git config --global ghq.root $HOME/go/src
# Get the repository
ghq get kpango/dotfiles
cd $HOME/go/src/github.com/kpango/dotfiles
# Install dotfiles (symlink or copy)
make link # or 'make copy'- macOS:
make mac_linkormake mac_copy - Arch Linux: Check the respective install scripts under
arch/and Makefile rules. - Docker Environments:
make build/make prod
- Fork it (https://github.com/kpango/dotfiles/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request