This repository contains my public dotfiles with an automated setup script. These configuration files help maintain a consistent development environment across macOS, Linux (Ubuntu), and Windows.
# Minimal install (dotfiles only)
curl -fsSL https://install.tqer39.dev | bash
# Full install (dotfiles + development environment)
curl -fsSL https://install.tqer39.dev | bash -s -- --full
# Preview changes without executing
curl -fsSL https://install.tqer39.dev | bash -s -- --dry-run# Minimal install
irm https://install.tqer39.dev/windows | iex
# Full install
.\install.ps1 -Full
# If PowerShell's execution policy blocks the script, use:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Full
# Preview changes
.\install.ps1 -DryRun- Idempotent: Safe to run multiple times - existing correct symlinks are skipped
- Cross-platform: Supports macOS, Linux (Ubuntu), and Windows
- Location: Repository is cloned to
~/.dotfiles - Backup: Existing files are backed up to
~/.dotfiles_backup/ - Modular: Choose between minimal (dotfiles only) or full (with dev tools) installation
| Option | Description |
|---|---|
--full |
Full setup (dotfiles + development environment) |
--minimal |
Minimal setup (dotfiles only, default) |
--skip-packages |
Skip package manager installation |
--skip-languages |
Skip language runtime installation |
--dry-run |
Show what would be done without executing |
-v, --verbose |
Enable verbose output |
--uninstall |
Remove dotfiles symlinks |
--work |
Work/company mode (skip personal packages) |
--ci |
CI mode (non-interactive) |
--doctor |
Run environment health check |
dotfiles/
βββ install.sh # Unix entry point
βββ install.ps1 # Windows PowerShell entry point
βββ src/ # Dotfiles
β βββ .zshrc # Zsh configuration
β βββ .bashrc # Bash configuration
β βββ .gitconfig # Git configuration
β βββ .hammerspoon/ # Window management (macOS)
β βββ .vscode/ # VS Code settings
β βββ .config/
β βββ starship.toml # Starship prompt
β βββ karabiner/ # Keyboard customization (macOS)
β βββ git/ # Git ignore patterns
βββ scripts/
β βββ lib/ # Shared utilities
β βββ installers/ # Package installers
β βββ dotfiles.sh # Symlink management
βββ config/
βββ platform-files.conf # File -> symlink mapping
βββ packages/ # Package lists (Brewfile, etc.)
All dotfiles that get symlinked during installation:
| File | Destination | Description | Platform |
|---|---|---|---|
.shell_common |
~/.shell_common |
Shared aliases & functions (git, ls, navigation) | π π§ |
.zshrc |
~/.zshrc |
Zsh configuration | π π§ |
.bashrc |
~/.bashrc |
Bash configuration | π π§ |
.bash_profile |
~/.bash_profile |
Bash login shell config | π π§ |
Microsoft.PowerShell_profile.ps1 |
~/Documents/PowerShell/... |
PowerShell profile | πͺ |
| File | Destination | Description | Platform |
|---|---|---|---|
.gitconfig |
~/.gitconfig |
Git user config, GPG signing, aliases | π π§ πͺ |
.gitignore |
~/.gitignore_global |
Global ignore patterns | π π§ πͺ |
.config/git/ignore |
~/.config/git/ignore |
Additional ignore rules | π π§ πͺ |
| File | Destination | Description | Platform |
|---|---|---|---|
.config/starship.toml |
~/.config/starship.toml |
Starship prompt (Tokyo Night theme) | π π§ |
.config/ghostty/config |
~/.config/ghostty/config |
Ghostty terminal config | π π§ |
.config/sheldon/plugins.toml |
~/.config/sheldon/plugins.toml |
Zsh plugin manager | π π§ |
| File | Destination | Description | Platform |
|---|---|---|---|
.config/mise/config.toml |
~/.config/mise/config.toml |
mise version manager (Node.js, Claude Code, etc.) | π π§ πͺ |
| File | Destination | Description | Platform |
|---|---|---|---|
.hammerspoon/init.lua |
~/.hammerspoon/init.lua |
Window management automation | π |
.config/karabiner/karabiner.json |
~/.config/karabiner/karabiner.json |
Keyboard remapping | π |
| File | Destination | Description | Platform |
|---|---|---|---|
.vscode/extensions.json |
VSCODE_USER_DIR/extensions.json |
Recommended extensions | π π§ πͺ |
.vscode/mcp.json |
VSCODE_USER_DIR/mcp.json |
MCP server config | π π§ πͺ |
Legend: π macOS Β· π§ Linux Β· πͺ Windows
When using --full, the following will also be installed:
- macOS/Linux: Homebrew + packages from
config/packages/Brewfile - Ubuntu: APT packages from
config/packages/apt-packages.txt - Windows: Scoop (CLI tools) + winget (GUI apps)
- anyenv: For managing language runtimes (pyenv, nodenv, etc.)
- VS Code Extensions: From
src/.vscode/extensions.json
- Git: Required for cloning the repository
- curl (Unix) or PowerShell 5.1+ (Windows)
This repository uses tools that require macOS or Linux:
make bootstrap- Install development dependenciesjust setup- Configure development environmentjust lint- Run lintersjust tf- Run Terraform commands
Windows is supported for using dotfiles, but developing this repository requires macOS or Linux.
This project is licensed under the MIT License - see the LICENSE file for details.