Switch layouts are now stored in TOML, added proper error handling and a static method to trigger switching, replaced JSON handling, updated imports and fixed related services.
Expose KeyboardLayout.switch_keyboard_layout as a public method and integrate it into the main application to enable dynamic keyboard layout changes at runtime.
- Replace commented-out launcher shortcuts with active screen capture and keyboard layout switcher.
- Update keybinding logic to use new method signatures.
Add @Signal fullscreen_changed(), expose a read‑write fullscreen Property that triggers the signal on change, set its default to False, connect Hyprland’s fullscreen event to update the property, and store it on the service instance.
Added a new window class that integrates with the capture service, provides a toolbar of tool buttons for region, screen, window, and recording modes, includes an options button to toggle settings, and implements save directory selection, delay, cursor, thumbnail, and microphone controls. The implementation follows the existing widget architecture and updates related modules to expose the new functionality.
Simplify stop_recording by removing redundant process kills and file handling
Add guard to prevent reinitialization
Replace exec_shell_command_async with Gio.Subprocess and track pending screenshot
Refactor screenshot method to eliminate multi‑display special case
Clean up conversion logic and remove unused imports
The imports now use toml_file to load dock.toml and launcher.toml directly, removing the get_relative_path utility and simplifying path handling. This reduces indirect dependencies and clarifies configuration loading.
- Escape markup text for summary and body to prevent injection
- Simplify Label creation for body with conditional null check
- Increase max_chars_width for summary and body lines
- Remove wrap and wrap_mode settings
- introduced LERP_FACTOR, IDLE_THRESHOLD, ANIM_FPS and related layout constants
- added DockItem dataclass with render geometry and scale state
- refactored on_hover_enter/leave to schedule delayed hide with ticket comparison
- updated setup_occlusion_monitoring with typed check_dock_occlusion returning bool
- cleaned up destroy to remove canvas and timer IDs