https://github.com/lubasinkal/dev-setup
🚀 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.
https://github.com/lubasinkal/dev-setup
powershell scoop setup starship wezterm-config
Last synced: about 1 month ago
JSON representation
🚀 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.
- Host: GitHub
- URL: https://github.com/lubasinkal/dev-setup
- Owner: lubasinkal
- Created: 2025-05-25T17:53:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-02-16T05:08:01.000Z (4 months ago)
- Last Synced: 2026-02-16T12:53:22.896Z (4 months ago)
- Topics: powershell, scoop, setup, starship, wezterm-config
- Language: PowerShell
- Homepage:
- Size: 84 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
```powershell
git clone https://github.com/lubasinkal/dev-setup.git
cd dev-setup
```
### 2. Run the Setup
```powershell
.\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
```powershell
# 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
```powershell
# 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:
```powershell
# For Scoop packages
scoop install new-package
# For Winget packages
"NewPackage.NewPackage"
```
### Custom Aliases
Add to `configs/Microsoft.PowerShell_profile.ps1`:
```powershell
Set-Alias -Name myalias -Value { your-command }
```
## 🔄 Maintenance
### Update All Packages
```powershell
# Update Scoop packages
scoop update *
# Update Winget packages
winget upgrade --all
```
### Backup Configuration
The setup automatically backs up existing configurations. Manual backup:
```powershell
# Backup current configs
Copy-Item $PROFILE "$PROFILE.bak"
Copy-Item ~/.gitconfig ~/.gitconfig.bak
```
### Reset Configuration
To reset to default configurations:
```powershell
# Remove current configs
Remove-Item $PROFILE
Remove-Item ~/.gitconfig
Remove-Item ~/.wezterm.lua
# Re-run setup
.\init.ps1
```
## 🐛 Troubleshooting
### Common Issues
#### PowerShell Execution Policy
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
#### Scoop Installation Issues
```powershell
# Install Scoop manually
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod get.scoop.sh | Invoke-Expression
```
#### Git Configuration
```powershell
# 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:
```powershell
. $PROFILE
```
### Getting Help
- Review individual config files in `configs/`
- Check package documentation for specific tools
## 🙏 Acknowledgments
- [Scoop](https://scoop.sh/) for Windows package management
- [Starship](https://starship.rs/) for the awesome prompt
- [WezTerm](https://wezfurlong.org/wezterm/) for the terminal emulator
- [Neovim](https://neovim.io/) 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! 🎉**