Releases: maksim0-debug/Solaris
v1.0.7
Release v1.0.7
This release focuses on under-the-hood improvements. Background CPU and GPU resource consumption has been reduced, hardware calls to monitors have been optimized, and the "Start in Tray" feature has been implemented.
✨ What's New
- 🖥️ Startup Modes: Application startup behavior can now be customized. Settings now include options to choose between starting Minimized or launching hidden in the System Tray.
- ⌨️ Command Line Arguments: Added the
--trayflag to force the app to start in the background without showing a window or taskbar icon. - 🌍 Localization: New features and UI elements have been translated into English, Russian, and Ukrainian.
⚡ Performance & Core Optimizations
- 🧊 Background CPU Optimization (C++ Gaming Detector): The fullscreen game detection logic in
monitor_manager.cpphas been rewritten.- Introduced PID caching (
process_cache_). Operations like fetching the full process path, checking parent processes, and scanning loaded DLLs for XInput/DirectX/Vulkan are now executed strictly once per process lifetime. - The detector polling interval has been increased to 2 seconds, dropping background CPU usage to near zero while maintaining protection against Alt-Tab false positives.
- Introduced PID caching (
- ⏸️ UI Freezing Optimization (Flutter): When the window is minimized or sent to the tray, the app now uses
TickerModeinstead of pruning widgets from the tree (SizedBox.shrink()). This stops animations (like the Pulsing Radar and Dial) and gradient rendering to save GPU resources, while preserving widget states to eliminate visual flickering and lag when restoring the window. - ⏱️ Circadian Loop Debouncing: The hardware-facing color temperature update loop no longer reacts to every 1-second tick of the UI chart. The
debouncedSolarStateProviderhas been implemented, which only pushes new values to the monitors if the sun elevation changes by >= 0.1°, the day phase changes, or a 60-second heartbeat elapses. This reduces background calculations. - 📉 DDC/CI Bus Optimization: The delay between sending commands in
TemperatureServicehas been increased from 30ms to 120ms (~8 Hz). Because the human eye is less sensitive to the timing of color temperature shifts compared to physical motion, this maintains smooth visual transitions while reducingSetDeviceGammaRampcalls and MethodChannel traffic by nearly 4x.
🐛 Bug Fixes & Improvements
- 📌 Taskbar Integration: Fixed a bug where restoring the window by clicking the tray icon could cause the app to be missing from the Windows taskbar (added a forced
setSkipTaskbar(false)call). - ✨ Smooth Windows Startup: Window initialization has been moved to the Dart side after the first frame is rendered, and the
Show()callback was removed from C++ (flutter_window.cpp). - 🌙 Sleep Screen: Improved the rendering logic for analysis sections. Circadian rhythm regulation panels are no longer blocked by strict Google Fit status checks, and loading states ("Syncing...") are displayed more gracefully.
- ⚙️ Hotkeys: Fixed an issue preventing the resetting and updating of custom global hotkeys for the auto-brightness toggle.
v1.0.6
1.0.6
v1.0.5
Enhances weather influence with WeatherAPI.com integration
Upgrades weather data acquisition by integrating WeatherAPI.com as the primary source, with Open-Meteo serving as a reliable fallback. This provides more accurate real-time weather conditions and solar radiation data for precise brightness adjustments.
Introduces a new setting to allow users to manually select their preferred weather provider or use an automatic fallback system. A WEATHER_API_KEY is now required for WeatherAPI.com functionality.
Refines the weather adjustment logic, making brightness responses to cloudiness and precipitation more impactful. Updates the UI to display wind speed and the last updated time for weather data, replacing surface temperature readings. Adjusts cloud animations for a more intuitive visual representation.
v1.0.4
v1.0.3
Including License In Builds, Updating Google Fit Documentation
