Easily bootstrap your Ubuntu environment with a beautiful interactive menu and script automation. Install your favorite tools, set global aliases, and even uninstall them later — all with a single command.
- ✅ Install apps with an interactive checklist menu
- 🌍 Option to make the setup globally accessible via the setupcommand
- 🧼 Uninstall any installed app from a similar interactive menu
- 🛠️ Scripts are modular and easy to extend (apps/folder)
- 🧙♂️ Custom aliases are linked automatically when using ZSH
- 🧾 All actions are logged in install.log
git clone https://github.com/michelpl/linux-dev-environment.git
cd linux-dev-environment/ubuntu
chmod +x setup.sh./setup.shYou'll see a terminal menu where you can:
- Select which apps to install (e.g., Chrome, VSCode, Postman, etc.)
- Enable the Global option to run this script from anywhere as setup
- Choose to enter the Uninstall menu
If you selected the Global option, you can now use:
setup        # opens the install menu
setup uninstall  # opens the uninstall menuYou can uninstall apps at any time:
setup uninstallYou’ll be presented with a checklist of all installed apps (with uninstall scripts) and the option to remove the global setup command.
linux-dev-environment/Ubuntu
├── setup.sh               # Main entry point
├── apps/
│   ├── chrome.sh          # App install scripts
│   ├── vscode.sh
│   └── uninstall/
│       ├── chrome-uninstall.sh
│       └── vscode-uninstall.sh
├── configs/
│   └── aliases.zsh        # Custom aliases
└── install.log            # Logs of all actions
Want to add a new app or improve the setup? Contributions are welcome!
- Create an install script inside apps/:apps/mytool.sh 
- (Optional) Create a matching uninstall script:
apps/uninstall/mytool-uninstall.sh 
- Your app will automatically appear in the setup and uninstall menus.
- Open a Pull Request with your changes!
See CONTRIBUTING.md for more details.
- To install an app:
./setup.sh i <appname> # or, if globally installed: setup i <appname> 
- To uninstall an app:
./setup.sh u <appname> # or, if globally installed: setup u <appname> 
- To use the interactive menu:
./setup.sh # or setup
- Ubuntu (tested on 24.04+)
- whiptail(- sudo apt install whiptail)
- Internet connection
- Permissions to install packages (sudo)
Made for devs who hate setting things up manually.

