A modular configuration bank for building reproducible development environments across platforms.
This repository provides automated setup scripts and dotfiles for macOS, Ubuntu Server, and Windows, enabling consistent development environments with a single command.
Bootstrap your entire development environment with one command:
curl -fsSL https://raw.githubusercontent.com/ZiedYousfi/myconfig/main/bootstrap.sh | bash -s -- macoscurl -fsSL https://raw.githubusercontent.com/ZiedYousfi/myconfig/main/bootstrap.sh | bash -s -- ubuntupowershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/ZiedYousfi/myconfig/main/bootstrap.ps1 | iex"/!\ This does not work on Windows. Use the Windows command above instead.
curl -fsSL https://raw.githubusercontent.com/ZiedYousfi/myconfig/main/bootstrap.sh | bashThe bootstrap script will:
- Download the latest release
- Extract all configuration files
- Run the appropriate platform installer
- Set up dotfiles using GNU Stow (macOS/Ubuntu) or copy to Windows locations
- Install all necessary tools and packages
- Shell: Zsh with Oh My Zsh
- Terminal: Ghostty
- Editor: Neovim with full configuration
- Multiplexer: Tmux
- File Manager: Yazi
- Code Editor: Zed
- CLI Tools: fzf, ripgrep, bat, eza, fd, and more
- Homebrew packages
- Window manager: Yabai
- Status bar: SketchyBar
- macOS system preferences
- Homebrew for Linux
- Server-optimized tooling
- Systemd service configurations
- Winget packages
- Window manager: GlazeWM
- Status bar: Zebar (Monokai theme)
- WSL Ubuntu integration (if installed)
If you prefer to inspect before running:
# Clone the repository
git clone https://github.com/ZiedYousfi/myconfig.git
cd myconfig
# Run the appropriate install script
./macos/install.sh # For macOS
./ubuntu-server/install.sh # For Ubuntu Server
./windows/install.ps1 # For Windows (PowerShell)dotfiles/
├── ghostty/ # Terminal emulator config
├── nvim/ # Neovim configuration
├── tmux/ # Tmux configuration
├── yazi/ # File manager config
├── zed/ # Zed editor config
└── zsh/ # Zsh and Oh My Zsh config
To create a new release and trigger the packaging workflow:
# Tag a new version
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0Or manually trigger via GitHub Actions:
- Go to Actions tab
- Select "Create Release" workflow
- Click "Run workflow"
- Enter a tag name (e.g., v1.0.0)
- Idempotent: Safe to run multiple times without side effects
- Modular: Shared dotfiles with platform-specific additions
- Automated: Installs all dependencies and tools
- Documented: Full specifications in SPECS.md
- Backed Up: Automatically backs up existing configurations
Each platform has an uninstall script:
./macos/uninstall.sh # macOS
./ubuntu-server/uninstall.sh # Ubuntu Server
./windows/uninstall.ps1 # Windows (PowerShell)See SPECS.md for complete configuration specifications and details about all installed components.
Minimal requirements - the bootstrap script handles everything else:
macOS/Ubuntu:
curl- for downloadingunzip- for extracting archives- Internet connection
Windows:
- PowerShell 7+ (pre-installed on Windows 10/11)
- Winget (pre-installed on Windows 10 1709+)
- Internet connection
MIT License - see LICENSE file for details
Contributions are welcome! Please feel free to submit a Pull Request.