Linux X11/Xvfb: auto-sample cursor telemetry when ScreenCast METADATA is unavailable
Maintainer thường phản hồi trong vòng 1 ngày
@Jasonsu22 đang làm issue này rồi.
Từ ngày 28/10/2026.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- electron, linux, typescript
- Lĩnh vực
- backend-api-design, desktop
Hướng nghiên cứu
Start by reading the existing openscreen record --cursor editable-overlay and openscreen export --auto-zoom paths, then inspect the fork implementation linked in the issue. Determine how X11 pointer samples can produce the v2 sidecar when ScreenCast METADATA is unavailable, and confirm the schema with maintainers; done means automatic sampling and sidecar output work on the described X11 setup.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
On some Linux cloud-agent desktops (X11 + Xvfb), the xdg-desktop-portal ScreenCast interface reports empty source/cursor modes (AvailableSourceTypes=0 / no METADATA cursor mode). OpenScreen’s live editable-cursor capture therefore cannot write a .cursor.json sidecar even though the screen can still be recorded and the pointer can be sampled separately.
Agents can still:
- Record with ffmpeg
x11grab(draw_mouseoff) or OpenScreen’s non-METADATA path - Sample pointer positions + clicks (
Electron screen.getCursorScreenPoint(),xdotool/xev/xinput/libinput) - Drive
openscreen export --auto-zoomfrom a v2<video>.mp4.cursor.jsonsidecar
We implemented an automatic fallback on our fork and would like to contribute it upstream.
Environment (repro host)
| Item | Value |
|---|---|
| Host | Grok Bot cloud Linux box (grok-bot-vm-316768464) |
| Kernel | Linux 6.12.94+ x86_64 |
| OS | Debian GNU/Linux 13 (trixie) |
| CPU / RAM | 8 vCPU / ~15 GiB |
| Session | X11 on DISPLAY=:2 (Xvfb 1920x1200x24 + Mutter/GNOME pieces) |
| Wayland | No |
| Portal | xdg-desktop-portal (+ gnome/gtk) present; ScreenCast reports no usable METADATA cursor mode (AvailableSourceTypes=0 / empty cursor modes in practice; CreateSession / editable capture fails) |
| GPU | Mesa llvmpipe (software Vulkan/GL); OpenScreen export falls back to CPU |
| OpenScreen | Linux AppImage 2.1.2 |
| PipeWire | Present (pipewire + wireplumber) |
| Pointer tools | xdotool, xev available |
Proposed behavior
When ScreenCast METADATA cursor capture is unavailable on X11:
- Automatically sample the pointer during record
- Write
<recording>.mp4.cursor.json(v2:timeMs, normalizedcx/cy,move|click|mouseup) next to the video - So
openscreen export --auto-zoomneeds no manual import
Optional CLI for external ffmpeg tracks: openscreen cursor import --csv … --clicks … --video …
Env knobs: OPENSCREEN_DISABLE_X11_CURSOR=1, OPENSCREEN_FORCE_X11_CURSOR=1
Workaround today (without the PR)
ffmpeg x11grab + CSV/clicks → converter → sidecar → openscreen export --auto-zoom
Ask
- Accept auto X11 sampling when METADATA is missing (primary path for agent hosts)
- Document the sidecar / optional CLI import path
- Confirm preferred schema fields beyond
{ version: 2, samples: [...] }
Happy to adjust the PR to maintainer preference.
Related
- CLI:
openscreen export --auto-zoom,openscreen record --cursor editable-overlay - Fork implementation: https://github.com/Jasonsu22/openscreen/pull/1
- Ngôn ngữ chính
- TypeScript
- Star
- 3.7k
- Fork
- 231
- Merge trung bình
- 15 giờ 10 phút
- Pull request đã merge (30 ngày)
- 324
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của getopenscreen/openscreen
-
Native review wanted: machine-translated recording bar tooltips (14 locales)Có thể làm lại được @auberginewly đã nhận 22 ngày trước và không có pull request nào đang mở. Đang mởgood first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
getopenscreen/openscreen#913 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: Windows update click opens the full NSIS wizard instead of a UAC promptCó thể đã có người làm @EtienneLescot đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 30/100
getopenscreen/openscreen#1437 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature]: Cursor size px unitĐang mởenhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
getopenscreen/openscreen#1436 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
getopenscreen/openscreen#1435 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 55/100
getopenscreen/openscreen#1431 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của getopenscreen/openscreen
Issue tương tự
-
Add: Disco Mix SDĐang mởcheck:passed streams:add
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
level2 nsoc26
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
GauravKarakoti/SecureFlow#1488 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
deltachat/deltachat-desktop#6914 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
area:cli bug P4
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug from-studio
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
esengine/DeepSeek-Reasonix#14868 ·
Maintainer thường phản hồi trong vòng 1 ngày