An open API service indexing awesome lists of open source software.

https://github.com/toolshive/winfig


https://github.com/toolshive/winfig

Last synced: 9 months ago
JSON representation

Awesome Lists containing this project

README

          

🛠️✨Winfig

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![PowerShell](https://img.shields.io/badge/PowerShell-5.1+-blue.svg?style=for-the-badge)](https://github.com/PowerShell/PowerShell)
[![Chocolatey Compatible](https://img.shields.io/badge/Compatible%20with-Chocolatey-ff69b4.svg?style=for-the-badge)](https://chocolatey.org/)
[![Winget Compatible](https://img.shields.io/badge/Compatible%20with-Winget-228B22.svg?style=for-the-badge)](https://github.com/microsoft/winget-cli)
[![Windows](https://img.shields.io/badge/Windows-10%2B-0078d4.svg?style=for-the-badge)](https://www.microsoft.com/windows)

[![Issues](https://img.shields.io/github/issues/ToolsHive/Winfig.svg?style=flat-square)](https://github.com/ToolsHive/Winfig.git/issues)
[![Pull Requests](https://img.shields.io/github/issues-pr/ToolsHive/Winfig.svg?style=flat-square)](https://github.com/ToolsHive/Winfig.git/pulls)
[![Repo Size](https://img.shields.io/github/repo-size/ToolsHive/Winfig?style=flat-square)](https://github.com/ToolsHive/Winfig.git)
[![Last Commit](https://img.shields.io/github/last-commit/ToolsHive/Winfig?style=flat-square)](https://github.com/ToolsHive/Winfig.git/commits/main)

A small, battle-tested Windows configuration toolkit to bootstrap a developer-friendly environment on a fresh install.

**Highlights**:
- Minimal, well-tested `PowerShell` scripts and settings
- Opinionated defaults for productivity and development
- Modular design for easy customization and extension
- Focus on essential tools and configurations
- Designed for both personal and professional use

## Table of Contents
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Automated Installation](#automated-installation)
- [Bootstrap Script](#bootstrap-script)
- [What the Bootstrap Script Does](#what-the-bootstrap-script-does)
- [Bootstrap Features](#bootstrap-features)
- [Manual Installation](#manual-installation)
- [Post-Deployment Verification](#post-deployment-verification)
- [Safety \& Troubleshooting](#safety--troubleshooting)
- [Contributing](#contributing)
- [Development Workflow](#development-workflow)
- [Contribution Standards](#contribution-standards)
- [License](#license)

## Features
- **Modular Scripts**: Easily customize and extend your setup with modular scripts.
- **Essential Tools**: Focuses on essential tools and configurations for developers.
- **Opinionated Defaults**: Comes with sensible defaults to enhance productivity.
- **Cross-Platform**: While primarily for Windows, it can be adapted for other platforms with minor tweaks.
- **Custom Dotfiles** : Supports custom dotfiles for personalized configurations.
- **Automated Setup**: Automates the installation and configuration of tools and settings.

## Requirements
- Windows 10 or later
- PowerShell 5.1 or later
- Internet connection for downloading packages
- Administrator privileges for certain installations

## Installation

Choose between automated or manual installation methods based on your preference and requirements.

### Automated Installation

The recommended approach using the `bootstrap.ps1` script for a complete hands-off setup experience.

#### Bootstrap Script

The bootstrap script is the main entry point that automates the entire Winfig setup process. It handles environment validation, prerequisite installation, and repository setup.

**Quick Start (Recommended):**
```powershell
# Run directly from the web (requires Administrator privileges)
Invoke-RestMethod -Uri "https://raw.githubusercontent.com/ToolsHive/Winfig/main/bootstrap.ps1" | Invoke-Expression
```

#### What the Bootstrap Script Does

1. **Environment Validation** - Verifies system compatibility and requirements
2. **System Restore Point** - Creates a safety restore point before changes
3. **Package Manager Setup** - Installs and configures Chocolatey and WinGet
4. **Git Installation** - Ensures Git is available for version control
5. **Repository Cloning** - Downloads the complete Winfig configuration to your system

#### Bootstrap Features

- **Comprehensive Logging** - Detailed execution logs for troubleshooting
- **Interactive Prompts** - User confirmation for critical system changes
- **Error Recovery** - Robust error handling and fallback mechanisms
- **Progress Indicators** - Clear visual feedback throughout the process
- **Safety First** - Automatic system restore point creation

### Manual Installation

For users who prefer step-by-step control over the installation process.

1. **Install Prerequisites Manually**
- Install Chocolatey package manager
- Install Windows Package Manager (WinGet)
- Install Git for version control

2. **Download and Run Bootstrap Script**
```powershell
# Download the bootstrap script
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ToolsHive/Winfig/main/bootstrap.ps1" -OutFile "bootstrap.ps1"
```
```powershell
# Run with administrator privileges
.\bootstrap.ps1
```

3. **Follow Interactive Setup**
- The script will clone the repository to the appropriate location
- Follow the prompts for configuration options
- Complete the setup wizard

> **Note**: Even with manual installation, the bootstrap script handles repository cloning and setup. You only need to manually install the prerequisites first.

## Post-Deployment Verification

1. **Configuration Wizard** - Complete the guided setup process
2. **System Integration** - Restart system to initialize all components
3. **Operational Validation** - Execute diagnostic verification procedures

> **Administrative Requirements**: Elevated PowerShell privileges required for proper installation.

## Safety & Troubleshooting

- Backup important config files before running. Testing in a VM is recommended.
- If you encounter repeated elevation prompts when using the iwr|iex one-liner, manually run the downloaded script from an elevated PowerShell window.
- If you get parser/encoding errors after download, ensure the file is saved in UTF-8 and hasn't been edited in a way that breaks quoted strings or backtick line continuations.
- If package manager installs fail, install the package manager (winget/choco) manually and re-run the script.

## Contributing

Professional contributions are welcomed from the development community.

### Development Workflow

1. **Repository Fork** - Create independent development branch
2. **Feature Development** - Implement changes in isolated branch (`git checkout -b feature/enhancement`)
3. **Code Commitment** - Document changes with descriptive commit messages
4. **Branch Publication** - Push feature branch to forked repository
5. **Pull Request Submission** - Submit formal code review request

### Contribution Standards

- **Issue Reporting** - Utilize standardized issue templates for consistency
- **Enhancement Proposals** - Engage in architectural discussions prior to implementation
- **Documentation** - Maintain comprehensive documentation standards
- **Quality Assurance** - Implement comprehensive testing for new functionality

## License
This project is distributed under the [**MIT License**](LICENSE) © 2025 Armoghan-ul-Mohmin