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
Add new NumLock service to monitor NumLock LED state changes.
Refactor Battery service documentation and property cache handling.
Update imports to include NumLock.
- Implement _on_button_press to show Gtk.Menu on right‑click.
- Provide Pair, Trust/Untrust, and Remove commands.
- Connect notify::connected-devices signal to refresh device list.
- Ensure graceful cleanup when device is removed.
Reduce bar count from 10 to 8 and adjust height limits, add CustomImage widget for artwork, update visibility handling to show/hide fallback and artwork
Replace random-based bar generation with deterministic sine animation, rename internal state and constants, split visualizer logic into explicit methods, update drawing to use style colors, consolidate signal and timer handling, and streamline idle/reset behavior.
Add guard flag `_pos_polling` and wrapper methods `_start_pos_fabricator` and `_stop_pos_fabricator` to prevent multiple fabricator starts.
Update all calls to use the new wrappers for consistent lifecycle management.
- Change status fabricator interval from 250ms to 5000ms
- Change position fabricator interval from 1000ms to 2000ms
- Update poll_from and on_changed callbacks to match the new intervals