A modern Flutter application for managing Wine/Proton prefixes on Linux with comprehensive gaming features, ISO mounting, and built-in IGDB integration.
- Visual Game Library - Beautiful grid view with cover art and metadata
- IGDB Integration - Automatic game metadata, cover art, and screenshots
- Game Categories - Organize your games with custom categories
- Advanced Search - Find games quickly with powerful search functionality
- Game Details - Comprehensive game information and launch options
- Modern Flutter UI - Beautiful, responsive interface with dark/light themes
- Comprehensive Prefix Management - Create, manage, and organize Wine/Proton prefixes
- Proton Integration - Seamless Steam Proton support with automatic detection
- 32-bit & 64-bit Support - Full support for both architectures
- Automatic Setup - Microsoft Visual C++ redistributables and gaming dependencies
- Virtual CD Drive Simulation - Mount ISO files as real CD drives (D:) in Wine prefixes
- Multiple Format Support - .iso, .img, .bin, .cue files
- Real-time Status - Live updates during mounting/unmounting operations
- Automatic Wine Registry Configuration - Proper CD-ROM drive detection
- Safe Ejection - Clean unmounting with automatic cleanup
- Complete Backup System - Backup entire prefixes with games and settings
- Selective Restore - Restore specific components or complete prefixes
- Compressed Archives - Efficient storage with compression
- Backup Scheduling - Automatic backup reminders and management
- Integrated File Browser - Browse and manage prefix files directly
- Quick Access - Jump to common directories (Program Files, System32, etc.)
- File Operations - Copy, move, delete files within prefixes
- Registry Editing - Access to Wine registry for advanced configuration
- Environment Variables - Manage prefix-specific environment variables
- Controller Support - Built-in controller fixes for gaming
- Wine Version Management - Switch between different Wine versions
- Performance Optimization - DXVK, VKD3D integration for 64-bit prefixes
- One-Click AppImage - Portable, no-installation-required distribution
- Desktop Integration - .desktop file for system menu integration
- Logging System - Comprehensive logging for troubleshooting
- Power Management - Prevent system sleep during long operations
- Download the AppImage from Releases
- Make it executable:
chmod +x WinePrefixManager-*.AppImage
- Run the application:
./WinePrefixManager-*.AppImage
- Configure Prefix Directory - Choose where to store your Wine prefixes
- Set Game Library Path - Select your games directory for automatic detection
- Install ISO Mounting (Optional) - Run setup for password-free ISO mounting:
./scripts/setup_iso_mounting.sh
- Navigate to Manage Prefixes tab
- Click Create New Prefix
- Choose Wine/Proton version and architecture
- Configure initial settings and dependencies
- Wait for automatic setup completion
- Go to Game Library tab
- Add games manually or let the app auto-detect
- Fetch metadata from IGDB for cover art and details
- Organize games into categories
- Launch games directly from the library
- Open ISO/CD tab
- Select target Wine prefix
- Click Mount ISO and choose your file
- The ISO appears as drive D: in the selected prefix
- Eject safely when done
- Access Files & Backup tab
- Select prefixes to backup
- Choose backup location and options
- Monitor backup progress
- Restore from backups when needed
- Flutter SDK (latest stable) with Linux desktop support
- Wine or Proton installed
- Git
-
Clone and setup:
git clone https://github.com/CrownParkComputing/wine_prefix_manager.git cd wine_prefix_manager make setup
-
Development build:
make build flutter run -d linux
# Development
make setup # Setup development environment
make build # Build the application
make test # Run tests
make lint # Run linter
make format # Format code
make clean # Clean build artifacts
# Distribution
make appimage # Build AppImage
make release-all VERSION=x.y.z # Complete release workflow
# Version Management
make version-check # Check version synchronization
make version-fix # Auto-fix version issues
For developers building from source:
- Get IGDB credentials from Twitch Developer Console
- Copy environment template:
cp env.example .env
- Add credentials to .env:
IGDB_CLIENT_ID=your_client_id_here IGDB_CLIENT_SECRET=your_client_secret_here
wine_prefix_manager/
โโโ lib/ # Flutter source code
โ โโโ pages/ # Application pages/screens
โ โโโ services/ # Core business logic services
โ โโโ widgets/ # Reusable UI components
โ โโโ models/ # Data models
โ โโโ providers/ # State management
โ โโโ theme/ # UI theming
โโโ scripts/ # Build and utility scripts
โ โโโ build_appimage.sh # AppImage creation
โ โโโ create_github_release.sh # GitHub release automation
โ โโโ check_version_sync.sh # Version management
โ โโโ setup_iso_mounting.sh # ISO mounting setup
โโโ appimage/ # AppImage build artifacts
โโโ website/ # Project website
โโโ Makefile # Build orchestration
โโโ pubspec.yaml # Flutter dependencies
โโโ env.example # Environment template
-
AppImage won't run:
# Install FUSE if needed sudo apt install fuse # Ubuntu/Debian sudo pacman -S fuse # Arch Linux sudo dnf install fuse # Fedora
-
ISO mounting requires password:
# Run the setup script once sudo ./scripts/setup_iso_mounting.sh
-
Games won't launch:
- Check prefix configuration in Manage Prefixes
- Verify Wine/Proton version compatibility
- Check logs tab for detailed error messages
-
IGDB integration not working:
- For users: Should work automatically
- For developers: Check IGDB credentials in .env file
- Logs: Available in the "Logs" tab within the application
- Verbose logging: Run with
flutter run -d linux --verbose
- Log files: Check application data directory for persistent logs
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature
- Make your changes
- Run quality checks:
make pre-commit
- Commit changes:
git commit -m "Add new feature"
- Push to branch:
git push origin feature/new-feature
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Releases: GitHub Releases
Made with โค๏ธ for the Linux gaming community