A modern, emoji‑rich terminal toolkit that installs any Linux software in seconds. Just pick what you need, queue it up, and let the script handle the rest.
LinuxSetup CLI is a professional shell script that brings the power of a huge curated software catalogue right into your terminal. It automatically detects your distribution, architecture, and available package managers (apt, snap, flatpak, …) to install software in the most compatible way. No more googling package names – just choose from a well‑organised menu and let the tool do the heavy lifting.
- 🚀 Blazing‑fast installation – queue as many apps as you like, then install them all in one go.
- 🧠 Smart detection – auto‑detects your distro, package manager, snap/flatpak support, and even warns about compatibility.
- 🗂️ 20 curated categories – Browsers, Development, Gaming, Office, Security, and many more (over 150 apps pre‑defined, with room for 500+).
- 🎨 Beautiful, modern UI – emojis, colours, and clean layouts make the terminal fun to use.
- 🌍 Cross‑distro support – works on Ubuntu, Debian, Fedora, Arch, openSUSE, and others.
- 💡 Custom search – can’t find what you need? Search the whole repository and add any package instantly.
| 🏷️ No. | Category | 📖 Description |
|---|---|---|
| 01 | 🌐 Web Browsers | Internet browsers for web surfing |
| 02 | 💬 Communication | Messaging, chat and video calling apps |
| 03 | 💻 Development Tools | Programming, coding and development environments |
| 04 | 🎵 Media & Entertainment | Music, video players and media apps |
| 05 | 🔧 System Utilities | System maintenance and optimisation tools |
| 06 | 📊 Office & Productivity | Office suites and productivity apps |
| 07 | 🔒 Security & Privacy | Antivirus, VPN and security software |
| 08 | 🎨 Graphics & Design | Photo editing, design and 3D modelling |
| 09 | 🎮 Gaming Platforms | Game launchers and gaming platforms |
| 10 | 🌐 Networking Tools | Network utilities, FTP and remote access |
| 11 | 🗄️ Database Tools | Database management and development |
| 12 | 💾 Backup & Recovery | Data backup and recovery solutions |
| 13 | 📚 Education & Learning | Educational and learning software |
| 14 | 🖥️ Virtualization | Virtual machines and container platforms |
| 15 | 📝 Languages & Runtimes | Programming language runtimes/compilers |
| 16 | 🎥 Video Production | Video editing and production software |
| 17 | 🎵 Audio Production | Audio editing and music production |
| 18 | ⚙️ Utilities & Tweaks | System utilities and tweaking tools |
| 19 | 💼 Business Tools | Business and finance applications |
| 20 | 🔍 Custom Search & Install | Search and install any software by name |
Each category holds 10 hand‑picked applications (150+ total) with their correct package names for apt, snap, or flatpak.
git clone https://github.com/mmizan85/LinuxSetup.git
cd LinuxSetupwget https://raw.githubusercontent.com/mmizan85/LinuxSetup/main/LinuxSetup.shchmod +x LinuxSetup./LinuxSetupNote: Some installations will ask for your password (sudo). The script will prompt you when needed.
The interface is self‑explanatory, but here’s a quick walk‑through:
-
Main Menu – pick a category by entering its number (01‑20).
-
Submenu – choose any software by its 3‑digit code.
-
Press the same code again to remove it from the queue.
-
Queued items show a 📌 icon.
- Special commands inside a category:
-
99– start installing everything in the queue. -
C– clear the queue. -
0– go back to the main menu. -
S(in category 20) – open the Custom Search.
- Installation – the script will loop through your queue, check compatibility, and install each package one by one. A summary is shown at the end.
User: ./linuxsetup.sh
→ selects 03 (Development Tools)
→ selects 001 (Visual Studio Code) → 📌 QUEUED
→ selects 004 (Git) → 📌 QUEUED
→ presses 99 → installation begins
The script automatically adapts to your system:
-
Distro detection: Ubuntu/Debian, Fedora/RHEL, Arch, openSUSE, and derivatives.
-
Package managers: apt, dnf, yum, pacman, zypper.
-
Alternatives: Falls back to Snap or Flatpak if the native package isn’t available.
-
Architecture: warns if a package doesn’t support your CPU architecture (e.g., x86_64, aarch64).
If an installation requires a paid license, you’ll see a friendly notice.
Forgot a tool? Category 20 opens an interactive search prompt:
-
Type a keyword (e.g., markdown, torrent, python IDE).
-
The script searches your package manager’s repository and shows matching results.
-
If you know the exact package name, you can add it directly to the queue.
This way, you’re never limited to the built‑in catalogue.
The script is modular and easy to extend. Inside the file, each application is defined like this:
add_app "05" "002" "unrar|unRAR|apt:unrar|Free|any|any|"You can add hundreds more by following the same pattern (category number, item number, pipe‑separated fields). The fields are:
Field Meaning
- ID Short identifier (e.g.,
unrar) - Name Human‑readable name (
unRAR) - Methods
method:pkg,method:pkg,…(apt, snap, flatpak, custom) - License Free, Paid, Freemium, Trial
- Arch Supported arch (
x86_64,any) - Distro Compatible distro (
any,debian,ubuntu) - Extra Additional info (optional)
The script will automatically pick the best installation method based on your system.
Contributions are very welcome! If you want to add more categories, apps, or improve the detection logic:
-
Fork the repository.
-
reate a feature branch: git checkout -b feature/awesome-app
-
Commit your changes: git commit -m 'Add awesome app'
-
Push to the branch: git push origin feature/awesome-app
-
Open a Pull Request.
Please keep the emoji‑based UI style and test on at least two distributions.
This project is licensed under the MIT License – see the LICENSE file for details.
If you found this project helpful, give it a ⭐ on GitHub and share it with your friends!
Made with ❤️ by Mohammad Mizan
For the open‑source community