This repository contains scripts to automate the setup of a development environment in Windows Subsystem for Linux (WSL). The setup includes various tools and configurations commonly used in development workflows.
- Automated WSL installation
- ZSH shell with custom configuration
- Starship prompt with custom theme
- FZF (Command-line fuzzy finder)
- ZSH autosuggestions
- Various development tool configurations (Kubernetes, Docker, Python, Node.js, etc.)
- Automatic sudo privileges configuration
- Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
- Administrator access on your Windows machine
- PowerShell access
- Open PowerShell as Administrator
- Run the installation script:
powershell .\install_wsl.ps1
- Restart your computer when prompted
- Open Ubuntu WSL
- Clone this repository:
bash git clone <repository-url> cd new-setup-configurations
- Make the setup script executable and run it:
bash chmod +x setup_wsl.sh ./setup_wsl.sh
Note: If the script fails to set sudo privileges, manually replace$USER
in the script with your actual username.
- ZSH: Modern shell with enhanced features
- Starship: Cross-shell prompt with Git status integration, Python environment detection, Node.js version display, Kubernetes context, Docker context, and more
- FZF: Command-line fuzzy finder
- ZSH Autosuggestions: Fish-like autosuggestions for ZSH
The setup includes a comprehensive Starship configuration with support for:
- Multiple programming languages (Python, Node.js, etc.)
- Container tools (Docker, Kubernetes)
- Infrastructure tools (Terraform, Helm)
- Git information
- System status
The ZSH configuration includes:
- Command history sharing between sessions
- Kubectl alias (k)
- FZF integration
- Kubectl auto-completion
- Google Cloud SDK integration (if installed)
You can customize the setup by modifying:
~/.config/starship.toml
for Starship prompt settings~/.zshrc
for ZSH configurationssetup_wsl.sh
for installation preferences
-
Sudo Privileges: If the automatic sudo configuration fails:
bash sudo visudo
Then manually add:your_username ALL=(ALL) NOPASSWD: ALL
-
Shell Not Changing: If ZSH doesn't become your default shell:
bash chsh -s $(which zsh)
Feel free to submit issues, fork the repository, and create pull requests for any improvements.
MIT License - Feel free to use this code for your own projects.