
A sophisticated Python GTK4 BitTorrent client that simulates seeding activity with advanced peer-to-peer networking capabilities, comprehensive settings management, multi-language support, and extensive automated testing.
The name "D' Fake Seeder" is a playful nod to the Irish English accent. In Irish pronunciation, the "th" sound in "the" is often rendered as a hard "d" sound - so "the" becomes "de" or "d'". This linguistic quirk gives us "D' Fake Seeder" instead of "The Fake Seeder", celebrating the project's Irish heritage while describing exactly what it does: simulates (fakes) torrent seeding activity.

# Install from PyPI
pip install d-fake-seeder
# Run automated setup (checks dependencies, offers desktop integration)
dfs-setup
# This will
# - Check for required system packages (GTK4, LibAdwaita, PyGObject)
# - Show OS-specific installation commands if dependencies are missing
# - Offer to install desktop integration (icons, menu entries)
# - Display launch instructions
# Or skip setup and install system dependencies manually
# Fedora/RHEL
sudo dnf install gtk4 libadwaita python3-gobject
# Debian/Ubuntu
sudo apt install gir1.2-gtk-4.0 libadwaita-1-0 gir1.2-adw-1 python3-gi
# Launch the application
dfs # Short command
dfakeseeder # Full command
dfs --with-tray # Launch with system tray
dfs-tray # Tray application only
# Launch from application menu (after desktop integration)
gtk-launch dfakeseeder
# Or search "D' Fake Seeder" in application menu
# Setup pipenv environment
make setup-venv
# Run with debug output (pipenv)
make run-debug-venv
# Run with Docker
make run-debug-docker
# Download and install
curl -sL $(curl -s https://api.github.com/repos/dmzoneill/dfakeseeder/releases/latest | grep browser_download_url | cut -d\" -f4 | grep deb) -o dfakeseeder.deb
sudo dpkg -i dfakeseeder.deb
# Everything is automatic
# - All dependencies installed (GTK4, LibAdwaita, Python packages)
# - Desktop integration (icons, menu entries, cache updates)
# - Command-line launchers: dfs, dfakeseeder
# Launch from command line
dfs # Short command
dfakeseeder # Full command
# Or launch from application menu
gtk-launch dfakeseeder
# Search "D' Fake Seeder" in application menu
# GNOME Shell users: Press Alt+F2, type 'r', Enter to restart shell
# Download and install
curl -sL $(curl -s https://api.github.com/repos/dmzoneill/dfakeseeder/releases/latest | grep browser_download_url | cut -d\" -f4 | grep rpm) -o dfakeseeder.rpm
sudo rpm -i dfakeseeder.rpm
# Everything is automatic
# - All dependencies installed (GTK4, LibAdwaita, Python packages)
# - Desktop integration (icons, menu entries, cache updates)
# - Command-line launchers: dfs, dfakeseeder
# Launch from command line
dfs # Short command
dfakeseeder # Full command
# Or launch from application menu
gtk-launch dfakeseeder
# Search "D' Fake Seeder" in application menu
# GNOME Shell users: Press Alt+F2, type 'r', Enter to restart shell
# Local build
make docker
# Docker Hub/GHCR
xhost +local:
docker run --rm --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --volume="/tmp/.X11-unix:/tmp/.X11-unix" -it ghcr.io/dmzoneill/dfakeseeder
Comprehensive end-to-end test suite with 140+ automated tests across all package formats:
# Run all E2E tests (RPM, PyPI, DEB)
make test-e2e-all
# Run specific package format tests
make test-e2e # RPM packages (Fedora)
make test-e2e-pypi # PyPI packages (Fedora + Ubuntu)
make test-e2e-deb # DEB packages (Ubuntu + Debian)
Coverage:
Tests Include:
GitHub Actions: All end-to-end tests run automatically on every push and PR with results visible in status checks.
# Setup development environment
make setup-venv # Create pipenv environment
make required # Install dependencies
# Code quality
make lint # Run black, flake8, isort
make test-venv # Run tests with pipenv
# UI development
make ui-build # Compile UI from XML components
make icons # Install application icons
# Package building
make deb # Build Debian package (full desktop integration)
make rpm # Build RPM package (full desktop integration)
make flatpak # Build Flatpak package
make docker # Build Docker image
# PyPI publishing
make pypi-build # Build source distribution and wheel
make pypi-check # Validate package quality
make pypi-test-upload # Upload to TestPyPI
make pypi-upload # Upload to production PyPI
# E2E Testing
make test-e2e-all # Run all E2E tests (RPM + PyPI + DEB)
make test-e2e # RPM E2E tests
make test-e2e-pypi # PyPI E2E tests
make test-e2e-deb # DEB E2E tests
make clean-e2e-deb # Clean DEB test artifacts
make clean-e2e-pypi # Clean PyPI test artifacts
All three package formats (RPM, DEB, PyPI) provide the same installation experience:
| Feature | RPM | DEB | PyPI |
|---|---|---|---|
| Command-line launcher | ✅ dfs / dfakeseeder | ✅ dfs / dfakeseeder | ✅ dfs / dfakeseeder |
| Desktop integration | ✅ Automatic | ✅ Automatic | ✅ via dfs-setup |
| All dependencies | ✅ Automatic | ✅ Automatic | ✅ Manual GTK4/LibAdwaita |
| System tray | ✅ Included | ✅ Included | ✅ Included |
| Wrapper script | ✅ /usr/bin/dfakeseeder | ✅ /usr/bin/dfakeseeder | ✅ Direct Python |
| Auto-updates | ✅ via dnf/yum | ✅ via apt | ✅ via pip |
| End-to-end tested | ✅ 3 Fedora versions | ✅ 4 Ubuntu/Debian versions | ✅ 5 OS versions |
~/.config/dfakeseeder/settings.json (auto-created from defaults)~/.config/dfakeseeder/torrents/d_fake_seeder/config/default.json (comprehensive defaults)After PyPI installation, run desktop integration:
# Install desktop files, icons, and tray autostart
dfs-install-desktop
# This installs
# - Application icons (multiple sizes) to ~/.local/share/icons/
# - Desktop launcher to ~/.local/share/applications/
# - Updates icon and desktop caches
# - Clears GNOME Shell cache for immediate recognition
# GNOME Shell users: Restart GNOME Shell
# Press Alt+F2, type 'r', and press Enter
# Launch via desktop environment
gtk-launch dfakeseeder
# Or search "D' Fake Seeder" in application menu
# Uninstall desktop integration
dfs-uninstall-desktop
English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, Korean, Arabic, Hindi, Dutch, Swedish, Polish, Bengali, Persian, Irish, Indonesian, Turkish, Vietnamese
Runtime language switching without application restart.
The application auto-creates ~/.config/dfakeseeder/settings.json with comprehensive defaults including:
MIT License - See LICENSE file for details
Content type
Image
Digest
sha256:6b0308a50…
Size
513.6 MB
Last updated
2 days ago
docker pull feeditout/dfakeseeder