Package Manager
Modularitea’s package management system takes a profile-based approach to software installation. Instead of searching for individual packages, you install curated software profiles — pre-configured bundles of packages and services designed for specific use cases.
App Store (Profile Installer)
Browsing Profiles
When you open Modularitea, the Home page displays all available software profiles in a grid layout. Each profile card shows:
- The profile name and description
- The category (e.g.,
development,multimedia,gaming) - The number of packages included
- A preview of the included package names
You can visually scan the grid to find profiles that match your needs.
Available Profile Categories
TeaLinuxOS ships with 28 pre-built profiles across the following categories:
| Category | Example Profiles | Description |
|---|---|---|
| Development | Developer Essentials, JavaScript, PHP, Python, C++/Java, Go/Rust | Programming languages, tools, and frameworks |
| DevOps | Container, Kubernetes & Cloud, Virtualization | Docker, Podman, k8s tools, VirtualBox, QEMU |
| Data & AI | Data Science, AI Pack | Jupyter, R, Python ML libraries |
| Design | Design | Inkscape, GIMP, and UI/UX tools |
| Multimedia | Multimedia, Audio & Video | Media players, editors, and recording tools |
| Networking | Network & Security, Internet | Security tools, browsers, communication apps |
| Productivity | Office, Student & Teacher | LibreOffice, educational tools |
| System | Backup & Optimization, Utility & Driver | System maintenance and hardware support |
| Gaming | Gaming | Steam, Lutris, and gaming utilities |
| Other | Fonts, Islamic Education, Mobile, Embedded & IoT | Specialized tool collections |
Viewing Profile Details
Click on a profile card to see its full details, including:
- Complete package list — All official repository packages that will be installed
- AUR packages — Community packages from the Arch User Repository
- Services — Systemd services that will be enabled after installation
Installing a Profile
To install a software profile:
- Find the profile you want on the Home page.
- Click the Install button on the profile card.
- Authenticate — A PolicyKit dialog will appear asking for your administrator password.
- Wait for completion — The profile card will show a loading animation during installation.
- Verify — Once complete, a success notification will confirm the installation.
During installation, Modularitea:
- Updates the package database (
pacman -Sy). - Installs all official packages (
pacman -S <packages>). - Enables any required systemd services (
systemctl enable <service>). - Reports the result back to the UI.
Note: AUR packages are currently listed in profiles but their automatic installation is a work in progress. A warning will appear for profiles containing AUR packages.
Removing a Profile
To uninstall a previously installed profile:
- Navigate to the profile’s detail view.
- Click the Uninstall button.
- Authenticate with your administrator password.
- Modularitea will remove the profile’s packages and disable its services.
Important: When removing a profile, Modularitea uses
pacman -Rby default. If a package is a dependency of another installed package, it will be skipped to prevent system breakage. Theforceoption (pacman -Rdd) is available but should be used with caution.
Updating Packages
To update all installed packages on your system:
- Navigate to the Settings page.
- Use the system update functionality (see Maintenance for details).
Modularitea uses pacman -Syu to perform a full system upgrade, which updates all installed packages — including those installed through profiles.
Package Management Operations
Behind the scenes, Modularitea provides the following package management commands through its Tauri backend:
| Operation | Backend Command | Description |
|---|---|---|
| Install packages | pkexec pacman -S --noconfirm <packages> | Install one or more packages |
| Remove packages | pkexec pacman -R --noconfirm <packages> | Remove packages (respects dependencies) |
| Force remove | pkexec pacman -Rdd --noconfirm <packages> | Remove packages (ignores dependencies) |
| Update database | pkexec pacman -Sy | Synchronize the package database |
| Check installed | pacman -Q <package> | Check if a package is installed |
| Install profile | Install packages + enable services | Full profile installation workflow |
| Uninstall profile | Remove packages + disable services | Full profile removal workflow |
Integration with pacman
Modularitea is a frontend for pacman — the standard Arch Linux package manager. It does not replace pacman or use a separate package database. This means:
- Packages installed via Modularitea are visible in
pacman— You can runpacman -Qto see them. - Packages installed via terminal are visible in Modularitea — The profile system checks installed packages in real time.
- System updates via
pacman -Syuinclude Modularitea-installed packages — There is no separate update channel.
How Privilege Escalation Works
Modularitea does not run as root. Instead, it uses PolicyKit (pkexec) to escalate privileges only when needed:
- You click an action that requires root access (e.g., install packages).
- Modularitea calls the appropriate backend binary via
pkexec. - PolicyKit displays a system authentication dialog.
- You enter your password.
- The binary executes with root privileges and returns the result.
- Modularitea displays the result in the UI.
This approach is safer than running the entire application as root, because only the specific operation runs with elevated privileges.
Profile TOML Format
Profiles are defined as .toml files in the profiles/ directory. Here is the complete schema:
[meta]
name = "Profile Display Name" # Required: Human-readable name
description = "What this profile does" # Required: Brief description
version = "1.0.0" # Required: Semantic version
author = "TeaLinuxOS Team" # Required: Author name
category = "development" # Required: Category identifier
icon = "icon_name.svg" # Optional: Icon filename
[packages]
install = ["pkg1", "pkg2", "pkg3"] # Packages from official repos
aur = ["aur-pkg1", "aur-pkg2"] # Packages from the AUR
[services]
enable = ["service1", "service2"] # Systemd services to enable
Example: Installing a Web Development Environment
Here is a complete walkthrough of installing the JavaScript development profile:
- Open Modularitea.
- On the Home page, find the “JavaScript” profile card.
- Review the included packages:
nodejs,npm,bun, and related tools. - Click Install.
- Enter your administrator password when prompted.
- Wait for the installation to complete (the card shows a progress indicator).
- Once complete, open a terminal and verify:
node --version
npm --version
Both commands should now return version numbers, confirming the successful installation.