Skip to content

lubasinkal/dev-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Windows Development Setup

A comprehensive, automated development environment setup for Windows developers. This repository provides a complete dotfiles setup with modern tools, configurations, and productivity enhancements.

πŸš€ Features

Core Tools

  • Package Management: Scoop + Winget for comprehensive package management
  • Terminal: WezTerm with custom configuration and keybindings
  • Shell: Enhanced PowerShell with aliases, functions, and integrations
  • Prompt: Starship with custom, informative prompt
  • Editor: Neovim with automated config cloning
  • Version Control: Git with enhanced aliases and delta diff viewer

Development Tools

  • Languages: Python, Node.js (via fnm), Go, Rust, Zig
  • File Management: eza (ls replacement), fd (find replacement), yazi (file manager)
  • Search: ripgrep (rg) for fast text search
  • Git Tools: lazygit for enhanced git workflow
  • Navigation: zoxide for smart directory navigation
  • Terminal Multiplexing: Built-in WezTerm pane management

Productivity Features

  • Smart Aliases: Comprehensive aliases for common operations
  • Project Navigation: Quick project discovery and navigation
  • Environment Management: Template-based environment variables
  • Backup Strategy: Automatic backup of existing configurations
  • Error Handling: Robust error handling throughout setup process

πŸ“‹ Prerequisites

  • Windows 10/11
  • PowerShell 5.1+ (PowerShell 7+ recommended)
  • Administrator access (for some package installations)

πŸ› οΈ Quick Start

1. Clone the Repository

git clone https://github.com/lubasinkal/dev-setup.git
cd dev-setup

2. Run the Setup

.\init.ps1

3. Restart Your Terminal

Close and reopen your terminal to load the new configuration.

πŸ“ Repository Structure

dev-setup/
β”œβ”€β”€ init.ps1                    # Main setup script
β”œβ”€β”€ README.md                  # This file
└── configs/
     β”œβ”€β”€ .gitconfig             # Git configuration
     β”œβ”€β”€ .wezterm.lua           # WezTerm configuration
     β”œβ”€β”€ starship.toml          # Starship prompt config
     β”œβ”€β”€ .bashrc                # Bash configuration
     β”œβ”€β”€ alacritty.toml         # Alacritty configuration
     └── Microsoft.PowerShell_profile.ps1  # PowerShell profile

βš™οΈ What Gets Installed

Development Tools

  • Core: Git, GitHub CLI, Make, Unzip, 7zip
  • Editors: Neovim, Zed
  • Languages: Python, Node.js, Go, Rust, Zig
  • Package Managers: Scoop, fnm (Node.js), pnpm, uv (Python)
  • Terminal: WezTerm, Alacritty, PowerShell, Nushell

Productivity Tools

  • File Utils: eza, fd, yazi, bat, delta, imagemagick
  • Search: ripgrep, fzf
  • Git: lazygit
  • Navigation: zoxide
  • System: fastfetch, neofetch
  • Other: aria2, ani-cli

Development Environment

  • Directories: Structured dev directories (personal, work, open-source, etc.)
  • Configuration: All tool configurations automatically applied
  • Aliases: Comprehensive command aliases
  • Environment: Template-based environment setup

🎯 Key Features

Enhanced PowerShell Profile

  • Smart aliases for common operations
  • Project navigation functions
  • Tool integrations (starship, fnm, zoxide)
  • Custom functions for productivity

WezTerm Configuration

  • Custom keybindings for pane management
  • Optimized color scheme and appearance
  • Multiple shell options (PowerShell, Bash, Nushell)
  • Productivity-focused layout

Alacritty Configuration

  • Modern terminal emulator
  • Custom color scheme and appearance
  • Optimized for development workflow

Git Configuration

  • Enhanced aliases for common git operations
  • Delta diff viewer for better diffs
  • Smart merge and rebase settings
  • GPG signing support (optional)

Starship Prompt

  • Custom, informative prompt
  • Git status and branch information
  • Python virtual environment display
  • Clean, minimal design

πŸ“– Usage Guide

Daily Commands

# Navigation
dev personal          # Go to personal dev directory
proj myproject        # Find and jump to project
y                    # Launch yazi file manager

# Git operations
gst                  # Git status
gcm "commit message" # Git commit with message
gp                   # Git push
gl                   # Git pull with rebase

# File operations
ll                   # Detailed file listing
find filename        # Find files
grep pattern         # Search in files

# System info
sysinfo              # Show system information
fastfetch            # Display system stats

Development Workflow

# Start new project
dev personal
mkcd new-project
git init
code .

# Node.js development
fnm install 20
fnm use 20
pnpm install
pnpm dev

# Python development
uv venv
uv pip install -r requirements.txt
uv run python main.py

πŸ”§ Customization

Adding New Packages

Edit init.ps1 and add packages to the appropriate function:

# For Scoop packages
scoop install new-package

# For Winget packages
"NewPackage.NewPackage"

Custom Aliases

Add to configs/Microsoft.PowerShell_profile.ps1:

Set-Alias -Name myalias -Value { your-command }

πŸ”„ Maintenance

Update All Packages

# Update Scoop packages
scoop update *

# Update Winget packages
winget upgrade --all

Backup Configuration

The setup automatically backs up existing configurations. Manual backup:

# Backup current configs
Copy-Item $PROFILE "$PROFILE.bak"
Copy-Item ~/.gitconfig ~/.gitconfig.bak

Reset Configuration

To reset to default configurations:

# Remove current configs
Remove-Item $PROFILE
Remove-Item ~/.gitconfig
Remove-Item ~/.wezterm.lua

# Re-run setup
.\init.ps1

πŸ› Troubleshooting

Common Issues

PowerShell Execution Policy

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Scoop Installation Issues

# Install Scoop manually
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod get.scoop.sh | Invoke-Expression

Git Configuration

# Set your git identity
git config --global user.name "Your Name"
git config --global user.email "your.email@ezample.com"

Path Issues

Restart your terminal or run:

. $PROFILE

Getting Help

  • Review individual config files in configs/
  • Check package documentation for specific tools

πŸ™ Acknowledgments

  • Scoop for Windows package management
  • Starship for the awesome prompt
  • WezTerm for the terminal emulator
  • Neovim for the editor
  • The Windows development community for inspiration and tools

πŸ“ž Support

If you encounter issues or have questions:

  1. Check the troubleshooting section above
  2. Review individual config files in configs/
  3. Open an issue on GitHub with detailed information
  4. Include your Windows version and PowerShell version in bug reports

Happy Coding! πŸŽ‰

About

πŸš€ Quick Windows development environment setup. Installs essential tools (Scoop, Winget apps), custom configs (WezTerm, Starship, Neovim), and developer-friendly defaults with a single PowerShell script. Perfect for bootstrapping a new Windows machine.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors