construct config in windows development kit
Find a file
2025-11-28 09:00:00 +08:00
git feat: add comprehensive Git configuration 2025-12-11 18:58:30 +08:00
powershell feat: enhance oh-my-posh theme with additional segments 2025-12-11 18:58:30 +08:00
scoop refactor: convert to Unix style 2025-12-11 18:58:31 +08:00
tmux updated tmux keybinding 2025-06-25 11:16:02 +08:00
windows-terminal feat: add Windows Terminal configuration 2025-12-11 18:58:30 +08:00
backup.ps1 refactor: convert to Unix style 2025-12-11 18:58:31 +08:00
LICENSE Initial commit 2025-01-25 13:32:13 +08:00
README.md refactor: convert to Unix style 2025-12-11 18:58:31 +08:00
restore.ps1 refactor: convert to Unix style 2025-12-11 18:58:31 +08:00
setup.ps1 refactor: convert to Unix style 2025-12-11 18:58:31 +08:00
TROUBLESHOOTING.md docs: add comprehensive documentation 2025-12-11 18:58:31 +08:00
uninstall.ps1 refactor: convert to Unix style 2025-12-11 18:58:31 +08:00

winfig

Comprehensive Windows development environment configuration toolkit

Winfig is a curated collection of configurations, scripts, and utilities designed to transform your Windows terminal into a powerful, efficient development environment. Optimized for Windows Terminal, PowerShell, and modern development workflows.

Features

  • Performance Optimized PowerShell - Lazy loading modules for faster startup
  • Terminal Theme - Custom Oh-My-Posh configuration with context awareness
  • Comprehensive Utilities - 40+ helper functions for faster workflow
  • Package Management - Curated Scoop package lists with automated installation
  • Git Configuration - Extensive aliases and optimized settings
  • Windows Terminal Settings - Custom profiles, keybindings, and color schemes
  • Backup & Restore - Easy configuration backup and migration
  • Automated Setup - One-command installation with smart defaults

Quick Start

1. Install Prerequisites

# Install Scoop (package manager)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex

# Install essential tools
scoop install git pwsh oh-my-posh

2. Clone Repository

git clone https://github.com/m1ngsama/winfig.git
cd winfig

3. Run Setup

# Automated setup (recommended)
.\setup.ps1

# Or manual setup for specific components
.\setup.ps1 -SkipScoop         # Skip Scoop setup
.\setup.ps1 -SkipGit           # Skip Git configuration
.\setup.ps1 -SkipPowerShell    # Skip PowerShell profile
.\setup.ps1 -SkipTerminal      # Skip Windows Terminal settings

4. Install Packages

# Install all recommended packages
cd scoop
.\install-packages.ps1

# Or install specific categories
.\install-packages.ps1 -Category essentials
.\install-packages.ps1 -Category development

5. Restart Terminal

Close and reopen your terminal to see the changes.

Components

PowerShell Profile

Location: powershell/user_profile.ps1

Features:

  • Lazy loading for faster startup (50%+ improvement)
  • Enhanced PSReadLine with ListView predictions
  • 40+ utility functions and aliases
  • Git integration with shortcuts
  • Network and system utilities

Quick Functions:

# Directory navigation
..          # Up one level
...         # Up two levels
docs        # Jump to Documents
proj        # Jump to Projects
mkcd dir    # Create and enter directory

# Git shortcuts
gs          # git status
ga file     # git add
gc "msg"    # git commit
gp          # git push
glog        # Beautiful git log

# System utilities
reload      # Reload PowerShell profile
touch file  # Create new file
which cmd   # Find command location
c           # Open VS Code in current directory

Oh-My-Posh Theme

Location: powershell/m1ng.omp.json

Features:

  • Modern powerline design
  • Git status integration
  • Node.js, Python, Go, Docker indicators
  • Execution time display (500ms+ threshold)
  • Time display
  • Root/admin indicator

Windows Terminal

Location: windows-terminal/settings.json

Features:

  • Optimized for CaskaydiaCove Nerd Font
  • Custom color schemes (One Half Dark, Dracula)
  • Vim-inspired pane management keybindings
  • Profiles for PowerShell, CMD, WSL, Azure Cloud Shell
  • Performance optimizations

Key Bindings:

  • Alt+Shift+D - Duplicate pane
  • Alt+Shift+- - Split horizontally
  • Alt+Shift+| - Split vertically
  • Alt+Arrow Keys - Navigate panes
  • Ctrl+Shift+F - Find
  • Alt+Enter - Fullscreen

Git Configuration

Location: git/.gitconfig

Features:

  • 30+ useful aliases
  • Histogram diff algorithm
  • Auto-stash before rebase
  • Auto-prune deleted branches
  • Auto-correct typos
  • Global gitignore

Useful Aliases:

git lg          # Beautiful graph log
git sync        # Fetch and rebase
git cleanup     # Delete merged branches
git wip         # Quick WIP commit
git unwip       # Undo WIP commit
git aliases     # List all aliases

Scoop Packages

Location: scoop/packages.json

Categories:

  • Essentials: git, 7zip, curl, wget, grep, sed
  • Shells: pwsh, oh-my-posh
  • Terminal: windows-terminal, wezterm
  • Editors: neovim, vscode
  • Development: nodejs, python, go, rust
  • Tools: fzf, ripgrep, bat, lazygit, delta
  • Databases: postgresql, redis, mysql
  • Cloud: aws-cli, azure-cli, terraform
  • Fonts: Nerd Fonts (CascadiaCode, FiraCode, JetBrainsMono)
  • Utilities: everything, quicklook, powertoys

Tmux Configuration

Location: tmux/

Features:

  • Custom prefix key (Ctrl+T)
  • Vim-style navigation
  • Custom theme and statusline
  • macOS-specific optimizations
  • Useful utility keybindings

Advanced Usage

Backup Current Configuration

# Create backup
.\backup.ps1

# Backup with Scoop packages
.\backup.ps1 -IncludeScoopPackages

# Compressed backup
.\backup.ps1 -Compress

Restore from Backup

# Restore configurations
.\restore.ps1 -BackupPath ".\backups\backup-20241201-120000"

# Restore with Scoop packages
.\restore.ps1 -BackupPath ".\backups\backup.zip" -RestoreScoopPackages

# Force restore (no backup of existing)
.\restore.ps1 -BackupPath ".\backups\backup.zip" -Force

Export Scoop Packages

cd scoop
.\export-packages.ps1

Creates installed-packages.json with your current setup.

Uninstall

# Safe uninstall (backups configs)
.\uninstall.ps1

# Remove modules too
.\uninstall.ps1 -RemoveModules

# Force remove (no backups)
.\uninstall.ps1 -Force

Customization

PowerShell Profile

Edit powershell/user_profile.ps1 to add your own functions and aliases.

Oh-My-Posh Theme

Customize powershell/m1ng.omp.json or create your own theme:

# Browse themes
Get-PoshThemes

# Set different theme
oh-my-posh init pwsh --config ~/theme.omp.json | Invoke-Expression

Git Configuration

Edit git/.gitconfig or override specific settings:

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

Windows Terminal

Customize windows-terminal/settings.json for your preferences:

  • Change color scheme
  • Modify keybindings
  • Add custom profiles
  • Adjust font and appearance

Requirements

Minimum Requirements

  • Windows 10/11
  • PowerShell 7+ (PowerShell Core)
  • Windows Terminal (recommended)
  • Scoop package manager
  • Git for Windows
  • Oh-My-Posh
  • Nerd Font (CaskaydiaCove, FiraCode, or JetBrainsMono)

Optional Tools

  • WSL2 (for tmux configuration)
  • Docker Desktop
  • VS Code

Troubleshooting

PowerShell Profile Not Loading

Check execution policy:

Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Oh-My-Posh Not Working

Install Oh-My-Posh and fonts:

scoop install oh-my-posh
scoop bucket add nerd-fonts
scoop install CascadiaCode-NF

Set font in Windows Terminal settings.

Modules Not Found

Install required PowerShell modules:

Install-Module posh-git -Scope CurrentUser
Install-Module Terminal-Icons -Scope CurrentUser
Install-Module PSFzf -Scope CurrentUser

Git Config Not Applied

Manually copy configuration:

Copy-Item git\.gitconfig ~\.gitconfig
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

Terminal Icons Not Showing

  1. Install a Nerd Font:

    scoop bucket add nerd-fonts
    scoop install CascadiaCode-NF
    
  2. Set font in Windows Terminal:

    • Open Settings (Ctrl+,)
    • Appearance -> Font face -> CaskaydiaCove Nerd Font

Project Structure

winfig/
|-- powershell/
|   |-- user_profile.ps1
|   `-- m1ng.omp.json
|-- windows-terminal/
|   |-- settings.json
|   `-- README.md
|-- git/
|   |-- .gitconfig
|   |-- .gitignore_global
|   `-- README.md
|-- scoop/
|   |-- packages.json
|   |-- install-packages.ps1
|   |-- export-packages.ps1
|   `-- README.md
|-- tmux/
|   |-- tmux.conf
|   |-- theme.conf
|   |-- statusline.conf
|   |-- utility.conf
|   `-- macos.conf
|-- setup.ps1
|-- uninstall.ps1
|-- backup.ps1
|-- restore.ps1
`-- README.md

Tips & Tricks

Faster Scoop Downloads

scoop install aria2
scoop config aria2-enabled true

Update Everything

# Update Scoop packages
scoop update *

# Update PowerShell modules
Update-Module

# Update Oh-My-Posh
scoop update oh-my-posh

Clean Up

# Remove old Scoop versions
scoop cleanup *

# Clear Scoop cache
scoop cache rm *

# Remove temp files
Remove-Item $env:TEMP\* -Recurse -Force -ErrorAction SilentlyContinue

Keyboard Maestro

Combine winfig with keyboard launchers:

  • Keypirinha - Fast launcher (included in Scoop packages)
  • PowerToys Run - Microsoft's launcher
  • Everything - Fast file search

Contributing

Contributions welcome! Feel free to:

  • Report bugs
  • Suggest features
  • Submit pull requests
  • Share your customizations

License

MIT License - See LICENSE file for details

Acknowledgments

Author

m1ngsama GitHub: @m1ngsama (https://github.com/m1ngsama)