Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Display picker overlays all open on the focused monitor on Wayland

未关闭
#2,408 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
64/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
rust, tauri

调研方向

Start in apps/desktop/src-tauri/src/windows.rs, especially the set_position code at lines 2161-2179 and the title setup at line 1299. Reproduce the picker on a Wayland compositor with multiple monitors, then investigate the reported fullscreen_on_monitor or layer-shell direction. Done means Display mode opens one overlay on each corresponding monitor instead of stacking them on the focused monitor.

由索引模型根据 Issue 内容生成。

描述

bug

First off I just want to say thanks for making this software. It has been awesome to use so far. I love seeing quality OSS software that meets or even surpasses (which this does) the capabilities of equivalent commercial solutions. Especially in the desktop software space.

I also want to commend y'all for still allowing the purchase a normal lifetime license for a piece of desktop software. I just bought it because of that when I very likely would not sign up for a subscription with my current usage patterns, but love to be able to support great OSS when I can.

Description

With 3 monitors on Niri, picking Display mode opens one overlay per display, each sized right for its display, but all three open stacked on whichever monitor has focus. Expected each overlay to open on its own display.

The overlay gets placed with set_position (windows.rs#L2161-L2179), but Wayland compositors ignore client positioning so it never takes effect.

Proper fix is probably fullscreen_on_monitor or layer-shell.

Potential Workaround

One thing that would be easier to do and would let people work around this is to just include the display name in the title of the window. Cap Target Select - DP-1 instead of the fixed Cap Target Select (windows.rs#L1299). Then compositor users could pin each one with a window rule. For example on Niri I would do something like this (totally untested):

window-rule {
    match title="^Cap Target Select - DP-1$"
    open-on-output "DP-1"
}
Reproduction
  1. Run Cap on a Wayland compositor (Niri here) with more than one monitor
  2. Open the recording picker and choose Display
  3. All the overlays open on the focused monitor
Additional Context
  • Cap version: 0.6.0 (the .deb, repackaged for Nix)
  • Operating system, version: NixOS, Linux 6.18.53, Niri 26.04
  • Device (optional): 3 monitors, one portrait 1080x1920 and two 1920x1080

niri msg windows while the picker is open, all three on the same workspace at the same position:

  Window ID 53:
    Title: "Cap Target Select"
    App ID: "Cap"
    Is floating: yes
    PID: 216607
    Workspace ID: 4
    Layout:
      Tile size: 1080 x 1920
      Workspace-view position: 0, 34
      Window size: 1080 x 1920
      Window offset in tile: 0 x 0

  Window ID 54:
    Title: "Cap Target Select"
    App ID: "Cap"
    Is floating: yes
    PID: 216607
    Workspace ID: 4
    Layout:
      Tile size: 1920 x 1080
      Workspace-view position: 0, 437
      Window size: 1920 x 1080
      Window offset in tile: 0 x 0

  Window ID 55:
    Title: "Cap Target Select"
    App ID: "Cap"
    Is floating: yes
    PID: 216607
    Workspace ID: 4
    Layout:
      Tile size: 1920 x 1080
      Workspace-view position: 0, 437
      Window size: 1920 x 1080
      Window offset in tile: 0 x 0
主要语言
Rust
星标
23k
派生
2k
平均合并
10 小时 41 分钟
30 天内合并 PR
89

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

CapSoftware/Cap 的其他 Issue

查看 CapSoftware/Cap 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。