Skip to content

alejakun/dotfiles-win

Repository files navigation

dotfiles-win

Automated Windows application installation using winget with multiple profiles


πŸš€ Quick Start

One-Line Installation

Open PowerShell and run one of these commands:

HOME only (family computers - essential apps):

iwr -useb https://raw.githubusercontent.com/alejakun/dotfiles-win/master/bootstrap.ps1 | iex

HOME + PERSONAL (your personal laptop):

iwr -useb https://raw.githubusercontent.com/alejakun/dotfiles-win/master/bootstrap-personal.ps1 | iex

HOME + DEV (development workstation):

iwr -useb https://raw.githubusercontent.com/alejakun/dotfiles-win/master/bootstrap-dev.ps1 | iex

HOME + INFRA (infrastructure workstation):

iwr -useb https://raw.githubusercontent.com/alejakun/dotfiles-win/master/bootstrap-infra.ps1 | iex

FULL (everything - home + personal + dev + infra):

iwr -useb https://raw.githubusercontent.com/alejakun/dotfiles-win/master/bootstrap-full.ps1 | iex

Note: All profiles except HOME automatically install the HOME profile first.


πŸ“‹ Profiles

🏠 HOME (Default)

Purpose: Essential applications for family computers

Includes:

  • Git, GitHub CLI, VSCode
  • Browsers (Chrome, Firefox)
  • 7-Zip, Dropbox
  • Bitwarden (password manager)
  • Rambox, Zoom
  • Doxie Scanner
  • TeamViewer, AnyDesk
  • Adobe Acrobat Reader
  • Google Earth Pro

πŸ’Ό PERSONAL

Purpose: Personal productivity tools

Includes:

  • Windows Terminal
  • PowerToys
  • Microsoft Teams
  • Krisp.ai (noise cancellation)
  • ShareX (screenshots)
  • VLC Media Player
  • Google Drive Desktop
  • Tailscale (VPN mesh network)

πŸ‘¨β€πŸ’» DEV

Purpose: Development tools for frequent use

Includes:

  • Claude Code (AI assistant)
  • Python 3.12
  • Sublime Text 4
  • Notepad++
  • Google Cloud SDK (gcloud, bq, gsutil)
  • AWS CLI

πŸ—οΈ INFRA

Purpose: Infrastructure & virtualization (resource-intensive)

Includes:

  • DBeaver (database tool)
  • Docker Desktop
  • VMware Workstation Pro
  • Vagrant

Note: Ansible not available via winget. Install via WSL or pip.

🌐 FULL

Purpose: Everything combined (home + personal + dev + infra)


πŸ“¦ Installation Methods

Method 1: One-Liner (Recommended)

See Quick Start above.

Method 2: Manual Clone

git clone https://github.com/alejakun/dotfiles-win.git
cd dotfiles-win
.\install.ps1 -Profile home

Method 3: Individual Profiles

For your personal workstation:

.\install.ps1 -Profile home
.\install.ps1 -Profile personal
.\install.ps1 -Profile dev

πŸ› οΈ Advanced Usage

Preview Mode (Dry Run)

.\install.ps1 -Profile personal -DryRun

Show Individual Commands

.\install.ps1 -Profile dev -ShowCommands

This displays individual winget install commands you can copy/paste.

Help

.\install.ps1 -Help

πŸ“‹ Prerequisites

  • Windows 10 (version 1809+) or Windows 11
  • winget (Windows Package Manager) - Pre-installed on Windows 11
  • PowerShell 5.0+ - Pre-installed on modern Windows

Check if winget is installed

winget --version

If not installed, get it from Microsoft Store.


✏️ Customization

Adding Applications

  1. Find the package ID:

    winget search "App Name"
  2. Add to appropriate profile file (winget/packages-home.txt, packages-personal.txt, etc.):

    # My additions
    Notepad++.Notepad++
    VideoLAN.VLC
  3. Run installer again

Removing Applications

Comment out or delete lines in package files:

# Mozilla.Firefox  # Don't install Firefox

πŸ”§ Troubleshooting

"winget not found"

Solution:

  1. Install App Installer from Microsoft Store
  2. Restart PowerShell
  3. Verify: winget --version

"Access denied"

Solution:

  • Run PowerShell as Administrator
  • Right-click Start β†’ Windows Terminal (Admin)

"Execution policy" error

Solution:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Package installation fails

  1. Check if package exists:

    winget search "Package Name"
  2. Update winget sources:

    winget source update
  3. Try manual installation: See MANUAL_INSTALL.md


πŸ“ Notes

After Installation

Some applications add commands to PATH. To use them in terminals:

  • New PowerShell/Terminal: Works immediately after installation
  • VSCode: Requires full application restart (not just terminal reload)
  • Existing terminals: Must be restarted to recognize new PATH

Example:

After installing Claude Code via winget:

  1. Close VSCode completely (not just the terminal)
  2. Reopen VSCode
  3. Now claude command will work in integrated terminal

Quick test:

# Restart terminal/VSCode, then:
claude --version
gcloud --version
aws --version

πŸ“ Structure

dotfiles-win/
β”œβ”€β”€ bootstrap.ps1                 # Remote installation script
β”œβ”€β”€ install.ps1                   # Main installation script
β”œβ”€β”€ winget/
β”‚   β”œβ”€β”€ packages-home.txt         # Home profile (default)
β”‚   β”œβ”€β”€ packages-personal.txt     # Personal productivity
β”‚   β”œβ”€β”€ packages-dev.txt          # Development tools
β”‚   β”œβ”€β”€ packages-infra.txt        # Infrastructure/virtualization
β”‚   └── packages-full.txt         # All profiles combined
β”œβ”€β”€ MANUAL_INSTALL.md             # Manual installation guide
└── README.md                     # This file

πŸ”„ Maintenance

Update all installed packages

winget upgrade --all

List installed packages

winget list --source winget

Uninstall packages

winget uninstall --id PackageId

πŸ“š References


πŸ“ License

MIT License - See LICENSE file for details


Last updated: 2025-10-21

About

Automated Windows application installation using winget

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •