Graceful degradation for non-GNOME desktops
Make activity detection crash-proof so the observer runs on any desktop:
- Wrap get_idle_time_ms() in try/except (was the sole crash cause on KDE)
- Add probe_activity_services() startup diagnostic — logs which DBus
services are available vs missing
- Protect GTK4 imports — module loads without GTK4, monitor geometry
detection degrades gracefully
- Wrap check_activity_status() calls in main loop — transient DBus
errors don't crash the observer
On non-GNOME desktops, observer logs "Activity signals unavailable"
and runs in always-capture mode. Includes ruff formatting fixes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>