An automated setup script for fresh Ubuntu 24.04 installations. This tool helps you quickly set up your Ubuntu system with your preferred software and configurations.
YOU DO NOT NEED TO CLONE THIS REPOSITORY! USE THE FOLLOWING CURL COMMANDS TO INSTALLATIONS
- 🛠️🔄 With this public script you can install custom software in you Linux distribution based on Debian (Ubuntu Recomended)
- Ubuntu >= 24.04 LTS
- Root/sudo privileges
- Internet connection
Execute his command to use de Pimp My Ubuntu main menu.
curl -fsSL https://raw.github.com/Multitec-UA/pimp_my_ubuntu/refs/tags/v0.1.0/src/main.sh | sudo bashInstall ZSH, Oh-My-Zsh, plugins (autosuggestions, syntax-highlighting), Powerlevel10k theme and Meslo Nerd Fonts.
curl -fsSL https://raw.github.com/Multitec-UA/pimp_my_ubuntu/refs/tags/v0.1.0/src/procedures/zsh/zsh.sh | sudo bashDownload cursor, install appimaged and add cursor command to bashrc and zshrc
curl -fsSL https://raw.github.com/Multitec-UA/pimp_my_ubuntu/refs/tags/v0.1.0/src/procedures/cursor/cursor.sh | sudo bashUpdate Grub, install grub-customizer and add theme.
curl -fsSL https://raw.github.com/Multitec-UA/pimp_my_ubuntu/refs/tags/v0.1.0/src/procedures/grub-customizer/grub-customizer.sh | sudo bashView detailed Grub Customizer readme
You can enable debug mode by setting the DEBUG environment variable to true when running any of the installation commands. This will:
- Display all detailed DEBUG log messages in the terminal
- Skip the welcome screen for faster access to installation options
- Extend timeout periods for key presses from 10 seconds to 600 seconds (10 minutes)
- Continue to write all logs to
/var/log/pimp_my_ubuntu/install.log
To run the main menu in debug mode:
curl -fsSL https://raw.github.com/Multitec-UA/pimp_my_ubuntu/refs/tags/v0.1.0/src/main.sh | sudo -E DEBUG=true bashTo install individual software in debug mode (example with ZSH):
curl -fsSL https://raw.github.com/Multitec-UA/pimp_my_ubuntu/refs/tags/v0.1.0/src/procedures/zsh/zsh.sh | sudo -E DEBUG=true bashThe -E flag for sudo preserves environment variables when executing the command as root.
If you've cloned the repository and want to run scripts using your local files instead of downloading them from GitHub, you can use the LOCAL=true option:
# Clone the repository first
git clone https://github.com/Multitec-UA/pimp_my_ubuntu.git
cd pimp_my_ubuntu
# Run with local libraries
sudo LOCAL=true DEBUG=true bash ./src/main.shWhen LOCAL=true is set:
- The script will use library files from your local
./src/libs/directory - Changes you make to the local files will be used during execution
- This is especially useful for development and testing your contributions
- You can combine with DEBUG mode:
sudo -E LOCAL=true DEBUG=true bash ./src/main.sh
pimp_my_ubuntu/
├── src/
│ ├── main.sh # Main installation script
│ ├── procedures/ # Installation procedures
│ │ └── template.sh # Template for new procedures
│ └── dependencies/ # Common dependencies
│ └── utils.sh # Utility functions
└── README.md # This file
- Copy the template from
src/procedures/template.sh - Create a new script in
src/procedures/for your software - Implement the required functions:
check_dependencies()check_if_installed()prepare_installation()install_software()post_install()
Example:
cp src/procedures/template.sh src/procedures/my_software.sh
chmod +x src/procedures/my_software.sh
# Edit my_software.sh with your installation logicAll installation logs are stored in /var/log/pimp_my_ubuntu/install.log
During installation, procedures are marked with the following status indicators:
| Symbol | Status | Description |
|---|---|---|
| ⚙ | INIT | Procedure has been initialized but not yet started |
| ⧖ | PENDING | Procedure is selected for installation but not yet executed |
| ✓ | SUCCESS | Procedure completed successfully |
| ✗ | FAILED | Procedure failed to complete |
| ⏭ | SKIPPED | Procedure skipped because software is already installed |
- Fork the repository
- Create a new branch for your feature
- Commit your changes
- Push to your branch
- Create a Pull Request
MIT License - See LICENSE file for details
- GitHub Issues: Report a bug
- Pull Requests: Submit a PR
- Multitec-UA Team with ❤️