mirror of
https://github.com/Omni-guides/Jackify.git
synced 2026-01-17 11:37:01 +01:00
Update download links to general files tab and fix typo
2
Home.md
2
Home.md
@@ -2,7 +2,7 @@
|
||||
|
||||
<div align="center">
|
||||
|
||||
[Wiki](https://github.com/Omni-guides/Jackify/wiki) | [Nexus](https://www.nexusmods.com/site/mods/1427) | [Download](https://www.nexusmods.com/Core/Libs/Common/Widgets/DownloadPopUp?id=5807&game_id=2295) | [Wabbajack Discord](https://discord.gg/wabbajack) | [Jackify Issues](https://github.com/Omni-guides/Jackify/issues) | [Legacy Guides](https://github.com/Omni-guides/Jackify/tree/master/Legacy) | [Ko-fi](https://ko-fi.com/omni1)
|
||||
[Wiki](https://github.com/Omni-guides/Jackify/wiki) | [Nexus](https://www.nexusmods.com/site/mods/1427) | [Download](https://www.nexusmods.com/site/mods/1427?tab=files) | [Wabbajack Discord](https://discord.gg/wabbajack) | [Jackify Issues](https://github.com/Omni-guides/Jackify/issues) | [Legacy Guides](https://github.com/Omni-guides/Jackify/tree/master/Legacy) | [Ko-fi](https://ko-fi.com/omni1)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
323
Technical-Guide.md
Normal file
323
Technical-Guide.md
Normal file
@@ -0,0 +1,323 @@
|
||||
<img src="https://raw.githubusercontent.com/Omni-guides/Jackify/main/assets/images/readme/Jackify_Github_Banner.png" alt="Jackify Banner">
|
||||
|
||||
<div align="center">
|
||||
|
||||
[Wiki](https://github.com/Omni-guides/Jackify/wiki) | [Nexus](https://www.nexusmods.com/site/mods/1427) | [Download](https://www.nexusmods.com/site/mods/1427?tab=files) | [Wabbajack Discord](https://discord.gg/wabbajack) | [Jackify Issues](https://github.com/Omni-guides/Jackify/issues) | [Legacy Guides](https://github.com/Omni-guides/Jackify/tree/master/Legacy) | [Ko-fi](https://ko-fi.com/omni1)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# Jackify - Technical Guide
|
||||
|
||||
> **For users who just want to use Jackify:** See the [User Guide](User-Guide) for step-by-step instructions.
|
||||
|
||||
This technical guide provides more detailed information about Jackify's architecture, Steam integration, advanced features, and implementation details for those that are interested.
|
||||
|
||||
## Steam Integration: The key to full automation
|
||||
|
||||
One of Jackify's most important features is the automated Steam integration. This allows the modlist install process on Linux to by automated end-to-end
|
||||
|
||||
### What Jackify Does Automatically
|
||||
|
||||
When Jackify creates Steam shortcuts, it's not just adding a simple game entry. The process involves several sophisticated steps:
|
||||
|
||||
<img src="https://raw.githubusercontent.com/Omni-guides/Jackify/main/assets/images/wiki/TechnicalGuide/Jackify_SteamLibraryIntegration.png" alt="Steam Library Integration" width="700">
|
||||
|
||||
*Steam library showing a newly created modlist shortcut with custom artwork, proper Proton configuration, and launch options - all configured automatically by Jackify*
|
||||
|
||||
**Behind the Scenes Process**:
|
||||
1. **Steam Shortcut Creation**: Jackify creates non-Steam game entries with proper naming and categorization
|
||||
2. **Proton Configuration**: Appropriate Proton versions are selected and configured for each modlist
|
||||
3. **Launch Options**: Complex launch parameters are set to ensure proper modlist loading
|
||||
4. **Compatibility Tools**: Additional tools like protontricks configurations are applied
|
||||
5. **Artwork Integration**: Where available, custom artwork is downloaded and applied
|
||||
6. **App ID Management**: Stable App IDs are generated to ensure consistent behavior
|
||||
|
||||
### Proton Version Selection
|
||||
|
||||
Jackify automatically selects appropriate Proton versions based on:
|
||||
- Game requirements and known compatibility
|
||||
- Modlist-specific needs (some modlists require specific Proton versions)
|
||||
- Available Proton installations on your system
|
||||
- Community testing and feedback
|
||||
|
||||
This eliminates the guesswork that plagued manual installations where choosing the wrong Proton version could cause subtle issues that were hard to diagnose.
|
||||
|
||||
### Launch Option Automation
|
||||
|
||||
The launch options Jackify creates are carefully crafted to:
|
||||
- Ensure proper modlist loading through ModOrganizer
|
||||
- Set environment variables for optimal compatibility
|
||||
- Configure wine prefixes and registry settings
|
||||
- Handle game-specific quirks and requirements
|
||||
|
||||
These launch options replace what used to be complex startup scripts and manual configuration files.
|
||||
|
||||
## Supported Games and Technical Details
|
||||
|
||||
Different games have different levels of support in Jackify, and understanding these differences helps set proper expectations for your modding experience.
|
||||
|
||||
### Fully Supported Games
|
||||
|
||||
**Skyrim Special Edition**: The most mature implementation with extensive testing across dozens of popular modlists. Skyrim has the most modlists available and the most refined automation.
|
||||
|
||||
**Fallout 4**: Full automation including Creation Club content handling and F4SE integration. Fallout 4 modlists often include complex scripting that requires careful Wine configuration.
|
||||
|
||||
**Fallout New Vegas**: Includes special handling for Tale of Two Wastelands (TTW) installations, which combine Fallout 3 and New Vegas into a single game.
|
||||
|
||||
**Enderal**: The total conversion mod for Skyrim gets special treatment since it's technically a separate game with unique requirements.
|
||||
|
||||
**Oblivion**: Classic game support with modern tooling, including OBSE integration and compatibility with newer modding tools.
|
||||
|
||||
### Download & Install Only Games
|
||||
|
||||
These games have basic installation support, but Steam integration is still being developed:
|
||||
|
||||
**Starfield**: Installation works perfectly, but some modlists may require manual Steam configuration until full automation is implemented.
|
||||
|
||||
**Cyberpunk 2077**: Basic support for popular modlists, with automation improvements planned based on community feedback.
|
||||
|
||||
**Baldur's Gate 3**: Installation support for the growing BG3 modding scene, with full automation coming as the modding tools mature.
|
||||
|
||||
## Advanced Features and Configuration
|
||||
|
||||
### Custom Modlist Support
|
||||
|
||||
Jackify isn't limited to official Wabbajack Gallery modlists. It also supports:
|
||||
|
||||
**Community Modlists**: Projects that are specifically designed for Linux users often have special optimizations and configurations.
|
||||
|
||||
**Beta Modlists**: Testing unreleased modlists or contributing to modlist development by installing work-in-progress versions.
|
||||
|
||||
**Personal Projects**: If you're developing your own modlists or customizing existing ones, Jackify can install and configure them.
|
||||
|
||||
### Settings and Persistence
|
||||
|
||||
Jackify stores configuration in logical locations that respect Linux conventions:
|
||||
|
||||
**User Settings** (`~/Jackify/`): Your personal preferences, API keys, and default directories. This is backed up automatically before major operations.
|
||||
|
||||
**Engine Configuration** (`~/.config/jackify/`): Lower-level settings that control how the jackify-engine operates. Most users never need to modify these manually.
|
||||
|
||||
**Modlist-Specific Configuration**: Each modlist gets its own configuration directory with game-specific settings and Steam integration data.
|
||||
|
||||
### Backup and Recovery
|
||||
|
||||
Jackify automatically creates backups before making significant changes:
|
||||
- Steam shortcuts are backed up before modification
|
||||
- Configuration files are versioned
|
||||
- Installation progress is checkpointed for resumability
|
||||
- Error recovery tools can restore previous working states
|
||||
|
||||
## Migration from Manual Setup
|
||||
|
||||
If you're coming from manual Wabbajack installations (perhaps following older guides), Jackify can help modernize your setup while preserving your existing installations.
|
||||
|
||||
### Assessment: What You Have vs. What You Need
|
||||
|
||||
Before migrating, it's worth understanding what manual installations typically lack:
|
||||
- Proper Steam integration with correct Proton settings
|
||||
- Consistent launch options and environment variables
|
||||
- Automated backup and recovery systems
|
||||
- Easy reconfiguration when system updates break things
|
||||
|
||||
### The Migration Process
|
||||
|
||||
Jackify's migration process is designed to be non-destructive - it analyzes your existing setup and adds proper Steam integration without breaking what already works.
|
||||
|
||||
#### Step 1: Using "Configure an Existing Modlist"
|
||||
|
||||
Start with Jackify's existing modlist configuration to survey what you have:
|
||||
|
||||
<img src="https://raw.githubusercontent.com/Omni-guides/Jackify/main/assets/images/wiki/TechnicalGuide/JackifyGUI_ConfigureExisting_SelectModlist.png" alt="Configure Existing Directory Browser" width="600">
|
||||
|
||||
*Jackify can detect and analyze existing modlist installations, even those created manually*
|
||||
|
||||
This step involves pointing Jackify to your existing modlist directory. Jackify will analyze the installation and determine what kind of Steam integration is needed.
|
||||
|
||||
#### Step 2: Directory Analysis and Validation
|
||||
|
||||
Jackify examines your installation to understand its structure and requirements:
|
||||
|
||||
<img src="https://raw.githubusercontent.com/Omni-guides/Jackify/main/assets/images/wiki/TechnicalGuide/JackifyGUI_ConfigureNewModlist_BrowseToMO2.png" alt="Directory Selection for Existing" width="600">
|
||||
|
||||
*The directory browser helps locate existing installations and validates their compatibility with automated configuration*
|
||||
|
||||
**What Jackify Looks For**:
|
||||
- ModOrganizer.exe and its configuration
|
||||
- Game installations and their versions
|
||||
- Existing mod installations and load orders
|
||||
- Wine prefix configurations (if any)
|
||||
- Steam shortcuts that might conflict
|
||||
|
||||
#### Step 3: Configuration Analysis and Planning
|
||||
|
||||
Once Jackify understands your installation, it shows you what it plans to do:
|
||||
|
||||
<img src="https://raw.githubusercontent.com/Omni-guides/Jackify/main/assets/images/wiki/TechnicalGuide/JackifyGUI_ConfigureNewModlist_Filled.png" alt="Modlist Detection" width="600">
|
||||
|
||||
*Jackify analyzes existing installations and shows exactly what it will configure, giving you control over the process*
|
||||
|
||||
This gives you a chance to review and approve changes before they're made. Jackify shows:
|
||||
- What Steam shortcuts will be created or modified
|
||||
- What Proton settings will be applied
|
||||
- What launch options will be configured
|
||||
- What backup operations will be performed
|
||||
|
||||
#### Step 4: Verification and Success
|
||||
|
||||
After configuration completes, Jackify confirms that everything is working properly:
|
||||
|
||||
<SCREENSHOT_REQUIRED>
|
||||
*Screenshot: Success dialog showing completed configuration and Steam shortcut creation*
|
||||
</SCREENSHOT_REQUIRED>
|
||||
|
||||
> **Note**: This screenshot will be added once the current modlist installation completes
|
||||
|
||||
### Benefits of Migration
|
||||
|
||||
Moving from manual setup to Jackify-managed installations provides several advantages:
|
||||
|
||||
**Simplified Workflow**: No more remembering complex command sequences or hunting for configuration files scattered across your system.
|
||||
|
||||
**Better Error Handling**: When things break (and they sometimes do after system updates), Jackify provides clear error messages and automated recovery options.
|
||||
|
||||
**Automatic Updates**: Jackify handles engine updates and configuration changes automatically, so you don't need to manually update scripts and configurations.
|
||||
|
||||
**Professional Interface**: Whether you prefer GUI or CLI, Jackify provides modern interfaces instead of relying on community scripts of varying quality.
|
||||
|
||||
**Consistency**: All your modlists use the same configuration approach, making troubleshooting and management much easier.
|
||||
|
||||
## Advanced Usage and Power User Features
|
||||
|
||||
### Automation and Scripting
|
||||
|
||||
While Jackify's GUI is designed for interactive use, the CLI interface supports automation scenarios:
|
||||
|
||||
**Batch Installation**: Install multiple modlists sequentially using configuration files or scripts.
|
||||
|
||||
**Remote Management**: Manage modlist installations on remote systems via SSH using the CLI interface.
|
||||
|
||||
**Configuration Templates**: Create standardized configurations for common setups and reuse them across multiple installations.
|
||||
|
||||
### Custom Configurations
|
||||
|
||||
Advanced users can customize Jackify's behavior through configuration files:
|
||||
|
||||
**Game-Specific Settings**: Override default Proton versions, launch options, or compatibility settings for specific games or modlists.
|
||||
|
||||
**Directory Templates**: Create standardized directory structures that match your preferred organization scheme.
|
||||
|
||||
**Integration Hooks**: Add custom scripts that run before or after installation steps for specialized setups.
|
||||
|
||||
### Development and Testing
|
||||
|
||||
If you're involved in modlist development or want to contribute to the Linux modding community:
|
||||
|
||||
**Beta Testing**: Install and test unreleased modlists to provide feedback to modlist authors.
|
||||
|
||||
**Performance Profiling**: Use Jackify's detailed logging to identify performance bottlenecks in modlists or configurations.
|
||||
|
||||
**Configuration Sharing**: Export working configurations to share with other users or contribute to community knowledge.
|
||||
|
||||
## Architecture and Implementation
|
||||
|
||||
### Core Components
|
||||
|
||||
**Backend Services**: Python service layer with modular handlers for different operations
|
||||
- `modlist_service.py`: Primary orchestrator for modlist operations
|
||||
- `api_key_service.py`: Nexus Mods API key management
|
||||
- `resolution_service.py`: Display configuration handling
|
||||
- `protontricks_detection_service.py`: Compatibility tool detection
|
||||
|
||||
**Frontend Interfaces**: Dual interface system
|
||||
- **GUI**: PySide6/PyQt6 interface for interactive use
|
||||
- **CLI**: Interactive text-based interface for automation and remote access
|
||||
|
||||
**Engine Integration**: Native jackify-engine 0.3.0 binary
|
||||
- Optimized for Linux performance
|
||||
- Handles core modlist processing
|
||||
- No Wine/Proton dependencies for the engine itself
|
||||
|
||||
### Configuration Management
|
||||
|
||||
**User Settings** (`~/Jackify/`):
|
||||
- Personal preferences and API keys
|
||||
- Default directory configurations
|
||||
- Encrypted storage for sensitive data
|
||||
|
||||
**Engine Configuration** (`~/.config/jackify/`):
|
||||
- Low-level engine settings
|
||||
- Performance and compatibility options
|
||||
- Debug and logging configurations
|
||||
|
||||
**Modlist-Specific Data**:
|
||||
- Game-specific settings per installation
|
||||
- Steam integration metadata
|
||||
- Backup and recovery information
|
||||
|
||||
### Error Handling and Recovery
|
||||
|
||||
**Automatic Backups**: Created before significant operations
|
||||
- Steam shortcut configurations
|
||||
- User settings and preferences
|
||||
- Installation progress checkpoints
|
||||
|
||||
**Error Recovery**: Tools to restore previous working states
|
||||
- Rollback mechanisms for failed installations
|
||||
- Configuration restoration from backups
|
||||
- Process cleanup and resource management
|
||||
|
||||
## The Road Ahead: Future Plans and Development
|
||||
|
||||
### Upcoming Features
|
||||
|
||||
Jackify is actively developed with regular updates planned:
|
||||
|
||||
**Expanded Game Support**: Additional games are being added based on community demand and modding ecosystem maturity.
|
||||
|
||||
**Enhanced Automation**: More aspects of modlist management will be automated, reducing the need for manual intervention.
|
||||
|
||||
**Performance Improvements**: Faster installation and configuration through optimized download strategies and parallel processing.
|
||||
|
||||
**Community Features**: Better integration with modlist communities, including rating systems and user reviews.
|
||||
|
||||
### Non-Premium Nexus Support
|
||||
|
||||
One of the most requested features is support for non-premium Nexus users. This is technically challenging since it requires different download strategies, but it's being actively researched.
|
||||
|
||||
**Potential Approaches**:
|
||||
- Semi-automated downloads where users manually download critical files
|
||||
- Integration with alternative mod distribution platforms
|
||||
- Hybrid approaches that minimize manual intervention while respecting Nexus policies
|
||||
|
||||
### Community Involvement
|
||||
|
||||
The Linux modding community has always been collaborative, and Jackify continues this tradition:
|
||||
|
||||
**Feedback and Testing**: User feedback drives development priorities and helps identify issues across different system configurations.
|
||||
|
||||
**Documentation**: Community contributions to documentation help new users get started and document edge cases.
|
||||
|
||||
**Modlist Compatibility**: Working with modlist authors to ensure their projects work well on Linux through Jackify.
|
||||
|
||||
## Supporting the Project
|
||||
|
||||
Jackify represents hundreds of hours of development work, testing, and community engagement. If you find it useful, there are several ways to support continued development:
|
||||
|
||||
**Use and Provide Feedback**: The most valuable contribution is using Jackify and reporting issues, suggesting improvements, and sharing your experiences.
|
||||
|
||||
**Community Support**: Help other users in Discord channels, forums, and GitHub discussions. Your experience can save others hours of troubleshooting.
|
||||
|
||||
**Documentation**: Contribute to documentation, write guides, or create video tutorials that help newcomers.
|
||||
|
||||
**Code Contributions**: For developers, contributing code, bug fixes, or new features helps improve Jackify for everyone.
|
||||
|
||||
**Financial Support**: If Jackify saves you time and effort, consider supporting development through Ko-fi or similar platforms.
|
||||
|
||||
**Spread the Word**: Star the GitHub repository, share with other Linux gamers, and help grow the community.
|
||||
|
||||
---
|
||||
|
||||
*For step-by-step usage instructions, see the [User Guide](User-Guide).*
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<div align="center">
|
||||
|
||||
[Wiki](https://github.com/Omni-guides/Jackify/wiki) | [Nexus](https://www.nexusmods.com/site/mods/1427) | [Download](https://www.nexusmods.com/Core/Libs/Common/Widgets/DownloadPopUp?id=5807&game_id=2295) | [Wabbajack Discord](https://discord.gg/wabbajack) | [Jackify Issues](https://github.com/Omni-guides/Jackify/issues) | [Legacy Guides](https://github.com/Omni-guides/Jackify/tree/master/Legacy) | [Ko-fi](https://ko-fi.com/omni1)
|
||||
[Wiki](https://github.com/Omni-guides/Jackify/wiki) | [Nexus](https://www.nexusmods.com/site/mods/1427) | [Download](https://www.nexusmods.com/site/mods/1427?tab=files) | [Wabbajack Discord](https://discord.gg/wabbajack) | [Jackify Issues](https://github.com/Omni-guides/Jackify/issues) | [Legacy Guides](https://github.com/Omni-guides/Jackify/tree/master/Legacy) | [Ko-fi](https://ko-fi.com/omni1)
|
||||
|
||||
</div>
|
||||
|
||||
@@ -176,7 +176,7 @@ If you already have the .wabbajack file for your desired modlist downloaded, or
|
||||
|
||||
This is particularly useful for:
|
||||
- Beta versions of modlists not yet in the public catalog
|
||||
- Community-created modlists no distributed through Wabbajack's ecosystem
|
||||
- Community-created modlists not distributed through Wabbajack's ecosystem
|
||||
- Personal modlist projects
|
||||
|
||||
### Step 5: Configuring Directories
|
||||
@@ -230,7 +230,7 @@ The final configuration step involves setting display preferences:
|
||||
|
||||
*Resolution configuration ensures your modlist is optimized for your display setup*
|
||||
|
||||
**Resolution Settings**: Choose the resolution that matches your monitor or your preferred gaming resolution. This can be changed later, but setting it correctly now saves configuration time. jackify will remember the last resolution you set to make future modlist installs easier.
|
||||
**Resolution Settings**: Choose the resolution that matches your monitor or your preferred gaming resolution. This can be changed later, but setting it correctly now saves configuration time. Jackify will remember the last resolution you set to make future modlist installs easier.
|
||||
|
||||
### Step 8: Installation Process
|
||||
|
||||
|
||||
Reference in New Issue
Block a user