Dotfiles
I like my development environment to feel like mine, whichever machine I'm using. This is how I take it with me.
My terminal and development configuration lives in the dotfiles repository. These commands fetch its installers directly from GitHub. Select and copy the command block for your operating system.
Before you start
Install Git first. Applying a module also requires Python 3.9 or newer: python3 on macOS/Linux,
or python on Windows. Python is not required with --no-module. The installer does not
install these prerequisites or elevate privileges.
The quick commands execute code from the repository's current main branch. Only run code you
trust. To inspect it first, use the download-and-review alternative and run its final line only after reviewing
the downloaded file. Download into a directory where it will not overwrite an existing installer file.
macOS and Linux
Download and run
curl -fsSL https://raw.githubusercontent.com/rahul0705/dotfiles/main/install.sh | sh Download and review first
curl -fsSL https://raw.githubusercontent.com/rahul0705/dotfiles/main/install.sh -o install.sh
less install.sh
sh install.sh Windows (PowerShell)
Use PowerShell 5.1 or newer. Applying modules that create symbolic links requires Windows Developer Mode or appropriate symlink privileges. Your execution policy still applies; these commands do not bypass it or request elevation. Both run the installer in a child PowerShell process so its exit cannot close your interactive session.
Download and run
powershell.exe -NoProfile -Command "& ([ScriptBlock]::Create((Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/rahul0705/dotfiles/main/install.ps1' -ErrorAction Stop)))" Download and review first
Invoke-WebRequest -UseBasicParsing -Uri 'https://raw.githubusercontent.com/rahul0705/dotfiles/main/install.ps1' -OutFile install.ps1
Get-Content ./install.ps1
powershell.exe -NoProfile -File ./install.ps1 What gets installed?
A fresh install clones into ~/.dotfiles, initializes the pinned Git submodules recursively, and
applies only the etch module by default. It does not apply the full developer profile.
After downloading the installer, use --module NAME to apply a different module, or
--no-module to clone and initialize submodules without applying any module.
--no-module takes precedence regardless of argument order.
macOS/Linux options
sh install.sh --no-module
DOTFILES_DIR="$HOME/my dotfiles" sh install.sh --module git Windows options
powershell.exe -NoProfile -File ./install.ps1 --no-module
$env:DOTFILES_DIR = Join-Path $HOME 'my dotfiles'
powershell.exe -NoProfile -File ./install.ps1 --module git
The option examples are alternatives, not a sequence: choose one for a fresh destination. Set
DOTFILES_DIR to override the checkout location. The PowerShell environment setting remains in effect
for the current session. Open a new terminal after setup to pick up any user PATH changes.
Existing checkouts and recovery
An existing checkout with a matching origin is a strict no-op: the installer does not pull changes, initialize submodules, or apply modules, even if you pass different options. An unrelated occupied path is refused. This bootstrap is not an updater.
A failed installation may leave a partial checkout. Do not rely on rerunning the bootstrap to repair it. For recovery, updates, and applying the full developer profile, follow the dotfiles README.