v1.3.7 - Code Quality & Cross-Platform Release
Major Code Quality Improvements
This release represents a significant leap in code quality, maintainability, and production readiness.
π― Key Improvements
Logging & Monitoring
- β Comprehensive logging system with dual output (console + file)
- β Configurable log levels (DEBUG/INFO)
- β
Persistent logs saved to
rainingkeys.log - β Exception traces with full context
Code Safety & Type Safety
- β Complete type hints throughout all core modules
- β Fixed unsafe bar pool recycling with removed flag tracking
- β Signal blocking context manager to prevent Qt resource leaks
- β Thread-safety documentation for input monitoring
Cross-Platform Compatibility
- β System font fallbacks for Consolas, Arial, and other fonts
- β Font fallback chains for Windows, macOS, and Linux
- β Better handling of missing system fonts
Configuration & Validation
- β Configuration validation with automatic value clamping
- β Color string parsing with detailed error messages
- β Removed magic numbers - all constants in VisualSettings
- β Fixed bar_color to use @Property decorator
Error Handling
- β Robust error handling for all file I/O operations
- β Graceful fallbacks when configuration fails
- β User-friendly error messages
π¦ Downloads
RainingKeysPython.zip- Release build (no console window)RainingKeysPython-debug.zip- Debug build (with console for troubleshooting)
π Installation
- Download and extract the appropriate zip file
- Run
RainingKeysPython.exe - Use the settings window to configure your overlay
- Press keys to see them visualized in real-time
π Technical Details
Version: 1.3.7
Python: 3.12+
Dependencies: PySide6, pynput, pywin32
Full Changelog:
- Added
core/logging_config.py- Centralized logging infrastructure - Added
core/qt_utils.py- Qt utility functions and context managers - Updated all modules to use logging instead of print statements
- Fixed bar_color property access with @Property decorator
- Added thread-safety documentation to InputWorker class
- Implemented signals_blocked() context manager for safer Qt operations
- Added system font fallback methods (_get_mono_font, _get_sans_font)
- Moved display constants to VisualSettings dataclass
- Added configuration validation methods
- Fixed unsafe bar recycling with removed flag tracking
Previous Release: v1.3.5
Upgrade Instructions: Simply replace your existing executable with the new version. Your configuration will be preserved.
Bug Reports: Please report issues on GitHub with logs from rainingkeys.log