Skip to content

Add cross-platform UI testing strategy for non-KDE environments - #64

Draft
JRufer wants to merge 2 commits into
masterfrom
claude/cross-platform-ui-testing-v0xcgk
Draft

Add cross-platform UI testing strategy for non-KDE environments#64
JRufer wants to merge 2 commits into
masterfrom
claude/cross-platform-ui-testing-v0xcgk

Conversation

@JRufer

@JRufer JRufer commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Summary

VoxCtrl's UI was built and tuned against KDE Plasma (Wayland/X11). This adds a documented strategy for validating the UI on non-KDE environments — Hyprland and Windows in particular — and for triaging/fixing what breaks.

  • New doc: docs/cross_platform_ui_testing.md
    • Code-review-based risk inventory: the overlay's always-on-top/positioning logic is explicitly written around KWin/Mutter stacking and focus-grab quirks (src-tauri/src/overlay.rs), with no Wayland app_id set for windowrule targeting and no wlroots-specific handling — the top concrete risk being that Hyprland tiles windows by default, which could break the floating HUD entirely. Also flags tray (SNI host availability), notifications (daemon availability), text injection (wtype/xdotool/clipboard), and Windows' known-weak SendKeys injection path.
    • Test environment matrix: KDE (Wayland/X11) as baseline, Hyprland, Sway (second wlroots reference point), GNOME (bonus non-KDE reference), Windows 10/11.
    • A manual QA checklist (windows/chrome, overlay HUD, tray, global hotkeys, text injection, notifications, installer) to run per environment.
    • Notes on what's realistic to automate (Svelte/Rust unit tests, already in CI) vs. what inherently needs manual verification (compositor/WM interaction), plus a small suggested logging improvement to make bug reports actionable without needing hands-on access to every environment.
    • A triage/fix workflow: classify by which environments repro, prefer protocol-correct fixes (e.g. real wlr-layer-shell surface) over WM-specific hacks, gate runtime differences via XDG_CURRENT_DESKTOP/XDG_SESSION_TYPE rather than new compile-time cfgs, and regression-test the full matrix before merging.
  • Linked the new doc from docs/README.md's index (also synced to the GitHub wiki via the existing sync-wiki.yml workflow).

No functional code changes — this is a planning/testing document only.

Test plan

  • N/A — documentation only, no code paths changed

Generated by Claude Code

claude added 2 commits July 23, 2026 05:02
Documents concrete KDE/KWin-coupled assumptions found in the overlay,
tray, notification, and injection code, a test matrix (Hyprland, Sway,
GNOME, Windows), a manual QA checklist, and a triage/fix workflow for
issues found on non-KDE desktops.
Documents macOS feasibility grounded in the actual codebase: what already
works (whisper Metal, cpal, arboard, WKWebView, tray, notifications,
overlay winit fallback), the three code paths that must be written first
(text injection, global hotkeys via rdev, MCP Unix-socket cfg), TCC
permission requirements, and a GitHub Actions macos-14/macos-13 build job
modeled on the existing release workflow.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants