Skip to content

Commit 1c99dc0

Browse files
updates to ui and wizards
1 parent ad74df0 commit 1c99dc0

File tree

109 files changed

+14654
-1023
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+14654
-1023
lines changed

AUTOCONFIG_GUIDE.md

Lines changed: 399 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,399 @@
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

Comments
 (0)