HyprRice is a comprehensive, modular ricing tool for the Hyprland Wayland compositor ecosystem. Built with Python and PyQt5, it provides a modern GUI, deep integration with Hyprland tools, theme management, plugin support, and robust configuration handling.
- src/hyprrice/
-
gui.py: Main application window
- Event dispatch system
- Tab management
- Plugin integration
- Configuration binding
-
gui/tabs.py: Configuration tabs
- Hyprland core settings
- Waybar customization
- Rofi configuration
- Notification settings
- Clipboard management
- Lockscreen setup
- Theme management
- Settings and plugins
-
gui/preview.py: Live preview system
- Real-time updates
- Theme visualization
- Layout preview
- Animation testing
-
gui/theme_manager.py: Theme handling
- Theme loading/saving
- Gallery management
- Import/export
- Validation
-
plugins.py: Plugin system
- Plugin base class
- Event hooks
- Plugin manager
- Hot-reload support
-
hyprland/: Hyprland modules
- animations.py: Animation configuration
- display.py: Monitor and workspace setup
- input.py: Input device handling
- windows.py: Window management
- workspaces.py: Workspace configuration
-
- User interacts with GUI
- Changes trigger plugin events
- Validation occurs
- Preview updates
- Changes applied on confirmation
- Audit trail updated
- PyQt5: Chosen for:
- Native Wayland support
- Rich widget set
- Performance
- Stability
- Event-based: Allows for:
- Non-blocking operations
- Clean separation
- Easy extension
- Safe integration
- YAML format: Provides:
- Human readability
- Easy validation
- Version control friendly
- Community sharing
- Versioned backups: Ensures:
- Safe experimentation
- Easy rollback
- History tracking
- Disaster recovery
- Event hooks for key operations
- UI extension capabilities
- Configuration access
- Theme integration
- Preview manipulation
- Standard format
- Component separation
- Style inheritance
- Custom properties
- Export/sharing
- Multiple formats
- Validation rules
- Import safety
- Version tracking
- Async operations
- Cached previews
- Lazy loading
- Event debouncing
- Minimal dependencies
- Efficient preview
- Smart validation
- Optimized imports
- Cache control
- Resource cleanup
- Plugin isolation
- Preview optimization
- Backup system
- Validation checks
- Safe defaults
- Error recovery
- Sandboxed execution
- Resource limits
- Error handling
- Clean shutdown
- Additional tool integration
- Enhanced preview system
- More theme options
- Extended plugin API
- Maintain v1.x API
- Support older configs
- Plugin compatibility
- Theme format stability
- User guide
- API reference
- Plugin examples
- Theme tutorial
- Troubleshooting
- Unit tests
- Integration tests
- Plugin testing
- Theme validation
- Performance benchmarks