Parch Linux Mirror Manager
Find a file
2025-10-30 12:32:13 +03:30
src Here We Go 2025-10-30 12:19:15 +03:30
LICENSE Initial commit 2025-10-30 04:24:17 -04:00
meson.build fix build 2025-10-30 12:21:35 +03:30
mirrorman.desktop Here We Go 2025-10-30 12:19:15 +03:30
mirrorman.in not ideal, but working 2025-10-30 12:32:13 +03:30
PKGBUILD fix build 2025-10-30 12:21:35 +03:30
README.md Here We Go 2025-10-30 12:19:15 +03:30

MirrorMan

A modern GTK4/Libadwaita repository manager for Parch Gnu/Linux. MirrorMan provides an intuitive interface for managing Pacman mirrors, testing connection speeds, and configuring system repositories.

Features

Mirror Management

  • Fetch mirrors from the Arch Linux mirror status API
  • Filter by country, protocol (HTTP/HTTPS), and IP version (IPv4/IPv6)
  • Test mirror response times and rank by speed
  • Enable or disable mirrors individually
  • Sort mirrors by speed, country, or last sync time

Repository Configuration

  • Toggle standard Arch repositories
  • Manage third-party repositories (Chaotic-AUR, BlackArch, ArchLinuxCN)
  • Sync package databases with a single click
  • System update integration

Pacman Settings

  • Configure parallel downloads
  • Adjust download timeout values
  • Enable verbose package lists
  • Toggle color output
  • Modify package cache settings

Requirements

  • Python 3.8+
  • GTK 4
  • Libadwaita 1.0+
  • PyGObject
  • pkexec (for privilege escalation)

Installation

# Clone the repository
git clone https://github.com/yourusername/mirrorman.git
cd mirrorman

# Install dependencies (Arch-based systems)
sudo pacman -S python-gobject gtk4 libadwaita

# Run the application
python main.py

# Or just simply do:
makepkg -sic

Usage

Basic Workflow

  1. Configure Filters: Select your preferred country, protocols, and IP versions
  2. Fetch Mirrors: Click the Fetch button to retrieve available mirrors
  3. Test Speed: Use Test & Rank to measure mirror response times
  4. Enable Mirrors: Select the fastest mirrors and enable them
  5. Sync: Save your configuration and sync package databases

Privilege Escalation

MirrorMan runs as a normal user and only requests elevated privileges when necessary. Operations requiring root access (saving mirrorlist, syncing databases) use pkexec for secure authentication.

Repository Management

Enable or disable repositories through the sidebar interface. Changes are applied immediately to your pacman configuration. The application supports both standard Arch repositories and popular third-party options.

Architecture

The application is structured into modular components:

  • main.py: GTK4 interface and application logic
  • mirror_manager.py: Mirror fetching, testing, and persistence
  • repo_config.py: Repository configuration management
  • sync_manager.py: Package database synchronization
  • pacman_util.py: Pacman settings interface

Development

Project Structure

mirrorman
    ├── LICENSE
    ├── meson.build
    ├── mirrorman.in
    ├── PKGBUILD
    ├── README.md
    └── src
        ├── main.py
        ├── mirror_manager.py
        ├── pacman_util.py
        ├── repo_config.py
        ├── sync_manager.py
        └── utils.py

Contributing

Contributions are welcome. Please ensure your code follows Python best practices and maintains compatibility with GTK4/Libadwaita design patterns.

License

This project is licensed under the GPL-3 License. See LICENSE file for details.

Acknowledgments

Built for Parch Linux and compatible with all Arch-based distributions. Mirror data sourced from the official Arch Linux mirror status API.

Support

For bug reports and feature requests, please open an issue on the project repository or Parch Linux Forum.