A modern package manager for Arch Linux supporting pacman (via libalpm) and Flatpak backends.
- Dual Backend Support: Manage both pacman packages and Flatpak applications from a single interface
- Modern Qt 6 UI: Built with QML and Qt Quick Controls 2 for a native desktop experience
- Rust Backend: Safe, fast, and concurrent package management operations
- System Maintenance: Orphan detection, cache cleanup, and database synchronization
- Rust (Edition 2024)
- Qt 6.2+ with QtQuick and QtQuickControls2
- libalpm (pacman library)
- flatpak development libraries
- CMake 3.24+ (optional, for CMake integration)
sudo pacman -S rust qt6-base qt6-declarative qt6-quickcontrols2 pacman flatpakcargo build --releasecmake -B build
cmake --build build# Development
cargo run --bin xpm-ui
# Release
./target/release/xpm-uiPackage: Package metadata (name, version, description, backend)Operation: Install/remove/update operationsPackageSource: Trait for backend implementations
- Read-only operations (search, list, info) work without privileges
- Write operations (install, remove, upgrade) require root via polkit
- User-level installations work without root
- System-level installations require appropriate permissions
PackageManager: Orchestrates multiple backends- Progress tracking for long-running operations
- Application state management
- CXX-Qt bridges expose Rust logic to QML
- QML views for different package management tasks
- Native Qt theming support
- Ability to
downgradepkgs. - System update notifications.
- Dependency tree visualization.
GPL-3.0-or-later