A powerful Pacman & AUR front end built with GTK4 and libadwaita
PacHub is a native GTK4 graphical front end for pacman and AUR helpers. It follows the GNOME Human Interface Guidelines via libadwaita, giving you a clean and modern way to browse, search, install, and manage packages on Arch Linux — without ever opening a terminal.
Package management
- Browse all installed packages with live search and per-repository filtering
- Install packages from official repos (core, extra, multilib) and the AUR
- Uninstall packages with a single click
- One-click full system upgrade (
pacman -Syu) - Automatic AUR support via
yayorparuif either is installed
Package detail panel
- Full package info (
pacman -Qi/-Si) shown inline - Installed file list per package
- Colour-coded repository badges (CORE · EXTRA · AUR · MULTILIB · LOCAL)
- Status pills showing installed / available / needs update / foreign state
Sidebar at a glance
- Live stat cards showing total packages, AUR count, and pending update count
- Browse filters: All Packages · Installed · AUR / Foreign · Updates
- Per-repository navigation with package counts
- Quick-access tools panel
Tools
- Sync databases (
pacman -Sy) - Check for updates (
checkupdatesorpacman -Qu) - Rate and select the fastest mirrors
- Find and remove orphaned packages (
pacman -Qdt) - Clean the package cache (
pacman -Sc) - Manage
/etc/pacman.confrepositories - System info overview (kernel, RAM, disk, cache size, package counts)
UI / UX
- Built on GTK4 + libadwaita — follows your system light/dark theme
- Embedded PTY terminal for live command output with password prompt support
- Update banner notification when pending upgrades are detected
- Toast notifications on operation completion
- Responsive split-view layout (resizable list + detail pane)
- Graceful demo mode when run outside Arch Linux
| Dependency | Package |
|---|---|
| Python 3.x | python |
| GTK 4 | gtk4 |
| libadwaita 1.x | libadwaita |
| Python GObject bindings | python-gobject |
Optional (for AUR search and install):
| AUR Helper | Package |
|---|---|
| yay | yay (AUR) |
| paru | paru (AUR) |
Place the repository files in the same directory, then run:
chmod +x install.sh
./install.shThe installer will:
- Check for and install any missing dependencies via
pacman - Copy
application filesto/usr/local/share/pachub/ - Create a
/usr/local/bin/pachublauncher - Install the application icon
- Register a
.desktopentry so PacHub appears in your app launcher
Files required alongside install.sh:
install.sh
app.py
backend.py
dialogs.py
models.py
styles.py
window.py
io.github.mrks1469.pachub.svg
This repository now includes a PKGBUILD, so you can build and install PacHub with:
makepkg -sipython3 app.pyLaunch from your application menu under System → PacHub, or run from a terminal:
pachubBasic workflow:
- Use the sidebar to filter by category or repository
- Use the search bar to find any package by name or description
- Click a package row to view its full details in the right panel
- Use Install / Uninstall buttons in the action bar
- Click the ↑ upgrade button in the toolbar for a full system upgrade
- Access tools like mirror rating, orphan cleanup, and cache cleaning from the ☰ menu
app.py # Application entry point
backend.py # Package and system data helpers
dialogs.py # Modal dialogs and terminal UI
models.py # Package row and model types
styles.py # Shared UI styling
window.py # Main application window
io.github.mrks1469.pachub.svg # Application icon
install.sh # Installer script
PKGBUILD # Local pacman package definition
PacHub is licensed under the GNU General Public License v2.0. See the GPL-2.0 license for details.
Manpreet Singh — github.com/mrks1469
- Homepage: github.com/mrks1469/PacHub
- Bug reports: github.com/mrks1469/PacHub/issues
