Skip to content

mrks1469/PacHub

Repository files navigation

PacHub

A powerful Pacman & AUR front end built with GTK4 and libadwaita

Arch Linux Python GTK4 libadwaita License

Screenshot Screenshot-1

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.

Features

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 yay or paru if 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 (checkupdates or pacman -Qu)
  • Rate and select the fastest mirrors
  • Find and remove orphaned packages (pacman -Qdt)
  • Clean the package cache (pacman -Sc)
  • Manage /etc/pacman.conf repositories
  • 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

Requirements

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)

Installation

Place the repository files in the same directory, then run:

chmod +x install.sh
./install.sh

The installer will:

  1. Check for and install any missing dependencies via pacman
  2. Copy application files to /usr/local/share/pachub/
  3. Create a /usr/local/bin/pachub launcher
  4. Install the application icon
  5. Register a .desktop entry 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

Build a local pacman package

This repository now includes a PKGBUILD, so you can build and install PacHub with:

makepkg -si

Running without installing

python3 app.py

Usage

Launch from your application menu under System → PacHub, or run from a terminal:

pachub

Basic 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

Project Structure

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

License

PacHub is licensed under the GNU General Public License v2.0. See the GPL-2.0 license for details.

Author

Manpreet Singhgithub.com/mrks1469

"Buy Me A Coffee"

About

GTK4 + libadwaita Front End for Pacman/AUR

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors