[BUG] VS Code is not recognized as window for tiling if tab name starts with '+' (plus) symbol

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

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
28/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
javascript, linux
领域
desktop-dev

调研方向

The payload names no source files, so start by reproducing: open two VS Code windows, one with a title beginning with '+' (for example '+page.svelte'), and confirm Forge stops tiling it. Then find where Forge matches window titles and check whether the '+' is treated as a regex metacharacter or otherwise mishandled. Done means VS Code tiles normally with a '+'-prefixed title, and a titles-without-'+' case still works. The thread has no maintainer reply and the issue is about 853 days old, so confirm the bug still reproduces on current Forge before writing a fix.

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

描述

bug
(1) Issue/Bug Description/Video Capture/Screenshots

https://github.com/forge-ext/forge/assets/46044710/f5784a08-34cf-4fa2-a204-f9e938797aa0

(2) Steps to reproduce
  1. Open VS Code in a standard way.
  2. Open a tab named as '+page.svelte' and open another tab that is not named as previous.
    For example; there are no problem with following names:
    '+page..svelte' (double dotted).
    'page.svelte' (without plus)
    But '++page.svelte' causes problem too. This is the weirdest bug I've ever seen :-D.
  3. Alter between tabs and try both for tiling.

NOT:

  1. I tried another application(standard text editor) that title starts with '+' and it didn't cause any problem. it seems that only happens with vs code.
  2. I also tried in VS code that includes '+' symbol but doesn't starts with '+' and it didn't cause any problem.
(3) Distribution and Linux version
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Linux livost 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux
(4) Journal Logs from the last hour
Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal' can see all messages.
      Pass -q to turn off this notice.
Jun 30 16:11:31 livost gnome-shell[2990]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
Jun 30 16:45:52 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaWindowActorX11>:0x55d5032cc700] is on because it needs an allocation.
Jun 30 16:45:52 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaSurfaceActorX11>:0x55d502f4cfb0] is on because it needs an allocation.
Jun 30 16:46:00 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaWindowActorX11>:0x55d5032cc700] is on because it needs an allocation.
Jun 30 16:46:00 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaSurfaceActorX11>:0x55d502f4cfb0] is on because it needs an allocation.
.
. there are 180 lines and goes same...
.
Jun 30 16:46:49 livost gnome-shell[2990]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5200004
... 12 lines 
Jun 30 16:47:27 livost gnome-shell[2990]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2c00004
...185 lines
Jun 30 17:01:37 livost gnome-shell[2990]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
... 15 lines
Jun 30 17:01:47 livost gnome-shell[2990]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5200004
Jun 30 17:02:28 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaWindowActorX11>:0x55d5020fbcb0] is on because it needs an allocation.
Jun 30 17:02:28 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaSurfaceActorX11>:0x55d5038da7b0] is on because it needs an allocation.
Jun 30 17:02:31 livost gnome-shell[2990]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
Jun 30 17:02:31 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaWindowActorX11>:0x55d5020fbcb0] is on because it needs an allocation.
Jun 30 17:02:31 livost gnome-shell[2990]: Can't update stage views actor <unnamed>[<MetaSurfaceActorX11>:0x55d5038da7b0] is on because it needs an allocation.
Jun 30 17:05:27 livost gnome-shell[2990]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x520025e
... 10 lines
Jun 30 17:08:34 livost gnome-shell[2990]: No listeners 212
... 2 lines
GNOME Shell version

GNOME Shell 43.9

Forge version

72

Other installed/enabled extensions
[email protected]
  Name: Clipboard Indicator
  Description: Clipboard Manager extension for Gnome-Shell - Adds a clipboard indicator to the top panel, and caches clipboard history.
  Path: /home/licoder/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator
  Version: 47
  State: ENABLED

[email protected]
  Name: Dash to Panel
  Description: An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.

For a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.

For the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.
  Path: /home/licoder/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/home-sweet-gnome/dash-to-panel
  Version: 56
  State: ENABLED

desktopicons-neo@darkdemon
  Name: Desktop Icons: Neo
  Description: This adds desktop icons to GNOME. A fork of Desktop Icons NG with a massive amount of customizations (like icon shapes and curved corners), features, bug fixes, and overall polish.
  Path: /home/licoder/.local/share/gnome-shell/extensions/desktopicons-neo@darkdemon
  URL: https://github.com/DEM0NAssissan7/desktop-icons-neo
  Version: 8
  State: ENABLED

Resource_Monitor@Ory0n
  Name: Resource Monitor
  Description: Monitor the use of system resources like cpu, ram, disk, network and display them in gnome shell top bar.
  Path: /home/licoder/.local/share/gnome-shell/extensions/Resource_Monitor@Ory0n
  URL: https://github.com/0ry0n/Resource_Monitor/
  Version: 19
  State: ENABLED

[email protected]
  Name: Tray Icons: Reloaded
  Description: Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.
  Path: /home/licoder/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/MartinPL/Tray-Icons-Reloaded
  Version: 26
  State: ENABLED

[email protected]
  Name: AppIndicator and KStatusNotifierItem Support
  Description: Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell
  Path: /home/licoder/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/ubuntu/gnome-shell-extension-appindicator
  Version: 53
  State: ENABLED

[email protected]
  Name: Forge
  Description: Tiling and window manager for GNOME

Please report bugs/issues on https://github.com/forge-ext/forge/issues
  Path: /home/licoder/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/forge-ext/forge
  Version: 72
  State: ENABLED

[email protected]
  Name: Search Light
  Description: Take the apps search out of overview
  Path: /home/licoder/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/icedman/search-light
  Version: 17
  State: ENABLED

[email protected]
  Name: Coverflow Alt-Tab
  Description: Replacement of Alt-Tab, iterates through windows in a cover-flow manner.
  Path: /home/licoder/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/dmo60/CoverflowAltTab
  Version: 61
  State: ENABLED
(6) Monitor Setup

two monitor: 1: 1600x900, 2: 1368x720

Other Notes

No response

主要语言
JavaScript
星标
1.3k
派生
112
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

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

forge-ext/forge 的其他 Issue

查看 forge-ext/forge 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

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