Linux system provisioner β sets up a fresh machine and bootstraps dotfiles.
This repo handles everything that requires distro-level knowledge, leaving the dotfiles repo focused purely on configuration.
This repo sets up:
- π§ Distro dependencies β build tools and locale per distro
- πΊ Homebrew β installs and initializes Homebrew
- π dotfiles β clones and runs
dotfiles/install.sh - π¦ Rust β toolchain via rustup
- π¦ npm globals β commitlint
- πͺ Windows Terminal β auto-configured when running under WSL
git clone https://github.com/mirai-toto/linux-setup.git ~/linux-setup
cd ~/linux-setup
./install.shinstall.sh does the following:
- Detects the distro and installs build dependencies
- Configures locale (
en_US.UTF-8) - Installs Homebrew
- Clones dotfiles to
~/dotfilesand runs itsinstall.sh - Installs npm global packages
- Installs Rust toolchain via rustup
- (WSL only) Installs and configures Windows Terminal via wt-settings
After install, restart your terminal or run exec zsh.
| Distro | Script |
|---|---|
| Debian / Ubuntu | distro/debian/setup.sh |
| Fedora / RHEL | distro/fedora/setup.sh |
Distro detection reads /etc/os-release. If your distro is not recognized, distro-specific steps are skipped with a warning and the rest of the install continues.
Each distro has its own Dockerfile for isolated testing:
./test-install.sh # defaults to debian
./test-install.sh debian
./test-install.sh fedoraThis builds the image for the target distro and drops you into an interactive shell after install.sh completes.
Auto-configured during install when running under WSL, via wt-settings. Color scheme files live in themes/.
These files are created by dotfiles/install.sh with empty values β don't forget to fill them in:
| File | What to fill in |
|---|---|
~/.gitconfig.local |
name and email for git commits |
~/.secrets |
API keys and other secrets |