| src | ||
| LICENSE | ||
| meson.build | ||
| mirrorman.desktop | ||
| mirrorman.in | ||
| PKGBUILD | ||
| README.md | ||
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
- Configure Filters: Select your preferred country, protocols, and IP versions
- Fetch Mirrors: Click the Fetch button to retrieve available mirrors
- Test Speed: Use Test & Rank to measure mirror response times
- Enable Mirrors: Select the fastest mirrors and enable them
- 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 logicmirror_manager.py: Mirror fetching, testing, and persistencerepo_config.py: Repository configuration managementsync_manager.py: Package database synchronizationpacman_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.