Skip to content

Repository files navigation

dotfiles

One-command development environment for WSL Arch, WSL Ubuntu and native Windows.

WSL Arch WSL Ubuntu Windows Shell Prompt License

Install · What you get · Themes · Tools · Cheatsheet · Docs


Install

WSL (Arch / Ubuntu)

curl -fsSL https://raw.githubusercontent.com/Robertcl795/dotfiles/main/bootstrap.sh | bash

Native Windows — from pwsh 7, not Windows PowerShell 5.1:

winget install Microsoft.PowerShell
pwsh
irm https://raw.githubusercontent.com/Robertcl795/dotfiles/main/bootstrap.ps1 | iex
Other ways to install — from a branch, from a clone, non-interactive
# From a feature branch
BRANCH=my-branch
curl -fsSL "https://raw.githubusercontent.com/Robertcl795/dotfiles/$BRANCH/bootstrap.sh" \
  | DOTFILES_BRANCH=$BRANCH bash

# From a clone
git clone https://github.com/Robertcl795/dotfiles.git ~/.dotfiles
~/.dotfiles/bootstrap.sh

# Non-interactive, everything chosen up front
DOT_NONINTERACTIVE=1 DOT_SHELL=zsh DOT_THEME=cyber ./bootstrap.sh

Fresh Arch WSL starts as root with no user. Run the same command: it updates the system, enables sudo for wheel, creates your user, sets it as the WSL default, and offers to wsl --shutdown. Reopen Arch and the install resumes automatically from a one-shot ~/.bashrc hook. Details: docs/os/arch.md.

Tip

Keep the repo and your projects under ~/, never /mnt/c/... — cross-OS I/O is 10-20× slower. The bootstrap moves off /mnt automatically, and the shell warns (and auto-cds home) when a session starts there.

What you get

flowchart LR
    A["bootstrap.sh"] --> B["0 · preflight<br/>detect OS"]
    B --> C["1 · packages<br/>CLI stack"]
    C --> D["2 · link<br/>symlinks"]
    D --> E["3 · shell<br/>zsh / fish"]
    E --> F["4 · prompt<br/>starship"]
    F --> G["5-9 · nvim, k8s,<br/>zellij, langs, AI"]
    G --> H["10-11 · WSL tuning,<br/>AI standard"]
    H --> I["12 · greeting<br/>fastfetch"]
    I --> J["summary"]
Loading
Area What's installed Docs
Shell zsh (default) with vi-mode, autosuggestions, fast-syntax-highlighting, history-substring-search — or fish with fisher + fzf.fish 03-shell
Prompt Starship, five themes THEMES
CLI stack bat · eza · fzf · zoxide · ripgrep · fd · lazygit · lazydocker · glow · duf · yazi · sshs · lnav · just · zellij TOOLS
Greeting fastfetch on every new tab 12-fastfetch
Editor Neovim + lazy.nvim 05-nvim
Languages rustup · fnm (Node) · uv (Python) · kubectl/helm/k3d 08-lang-toolchains
AI Claude Code · opencode · gh copilot, plus the AI Development Standard 09 · 11
WSL tuning .wslconfig networking, systemd, NTFS performance guards 10-wsl

The aliases you'll use every day — full list in the cheatsheet:

Git Files
gst git status gc commit -v ls eza with icons cat bat
gco checkout gcob checkout -b z <dir> zoxide jump y yazi
gsw switch gswc switch -c lg lazygit ld lazydocker
gb branch gbD branch -D ff fastfetch vim nvim

Configure

Everything is interactive by default; every prompt has an env-var override.

Variable Values Default
DOT_SHELL zsh · fish zsh
DOT_THEME default · tron · cyber · eva01 · minimal default
DOT_ENABLE_K8S 0 · 1 prompt
DOT_NO_FASTFETCH 1 disables the shell greeting unset
DOT_NO_AUTOCD 1 keeps shells in /mnt/* unset
DOT_ENABLE_WSLCONFIG 0 · 1 — write .wslconfig on the Windows host prompt
DOT_WSL_NETWORKING nat · mirrored nat
DOT_NONINTERACTIVE 1 accepts every default unset
DOT_VERBOSE 1 traces every command unset
DOTFILES_BRANCH branch to bootstrap from main

bootstrap.ps1 takes the same options as parameters: -NonInteractive -Theme <name> -EnableK8s 0|1 -Branch <branch>.

After changing WSL networking, run wsl --shutdown from PowerShell and reopen your terminal.

Day to day

make install                 # re-run the full bootstrap
make test                    # run every checkpoint
make theme THEME=tron        # switch prompt theme, no re-bootstrap
make fastfetch               # reinstall/relink the greeting
make ai-scaffold TARGET=~/p  # drop the AI standard into a repo

Repo layout

Path Contents
bootstrap.sh · bootstrap.ps1 Entry points (WSL · native Windows)
install/ Bootstrap phases, one script per phase
windows/ Native-Windows equivalents
config/ Configs that get symlinked — zsh/, fastfetch/, starship/, git/, zellij/, alacritty/
shells/ Shell entry points (zshrc, fish config.fish + conf.d/)
themes/ Starship + Windows Terminal themes
nvim/ Neovim configuration
ai/ AI Development Standard (agents, prompts, skills, context DB)
tests/ One checkpoint script per phase
docs/ Documentation

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages