⚠️ Disclaimer:
This software is experimental and provided as is.
Use at your own risk — I take no responsibility for any damage, data loss, or system issues resulting from its use.
WrapPac is a lightweight desktop companion for Arch Linux users who mix packages from the official repositories, the AUR, and Flatpak. It unifies all installed packages into a single overview and provides convenient tools to inspect, update, or remove them — without relying on internal pacman libraries or background root daemons.
WrapPac was built for users who want a graphical interface that behaves exactly like the terminal — using the same commands they run daily: pacman, yay, paru, and flatpak.
Most graphical package managers access pacman's functionality through the libalpm library, which provides programmatic control over transactions. While this approach works well for many users, some prefer the transparency and predictability of direct CLI invocation.
WrapPac takes a different approach: it's a pure wrapper around existing command-line tools, with no abstraction layers. Every action you perform in WrapPac is identical to typing the command yourself — you see the same output, the same prompts, and the same behavior.
WrapPac is not meant to replace your terminal workflow — it complements it. It's for users who value Arch's simplicity and control, but still want a clear overview of installed packages and updates.
No root daemons. No hidden abstractions. No "magic".
Just your real system commands — visualized.
| Aspect | Traditional GUI Package Managers | WrapPac |
|---|---|---|
| Backend | libalpm library (programmatic API) |
Direct CLI invocation (pacman, yay, paru, flatpak) |
| Transaction logic | Library-level transaction handling | Identical to manual terminal commands |
| Privilege model | Varies (some use persistent daemons) | No persistent root access — uses sudo/doas only when needed |
| Output visibility | GUI-formatted, abstracted messages | Raw PTY terminal showing live, unfiltered command output |
| Update checks | Integrated background services | Optional systemd timer with tray notifications |
| Configuration | Managed through application settings | Uses system pacman.conf and all configured hooks |
- Unified package view — combines results from
pacman -Qn,pacman -Qm, andflatpak list - Context-aware actions — uninstall packages using the correct backend (
pacman,yay,paru, orflatpak) - Integrated PTY terminal — live output with keyboard control.
- Non-blocking UI — background threads keep the interface responsive during long operations
- Optional systemd timer — automatic update checks with configurable intervals:
- Custom intervals (every N hours)
- Daily at a specific time
- Weekly on a specific day and time
- Optional check on system boot
- System tray notifications — discrete notifications when updates are available
- Single-instance enforcement — prevents multiple windows, allows
--show-updatesflag for direct access
- Mirror optimization — integrated Reflector support with:
- Customizable arguments
- Automatic backup of current mirrorlist
- Protocol filtering (prefers HTTPS when rsync unavailable)
- Cleanup helpers — remove:
- Orphaned packages (
pacman -Qtdq) - Package cache (configurable retention via
paccache) - Unused Flatpak runtimes
- AUR build caches (yay/paru/pikaur/etc.)
- Old system logs (
journalctl --vacuum-time)
- Orphaned packages (
- Remote management — add/remove Flatpak remotes directly from settings
- Automatic remote setup — optional auto-add for missing remotes (e.g., Flathub)
- Scope control — choose between user (
--user) and system (--system) installations - Intelligent remote detection — automatically determines installation scope
- Multilingual — full support for English and German with auto-detection
- Configurable behavior — extensive settings for:
- AUR helper selection (auto-detect or manual)
- Root method (
sudovsdoas) - Pacman flags for removal (
-Rns,-Rn,-Rs,-R) - Terminal appearance (font, theme)
- Auto-refresh after operations
- Rich package insights — dual-tab details dialog with formatted metadata and raw command output
- Persistent search history — autocomplete remembers recent queries for faster lookups
- Backup tools — export installed packages to JSON snapshots and re-import with per-source previews
- Status-aware overview — live package counters, size column, and advanced filters for explicit, dependency, or orphaned installs
- Install queue — batch multiple package installations
- Comprehensive error reporting — shows failed commands with exit codes and stderr
WrapPac is designed exclusively for Arch-based distributions.
git clone https://github.com/Zerschranzer/wrappac.git
cd wrappac
makepkg -siThis will:
- Build the package using your local environment
- Install it system-wide under
/usr/share/wrappac - Create a launcher script in
/usr/bin/wrappac - Add a
.desktopentry for your menu
Uninstall it as usual:
sudo pacman -Rns wrappac-gitRuntime dependencies:
- Python ≥ 3.10
- PySide6
pacmanandpacman-contrib(forcheckupdates)
Optional integrations:
yayorparu— for AUR supportflatpak— for Flatpak managementsudooropendoas— for privilege escalationreflector— to refresh mirrorssystemd— for the optional update service timer
All dependencies are handled through the PKGBUILD.
- Browse installed packages — filter by source (All/Official/AUR/Flatpak)
- Search for new packages — select a source, search, add to queue or install directly
- System updates — click "System Update" to check and apply updates across all sources
- System maintenance — use "System Cleanup" to remove orphans, clean caches, etc.
wrappac # Normal start
wrappac --show-updates # Open directly to update dialog
wrappac --tray-mode # Start minimized (for systemd timer)
wrappac --run-update-service # Internal: check updates and show tray notificationEnable automatic update checks in Settings → Update Service:
- Check "Enable update service"
- Choose interval (manual hours, daily, or weekly)
- Optionally enable "Check on system start"
- Click Save
This creates a systemd user timer (~/.config/systemd/user/wrappac-update.timer) that runs in the background and shows tray notifications when updates are available.
Checking service status:
systemctl --user status wrappac-update.timer
systemctl --user list-timers # See next scheduled runUnified view for Pacman, AUR, and Flatpak packages — all in one place.

Search and install AUR, Flatpak, or official repository packages directly.

Context-aware uninstall — automatically uses the correct backend.

Configure removal flags, auto-refresh behavior, and confirmation options.

Manage Flatpak remotes and user/system installation scopes.

Switch between English and German — auto-detects system locale.

Clean caches, remove orphans, and keep your system tidy.

Settings are stored in ~/.config/wrappac/settings.json. The settings dialog provides a GUI for all options:
- AUR Helper — auto-detect or manually select yay/paru/pikaur
- Root Method — choose between sudo and doas
- Pacman — configure removal flags, --noconfirm usage, auto-refresh
- Reflector — mirror update arguments and backup settings
- Flatpak — default scope, remote management, auto-add behavior
- System Maintenance — cache retention, log age limits
- Update Service — timer configuration and boot-time checks
- Language — UI language (English/German)
WrapPac follows these security principles:
- No persistent root daemons — root access is only requested for individual operations
- Transparent command execution — every command is shown in the PTY terminal before execution
- Password masking — passwords are entered in secure dialogs, never echoed in the terminal
- Respect system configuration — uses your existing
sudoers/doas.confrules - No phone-home — completely offline except for package operations you initiate
Potential future features (not promised):
- Downgrade packages to previous versions
- AUR package build inspection before installation
- Package pinning (exclude from updates)
- Import/export installed package lists
WrapPac © 2025 — developed by Zerschranzer