|
| 1 | +# HyprRice Autoconfig Guide |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +HyprRice Autoconfig is an intelligent configuration system that automatically optimizes your HyprRice setup based on your system's hardware capabilities and your preferred performance profile. |
| 6 | + |
| 7 | +## Features |
| 8 | + |
| 9 | +### 🔍 **System Profiling** |
| 10 | +- **Hardware Detection**: CPU cores, memory, GPU type and capabilities |
| 11 | +- **Performance Assessment**: Automatic system performance level detection |
| 12 | +- **Display Analysis**: Multi-monitor support, resolution detection |
| 13 | +- **System Type**: Laptop vs desktop, touchscreen detection |
| 14 | +- **Storage Type**: SSD/NVMe vs HDD detection |
| 15 | + |
| 16 | +### ⚡ **Performance Profiles** |
| 17 | + |
| 18 | +#### Performance Profile |
| 19 | +- Optimized for speed and responsiveness |
| 20 | +- Reduced animation durations |
| 21 | +- Optimized blur settings based on GPU |
| 22 | +- Efficient window gaps |
| 23 | +- Best for: Gaming, productivity, general use |
| 24 | + |
| 25 | +#### Visual Profile |
| 26 | +- Maximum visual effects and animations |
| 27 | +- Enhanced blur effects |
| 28 | +- Smooth animation curves |
| 29 | +- Larger gaps for visual appeal |
| 30 | +- Best for: Showcasing, aesthetic-focused setups |
| 31 | + |
| 32 | +#### Battery Profile |
| 33 | +- Power-saving optimizations |
| 34 | +- Minimized animations |
| 35 | +- Disabled GPU-intensive effects |
| 36 | +- Optimized auto-save intervals |
| 37 | +- Best for: Laptops, mobile devices |
| 38 | + |
| 39 | +#### Minimal Profile |
| 40 | +- Lightweight, clean experience |
| 41 | +- Minimal animations |
| 42 | +- No visual effects |
| 43 | +- Streamlined interface |
| 44 | +- Best for: Low-end systems, resource-constrained environments |
| 45 | + |
| 46 | +### 🛠️ **Intelligent Optimizations** |
| 47 | + |
| 48 | +#### System-Specific |
| 49 | +- **Low-end Systems**: Further reduced effects, disabled blur |
| 50 | +- **Laptops**: More frequent auto-saves, reduced backup retention |
| 51 | +- **Multi-display**: Consistent positioning, optimized layouts |
| 52 | +- **High-resolution**: Adjusted font sizes, larger GUI windows |
| 53 | + |
| 54 | +#### Hardware-Aware |
| 55 | +- **GPU Capabilities**: Blur settings based on GPU performance |
| 56 | +- **Memory**: Animation complexity based on available RAM |
| 57 | +- **Storage**: Backup frequency based on storage type |
| 58 | +- **CPU**: Animation duration based on CPU cores |
| 59 | + |
| 60 | +## Usage |
| 61 | + |
| 62 | +### Command Line Interface |
| 63 | + |
| 64 | +```bash |
| 65 | +# Basic autoconfig with performance profile |
| 66 | +hyprrice autoconfig |
| 67 | + |
| 68 | +# Apply specific profile |
| 69 | +hyprrice autoconfig --profile visual |
| 70 | +hyprrice autoconfig --profile battery |
| 71 | +hyprrice autoconfig --profile minimal |
| 72 | + |
| 73 | +# Interactive mode |
| 74 | +hyprrice autoconfig --interactive |
| 75 | + |
| 76 | +# Skip backup creation |
| 77 | +hyprrice autoconfig --no-backup |
| 78 | + |
| 79 | +# JSON output for scripting |
| 80 | +hyprrice autoconfig --json |
| 81 | +``` |
| 82 | + |
| 83 | +### Programmatic Usage |
| 84 | + |
| 85 | +```python |
| 86 | +from hyprrice.autoconfig import run_autoconfig, PerformanceProfile |
| 87 | + |
| 88 | +# Run autoconfig |
| 89 | +result = run_autoconfig( |
| 90 | + profile="performance", |
| 91 | + interactive=False, |
| 92 | + backup=True |
| 93 | +) |
| 94 | + |
| 95 | +if result.success: |
| 96 | + print(f"Applied {result.profile_applied.value} profile") |
| 97 | + print(f"Performance impact: {result.performance_impact}") |
| 98 | + |
| 99 | + for optimization in result.optimizations_applied: |
| 100 | + print(f"• {optimization}") |
| 101 | +``` |
| 102 | + |
| 103 | +## System Requirements |
| 104 | + |
| 105 | +### Minimum Requirements |
| 106 | +- **CPU**: 2+ cores |
| 107 | +- **Memory**: 4GB RAM |
| 108 | +- **GPU**: Integrated graphics |
| 109 | +- **Storage**: Any type |
| 110 | + |
| 111 | +### Recommended Requirements |
| 112 | +- **CPU**: 4+ cores |
| 113 | +- **Memory**: 8GB+ RAM |
| 114 | +- **GPU**: Dedicated graphics card |
| 115 | +- **Storage**: SSD or NVMe |
| 116 | + |
| 117 | +### Optimal Requirements |
| 118 | +- **CPU**: 8+ cores |
| 119 | +- **Memory**: 16GB+ RAM |
| 120 | +- **GPU**: High-end dedicated graphics |
| 121 | +- **Storage**: NVMe SSD |
| 122 | + |
| 123 | +## Configuration Profiles |
| 124 | + |
| 125 | +### Performance Profile Settings |
| 126 | +```yaml |
| 127 | +hyprland: |
| 128 | + animation_duration: 0.3 |
| 129 | + animation_curve: "ease-out" |
| 130 | + blur_enabled: true # Based on GPU |
| 131 | + blur_size: 4 |
| 132 | + gaps_in: 3 |
| 133 | + gaps_out: 6 |
| 134 | + window_opacity: 1.0 |
| 135 | +``` |
| 136 | +
|
| 137 | +### Visual Profile Settings |
| 138 | +```yaml |
| 139 | +hyprland: |
| 140 | + animation_duration: 0.6 |
| 141 | + animation_curve: "ease-out-quart" |
| 142 | + blur_enabled: true |
| 143 | + blur_size: 12 |
| 144 | + blur_passes: 2 |
| 145 | + gaps_in: 8 |
| 146 | + gaps_out: 15 |
| 147 | + window_opacity: 0.95 |
| 148 | +``` |
| 149 | +
|
| 150 | +### Battery Profile Settings |
| 151 | +```yaml |
| 152 | +hyprland: |
| 153 | + animation_duration: 0.2 |
| 154 | + animation_curve: "linear" |
| 155 | + blur_enabled: false |
| 156 | + gaps_in: 2 |
| 157 | + gaps_out: 4 |
| 158 | + |
| 159 | +gui: |
| 160 | + auto_save_interval: 60 |
| 161 | +``` |
| 162 | +
|
| 163 | +### Minimal Profile Settings |
| 164 | +```yaml |
| 165 | +hyprland: |
| 166 | + animation_duration: 0.1 |
| 167 | + animation_curve: "linear" |
| 168 | + blur_enabled: false |
| 169 | + gaps_in: 1 |
| 170 | + gaps_out: 2 |
| 171 | + |
| 172 | +gui: |
| 173 | + show_tooltips: false |
| 174 | + show_status_bar: false |
| 175 | +``` |
| 176 | +
|
| 177 | +## Advanced Features |
| 178 | +
|
| 179 | +### System Profiling Details |
| 180 | +
|
| 181 | +#### CPU Profiling |
| 182 | +- Core count detection |
| 183 | +- CPU model identification |
| 184 | +- Performance scoring |
| 185 | +
|
| 186 | +#### Memory Profiling |
| 187 | +- Total RAM detection |
| 188 | +- Memory-based optimizations |
| 189 | +- Performance impact assessment |
| 190 | +
|
| 191 | +#### GPU Profiling |
| 192 | +- GPU type detection (NVIDIA, AMD, Intel) |
| 193 | +- GPU memory estimation |
| 194 | +- Blur capability assessment |
| 195 | +
|
| 196 | +#### Display Profiling |
| 197 | +- Resolution detection |
| 198 | +- Multi-monitor support |
| 199 | +- Refresh rate analysis |
| 200 | +
|
| 201 | +#### Storage Profiling |
| 202 | +- SSD/NVMe vs HDD detection |
| 203 | +- Backup frequency optimization |
| 204 | +- Performance impact |
| 205 | +
|
| 206 | +### Performance Level Detection |
| 207 | +
|
| 208 | +#### Scoring System |
| 209 | +- **CPU**: 1-3 points based on core count |
| 210 | +- **Memory**: 1-3 points based on RAM |
| 211 | +- **GPU**: 1-3 points based on type |
| 212 | +- **Storage**: 1-2 points based on type |
| 213 | +
|
| 214 | +#### Performance Levels |
| 215 | +- **Ultra**: 10+ points (High-end systems) |
| 216 | +- **High**: 7-9 points (Gaming systems) |
| 217 | +- **Medium**: 4-6 points (Standard systems) |
| 218 | +- **Low**: 1-3 points (Budget systems) |
| 219 | +
|
| 220 | +### Backup and Recovery |
| 221 | +
|
| 222 | +#### Automatic Backups |
| 223 | +- Timestamped backup creation |
| 224 | +- Configurable backup retention |
| 225 | +- Rollback capabilities |
| 226 | +
|
| 227 | +#### Backup Naming |
| 228 | +``` |
| 229 | +config.autoconfig_backup_YYYYMMDD_HHMMSS.yaml |
| 230 | +``` |
| 231 | + |
| 232 | +#### Recovery Process |
| 233 | +```bash |
| 234 | +# Restore from backup |
| 235 | +cp ~/.config/hyprrice/config.autoconfig_backup_20250930_231924.yaml \ |
| 236 | + ~/.config/hyprrice/config.yaml |
| 237 | +``` |
| 238 | + |
| 239 | +## Troubleshooting |
| 240 | + |
| 241 | +### Common Issues |
| 242 | + |
| 243 | +#### Autoconfig Fails |
| 244 | +```bash |
| 245 | +# Check system dependencies |
| 246 | +hyprrice doctor |
| 247 | + |
| 248 | +# Run with verbose output |
| 249 | +hyprrice autoconfig --verbose |
| 250 | + |
| 251 | +# Check logs |
| 252 | +tail -f ~/.hyprrice/logs/hyprrice.log |
| 253 | +``` |
| 254 | + |
| 255 | +#### Performance Issues |
| 256 | +```bash |
| 257 | +# Apply minimal profile |
| 258 | +hyprrice autoconfig --profile minimal |
| 259 | + |
| 260 | +# Check system resources |
| 261 | +hyprctl monitors |
| 262 | +free -h |
| 263 | +``` |
| 264 | + |
| 265 | +#### Configuration Conflicts |
| 266 | +```bash |
| 267 | +# Restore from backup |
| 268 | +hyprrice autoconfig --no-backup |
| 269 | + |
| 270 | +# Manual configuration |
| 271 | +hyprrice gui |
| 272 | +``` |
| 273 | + |
| 274 | +### Debug Mode |
| 275 | + |
| 276 | +```bash |
| 277 | +# Enable debug logging |
| 278 | +export HYPRRICE_DEBUG=1 |
| 279 | +hyprrice autoconfig |
| 280 | + |
| 281 | +# Check system profile |
| 282 | +python -c "from hyprrice.autoconfig import SystemProfiler; p = SystemProfiler(); print(p.profile_system())" |
| 283 | +``` |
| 284 | + |
| 285 | +## Integration |
| 286 | + |
| 287 | +### GUI Integration |
| 288 | +- Autoconfig wizard in main GUI |
| 289 | +- System analysis dashboard |
| 290 | +- Performance monitoring |
| 291 | +- Profile switching interface |
| 292 | + |
| 293 | +### CLI Integration |
| 294 | +- Doctor command integration |
| 295 | +- Migration system integration |
| 296 | +- Plugin system integration |
| 297 | +- Backup system integration |
| 298 | + |
| 299 | +### API Integration |
| 300 | +```python |
| 301 | +from hyprrice.autoconfig import AutoconfigManager, PerformanceProfile |
| 302 | + |
| 303 | +# Create manager |
| 304 | +manager = AutoconfigManager() |
| 305 | + |
| 306 | +# Run autoconfig |
| 307 | +result = manager.run_autoconfig( |
| 308 | + profile=PerformanceProfile.VISUAL, |
| 309 | + interactive=False, |
| 310 | + backup=True |
| 311 | +) |
| 312 | + |
| 313 | +# Access results |
| 314 | +print(f"Success: {result.success}") |
| 315 | +print(f"Profile: {result.profile_applied}") |
| 316 | +print(f"Optimizations: {result.optimizations_applied}") |
| 317 | +``` |
| 318 | + |
| 319 | +## Best Practices |
| 320 | + |
| 321 | +### Profile Selection |
| 322 | +- **Performance**: General use, gaming, productivity |
| 323 | +- **Visual**: Showcasing, aesthetic setups |
| 324 | +- **Battery**: Laptops, mobile devices |
| 325 | +- **Minimal**: Low-end systems, resource constraints |
| 326 | + |
| 327 | +### System Optimization |
| 328 | +- Run autoconfig after hardware changes |
| 329 | +- Use appropriate profile for your use case |
| 330 | +- Monitor performance impact |
| 331 | +- Create backups before major changes |
| 332 | + |
| 333 | +### Maintenance |
| 334 | +- Regular system profiling |
| 335 | +- Profile updates based on usage |
| 336 | +- Performance monitoring |
| 337 | +- Configuration validation |
| 338 | + |
| 339 | +## Examples |
| 340 | + |
| 341 | +### Basic Setup |
| 342 | +```bash |
| 343 | +# First-time setup |
| 344 | +hyprrice autoconfig --profile performance |
| 345 | + |
| 346 | +# Check results |
| 347 | +hyprrice doctor |
| 348 | +``` |
| 349 | + |
| 350 | +### Laptop Optimization |
| 351 | +```bash |
| 352 | +# Battery-optimized setup |
| 353 | +hyprrice autoconfig --profile battery |
| 354 | + |
| 355 | +# Performance setup when plugged in |
| 356 | +hyprrice autoconfig --profile performance |
| 357 | +``` |
| 358 | + |
| 359 | +### Gaming Setup |
| 360 | +```bash |
| 361 | +# Performance-optimized for gaming |
| 362 | +hyprrice autoconfig --profile performance |
| 363 | + |
| 364 | +# Visual setup for streaming |
| 365 | +hyprrice autoconfig --profile visual |
| 366 | +``` |
| 367 | + |
| 368 | +### Low-end System |
| 369 | +```bash |
| 370 | +# Minimal setup for old hardware |
| 371 | +hyprrice autoconfig --profile minimal |
| 372 | + |
| 373 | +# Check system capabilities |
| 374 | +hyprrice autoconfig --json | jq '.recommendations' |
| 375 | +``` |
| 376 | + |
| 377 | +## Contributing |
| 378 | + |
| 379 | +### Adding New Profiles |
| 380 | +1. Define profile in `PerformanceProfile` enum |
| 381 | +2. Implement optimization logic in `ConfigurationGenerator` |
| 382 | +3. Add profile-specific settings |
| 383 | +4. Update documentation |
| 384 | + |
| 385 | +### Enhancing System Profiling |
| 386 | +1. Add new profiling methods to `SystemProfiler` |
| 387 | +2. Update performance scoring |
| 388 | +3. Add hardware-specific optimizations |
| 389 | +4. Test with various hardware configurations |
| 390 | + |
| 391 | +### Improving Optimizations |
| 392 | +1. Analyze performance impact |
| 393 | +2. Add new optimization strategies |
| 394 | +3. Implement hardware-specific tweaks |
| 395 | +4. Validate with real-world testing |
| 396 | + |
| 397 | +## License |
| 398 | + |
| 399 | +This autoconfig system is part of HyprRice and follows the same MIT license. |
0 commit comments