v1.0.1
Changelog
Introducing Daemon Mode with per-profile exclusion and follow-focus compatibility
Daemon mode (-d, --daemon ) automatically scan for windows matching any profile and begin upscaling. When the window closes, scanning resumes silently. A profile can set daemon_exclude: true to be ignored by automatic scanning.
It can be combined with follow-focus mode, so daemon finds the first matching window, follow-focus takes over afterward. Scanning resumes when the window is closed.
In daemon mode, the GUI hides when a window is matched and reappears when scanning resumes.
Added intervals and error recovery options
New options: daemon_poll_interval, pipeline_poll_interval, max_capture_failures, capture_failure_delay, swapchain_recreate_debounce. Exposed in CLI and GUI (Advanced tab).
Internal improvements
- All pipeline sleeps were replaced with interruptible events, closing the daemon or GUI is now instantaneous.
MainWindownow delegates most of the logic to helpersDaemonController,WindowGridManagerandProfileActions.- Overlay now emits
closedsignal making its close more versatile (needed for reusable overlay in Daemon Mode). - WindowGrid tiles style have been refactored.
- Validators simplified and background colors are always saved as hex strings.
Bug Fixes
- Daemon monitor no longer runs inside the pipeline session, preventing duplicate Vulkan resources.
- Daemon monitor and window grid share persistent connections, avoiding connection churn.
- Fixed compatibility with
xcffibin error handlers. - GUI manual selection reuses the existing daemon pipeline instead of creating a second session.
- Exit hotkey tears down daemon and quits without showing the GUI.
- Swapchain is now created after the overlay is shown, preventing possible endless recreation.