!MacOS Preview !Windows Preview
Development Setup (Windows & macOS)
A complete automation system for setting up and managing your developer workstation on Windows and macOS. This repository provides everything you need to configure your development environment, manage applications, automate daily tasks, and optimize your workflow.
Recommendation
I don't want everyone to copy this entire repo and use it because it is my own opinionated setup, not something for everyone. I recommend checking this repo, taking ideas from it, and implementing them in a way that fulfills your own requirements.
Features & Capabilities
- Windows System Configuration
- macOS System Configuration
- Application Management
- Enhanced Shell Experience
- Git Workflow Tools
- Smart Slack Integration
- Automated Startup Tasks
- Code Editor Setup
Getting Started
Prerequisites
Before you begin, make sure you have:
- Windows 10/11 or macOS installed
- Git installed (to clone the repository)
- Go installed (version specified in
go.mod) - MSYS2 (Windows, optional for Bash/Fish) or Homebrew (macOS)
- Scoop (Windows package tools)
Installation Guide
Follow these steps to set up your development environment:
- Clone the Repository
git clone https://github.com/NazmusSayad/.dotfiles.git
cd .dotfiles
- Initial Setup
__install-dotfiles.cmd and select "Run as Administrator".
- macOS: Run __setup-macos.sh after reviewing it, or bootstrap via Homebrew + config (see config/Brewfile and shell configs).
This will set up the dotfiles directory and add tools to your PATH.
- Build All Utilities
__compile.sh. On Windows, run it from Bash/MSYS2. This creates the executable tools for daily use.
- Configure Your Environment
__install-config.cmd (Windows) or __setup-macos.sh (macOS/Linux) to set up:
- Git configuration (name, email, default settings)
- Symbolic links for configuration files
- Scheduled tasks / launch agents for automatic startup
- Shells and development tools
- Go environment variables
- Optional: Platform System Configuration
__setup-windows.cmd as Administrator to apply system settings, remove bloatware, disable services, and optimize performance (restarts automatically).
- Windows 10: Run __setup-windows-10.cmd as Administrator instead. It uses the Windows 10 specific scripts in src/ps1-windows-10/.
- macOS: Run __setup-macos.sh after reviewing it, and use Homebrew to provision packages from config/Brewfile.
- Optional: Additional Setup
__compile-ahk.cmd, __install-code.cmd
- macOS: review config/Brewfile, __setup-macos.sh, and shell configs
Using the Tools
For Ubuntu WSL and the browser shell at sh.sayad.dev, see the WSL setup and workflow guide.
Once installed, you can use these commands from anywhere in your terminal:
Package Management:
packages-sync/psy- Sync configured packageswinget-install/wgi- Install configured Winget applications (Windows)winget-upgrade/wgu- Update configured Winget applications (Windows)scoop-install- Install configured Scoop packages (Windows)
git-clone/gcl- Clone repositories (supports GitHub shorthand)git-pull/gp- Quick git pullgit-pull-all/gpa- Pull all repositories in a workspacegpr- Pull changes with rebasegpm- Pull changes with merge
Slack Management:
slack-status/ss- Change Slack auto-start behavior (Always/Work Hours/Disabled)- Slack will automatically start/stop based on your configured work schedule
config-init- Recreate all configuration file symlinksmsys-init- Set up MSYS2 development environment (Windows)windows-startup- Run configured Windows startup tasks
Customization
Most user settings live under config/. Update the relevant config files, then re-run the platform install-config step to refresh links, scheduled tasks/launch agents, shortcuts, and environment settings.
Common files to edit:
config/apps.yaml- Applications and packages to install (Windows Winget/Scoop/MSYS2)config/Brewfile- Packages to install (macOS Homebrew)config/symlink.yml- Config files linked into your systemconfig/slack-status.yml- Slack startup scheduleconfig/shell/- Shell aliases, prompt, and terminal settingsconfig/vscode/- VS Code settings, keybindings, extensions, snippets, and synced state
⚠️ Important Notes
- Review Before Running: The Windows setup scripts (
src/ps1-windows/,src/ps1-windows-10/) will modify system settings and remove default Windows applications. Please review these scripts before running__setup-windows.cmd/__setup-windows-10.cmdto ensure they match your preferences.
- Administrator Rights: Some Windows scripts require administrator privileges. macOS scripts may prompt for your password via sudo.
- Backup First: Consider backing up important data before running system modification scripts.