Universal CLI installer for Affinity products on Linux
Project description
๐จ Affinity CLI
Universal Linux Installer for Affinity Products
Professional, One-Command Installation for Creative Professionals
Features โข Quick Start โข Installation โข Documentation โข Contributing
๐ง Linux users deserve professional creative tools.
๐ What is Affinity CLI?
Affinity CLI is a powerful, open-source command-line tool that automates the complete installation of Affinity Photo, Designer, and Publisher on Linux distributions. Version v1.0.0 is the first polished milestoneโdistilled from months of late-night Wine experiments, community streams, and field engagements.
๐ Everything visible here is served straight from
release/v1.0.0-clean. To keep the release snapshot pristine, add future commits to that branch instead ofmasterso the landing view stays tidy for everyone.
# One command to rule them all
affinity-cli install
No more manual Wine configuration. No more dependency hunting. Just professional creative tools on Linux. ๐
๐ฅ Why creators are hyped about v1.0.0
- Battle-tested automation โ the same playbook we ran internally is now a single
affinity-cli installcommand. - Cross-distro parity โ Ubuntu, Fedora, Arch, SUSE, and more all follow the exact same installer story.
- Confidence-first UX โ installer discovery, verbose status, and
--dry-runshow every step before touching a Wine prefix.
โจ Transform your Linux system into a creative powerhouse
New hero artwork highlights the v1.0.0 release energyโswap the file at .github/assets/affinity-cli-hero.png whenever you refresh the brand.
๐ฏ Features
๐ง Universal SupportAuto-detects 15+ distros |
โก Full AutomationOne command installs |
๐ท Smart Wine SetupOptimized configuration |
๐จ Desktop IntegrationMenu entries, aliases, |
๐ป Beautiful CLIRich progress bars |
โ Well-Tested27 unit tests |
๐ผ๏ธ Supported Products
| Product | Versions | Status |
|---|---|---|
| ๐ธ Affinity Photo | v1 โข v2 โข v3 | โ Supported |
| ๐จ Affinity Designer | v1 โข v2 โข v3 | โ Supported |
| ๐ Affinity Publisher | v1 โข v2 โข v3 | โ Supported |
๐ Quick Start
โก Installation (3 simple steps)
# 1๏ธโฃ Clone the repository
git clone https://github.com/ind4skylivey/affinity-cli.git
cd affinity-cli
# 2๏ธโฃ Install the CLI tool
pip install -e .
# 3๏ธโฃ Check your system status
affinity-cli status
๐ฌ Launch Affinity Products
# Install Affinity products (interactive mode)
affinity-cli install
# Or specify installer location
affinity-cli install --installer-path ~/Downloads
๐ That's it! Launch from:
# Terminal
affinity-photo # Launch Affinity Photo
affinity-designer # Launch Affinity Designer
affinity-publisher # Launch Affinity Publisher
# Or from your application menu! ๐จ
In under five minutes you can go from a clean Linux install to launching Affinity as if it shipped with your distro. That same moment of disbelief people share on streams and meetups? This workflow makes it repeatable.
๐ง Supported Distributions
|
Ubuntu 20.04 โข 22.04 โข 24.04 |
Debian 11 โข 12 (Bookworm) |
Fedora 38 โข 39 โข 40+ |
Arch Linux Rolling Release |
|
Linux Mint 20.x โข 21.x |
Manjaro All versions |
openSUSE Leap โข Tumbleweed |
More! Pop!_OS โข Elementary |
๐ Why Choose Affinity CLI?
๐ Comparison with Alternatives
| Feature | ๐จ Affinity CLI | Lutris | Bottles | Manual Wine |
|---|---|---|---|---|
| One-command install | โ | โ | โ | โ |
| Auto distro detection | โ | โ | โ | โ |
| Auto dependency install | โ | โ | โ | โ |
| Desktop integration | โ | โ | โ | โ |
| No external managers | โ | โ | โ | โ |
| Lightweight | โ | โ | โ | โ |
| Built for Affinity | โ | โ | โ | โ |
| CLI + GUI launcher | โ | โ | โ | โ |
| Open source | โ | โ | โ | โ |
๐ Affinity CLI = Best of all worlds
๐ Documentation
๐ Installation Methods
From Source (Development)
git clone https://github.com/ind4skylivey/affinity-cli.git
cd affinity-cli
pip install -e .
From PyPI (Coming Soon)
pip install affinity-cli
From AUR (Arch Users - Coming Soon)
yay -S affinity-cli
โ๏ธ Command Reference
Installation Commands
# Interactive installation
affinity-cli install
# Specify installer path
affinity-cli install --installer-path ~/Downloads
# Install specific products
affinity-cli install --products photo,designer
# Custom Wine prefix
affinity-cli install --prefix ~/.my-affinity
# Skip dependency check (advanced)
affinity-cli install --skip-dependencies
Management Commands
# Check system status
affinity-cli status
affinity-cli status --verbose
# Repair broken installation
affinity-cli repair
affinity-cli repair --product photo
# Uninstall products
affinity-cli uninstall
affinity-cli uninstall --purge # Complete removal
# Generate system report
affinity-cli report
affinity-cli report --output report.json
Information Commands
# Show version
affinity-cli --version
# Show help
affinity-cli --help
affinity-cli install --help
# Welcome message
affinity-cli welcome
๐ง Advanced Configuration
Custom Configuration File
Location: ~/.config/affinity-cli/config.yml
wine:
version: "latest"
prefix_path: "~/.wine-affinity"
graphics_api: "vulkan"
affinity:
products:
- photo
- designer
auto_detect_installers: true
system:
enable_multiarch: true
install_dependencies: true
๐ Troubleshooting
Common Issues
Issue: Installation fails on dependency step
# Update package lists first
sudo apt update # Ubuntu/Debian
sudo dnf update # Fedora
sudo pacman -Sy # Arch
Issue: Products don't appear in menu
# Rebuild desktop database
affinity-cli repair
Issue: Wine prefix creation hangs
# Kill wine processes and retry
pkill wine
affinity-cli repair
Performance issues?
- Check GPU drivers:
vulkaninfo - Monitor resources:
htop - See logs:
~/.config/affinity-cli/logs/
๐ ๏ธ How It Works
graph LR
A[๐ Start] --> B[๐ง Detect Distro]
B --> C[๐ฆ Install Dependencies]
C --> D[๐ท Setup Wine]
D --> E[โ๏ธ Create Prefix]
E --> F[๐จ Install Affinity]
F --> G[๐ฅ๏ธ Desktop Integration]
G --> H[โ
Done!]
style A fill:#4CAF50,stroke:#2E7D32,color:#fff
style H fill:#4CAF50,stroke:#2E7D32,color:#fff
style B fill:#2196F3,stroke:#1565C0,color:#fff
style C fill:#FF9800,stroke:#E65100,color:#fff
style D fill:#9C27B0,stroke:#6A1B9A,color:#fff
style E fill:#F44336,stroke:#C62828,color:#fff
style F fill:#E91E63,stroke:#AD1457,color:#fff
style G fill:#00BCD4,stroke:#00838F,color:#fff
๐ Installation Pipeline
- ๐ง Detection Phase - Identifies your Linux distro and package manager
- ๐ฆ Preparation Phase - Installs system dependencies (wine, libraries, fonts)
- ๐ท Wine Setup Phase - Downloads and configures optimized Wine build
- โ๏ธ Configuration Phase - Creates isolated Wine prefix with .NET Framework
- ๐จ Installation Phase - Silently installs Affinity products
- ๐ฅ๏ธ Integration Phase - Creates menu entries and bash aliases
- โ Verification Phase - Tests installation and generates report
๐ฏ Requirements
๐ป System Requirements
|
๐ฅ What You Need
|
๐๏ธ Project Architecture
๐ Click to view project structure
affinity-cli/
โโโ ๐ฆ affinity_cli/ # Main package
โ โโโ ๐ง core/ # Core functionality
โ โ โโโ distro_detector.py # OS detection
โ โ โโโ dependency_manager.py # Package management
โ โ โโโ wine_manager.py # Wine setup
โ โ โโโ prefix_manager.py # Wine prefix config
โ โ โโโ affinity_installer.py # Product installation
โ โ โโโ desktop_integration.py # Desktop entries
โ โ
โ โโโ ๐ฎ commands/ # CLI commands
โ โ โโโ install.py # Install command
โ โ โโโ status.py # Status command
โ โ โโโ uninstall.py # Uninstall command
โ โ โโโ repair.py # Repair command
โ โ โโโ report.py # Report command
โ โ
โ โโโ ๐ ๏ธ utils/ # Utilities
โ โโโ logger.py # Logging
โ
โโโ ๐งช tests/ # Unit tests (27 passing)
โโโ ๐ค .github/workflows/ # CI/CD automation
โโโ ๐ README.md # This file
โโโ ๐ LICENSE # MIT License
โโโ ๐ค CONTRIBUTING.md # Contribution guide
Code Statistics:
- ๐ ~2,800 lines of Python code
- โ 27 unit tests (all passing)
- ๐ฆ 6 core modules
- ๐ฎ 5 CLI commands
- ๐ 4 documentation files
๐ค Contributing
We โค๏ธ contributions! This project thrives on community support.
๐ How You Can Help
๐ Report BugsFound an issue? |
๐ป Write CodeSubmit pull requests |
๐งช Test & FeedbackTry on different distros |
๐ Improve DocsHelp others learn |
โญ Star the RepoShow your support |
๐ฃ Spread the WordTell other Linux users |
๐ Quick Contribution Setup
# Fork and clone
git clone https://github.com/yourusername/affinity-cli.git
cd affinity-cli
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install in dev mode
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Make changes and submit PR! ๐
๐ Project Stats
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Important: This project is not affiliated with Serif Labs (makers of Affinity). It's a community-driven effort to enable Affinity products on Linux.
๐ Acknowledgments
Special Thanks To:
๐ท Wine Project - For making Windows apps run on Linux
๐จ Serif Labs - For creating amazing Affinity products
๐ง Linux Community - For continuous support and testing
โก ElementalWarrior - For Affinity-optimized Wine builds
๐ฌ Community & Support
๐ฌ Get Help
- ๐ฌ GitHub Discussions - Ask questions, share ideas
- ๐ GitHub Issues - Report bugs, request features
- ๐ง Email - For private inquiries
- ๐ Reddit - r/linux, r/linuxgaming, r/AffinityPhoto
๐จ Vision & Mission
"Linux users deserve professional creative tools. This project proves it's possible."
๐ฏ Our Goals
- ๐ Make Affinity installation effortless for Linux users
- ๐ Demonstrate demand for official Linux support from Serif
- ๐ค Build a community around professional Linux creative tools
- ๐ Inspire official Affinity Linux support
๐บ๏ธ Roadmap
๐ฎ Future Plans
โ Completed (v1.0.0-beta)
- Core installation system
- Multi-distro support
- Desktop integration
- CLI interface
- Unit tests & CI/CD
๐ง In Progress (v1.1.0)
- PyPI publication
- Extended distro testing
- Performance optimizations
- Enhanced error messages
๐ฎ Planned (v2.0.0)
- GUI installer option
- Flatpak/Snap packages
- AUR package (Arch)
- GPU-specific optimizations
- Proton support (experimental)
- Multi-language support
๐ Dream Features
- Official Serif collaboration
- Native Linux Affinity (one day!)
๐ Show Your Support
โญ Star this repo if Affinity CLI helped you!
๐ Share with other Linux creative professionals
๐ฌ Tell Serif that Linux users exist and we want official support!
Together, we can make Linux a first-class platform for creative professionals. ๐ง๐จ
๐ Ready to revolutionize Linux creative workflows?
Get Started Now โฌ๏ธ | View Releases ๐ฆ | Report Issues ๐
Made with โค๏ธ by ind4skylivey and the Linux community
Make Serif notice. Make Windows jealous. Make Linux creators powerful. ๐ฅ
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file affinity_cli-1.1.1.tar.gz.
File metadata
- Download URL: affinity_cli-1.1.1.tar.gz
- Upload date:
- Size: 5.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c868c60f648b794953e88e11cc69cc656706f58a7e4a7384fdbbd9e4c8427c4
|
|
| MD5 |
c0f2fa731d9c21887c410f61d89aa429
|
|
| BLAKE2b-256 |
09d7e2eec4c913c23b9b4922c3ad4f1f64fcd4b1f389edda0f8d2d84ed727e91
|
File details
Details for the file affinity_cli-1.1.1-py3-none-any.whl.
File metadata
- Download URL: affinity_cli-1.1.1-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee9ca8929aceb3661063c01f498ced7176c9a535468739b1d44ffafe7a9f2924
|
|
| MD5 |
30711c9c8440e4e9ea749a58cbe9aafd
|
|
| BLAKE2b-256 |
c965d42f97830201f28d91cd78cfd424690cad9d14dde0008ec39fe5dea25d4a
|