[Bug]: SnapShot GNOME extension is "out of date" on GNOME 51

クローズ 初心者向け
#16,881 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@Mnigos がすでに取り組んでいます。

2026年10月9日 から。

  • #17436 @Mnigos による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
79/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript
領域
desktop

調査の方向性

まず apps/desktop/gnome-extension/metadata.json と、issueで指定されているGNOMEキャプチャ設定およびLinuxスナップショットのテスト GnomeCaptureSetup.test.ts と LinuxSnapShot.dbus.test.ts を確認してください。GNOME 51との互換性とメタデータバージョンのfixtureを更新し、バージョン2から3へのアップグレードをカバーするテストを追加してください。キャプチャサービスのD-Busプロトコルは2のままにしてください。拡張機能がGNOME 51で認識され、関連するテストが成功すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

bug via-triage
Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/desktop

Steps to reproduce
  1. Upgrade to GNOME Shell 51.0 (Wayland) with T3 Code 0.0.45 and its bundled [email protected] extension (version 2) installed and enabled.
  2. Sign out and back in.
  3. Run gnome-extensions info [email protected].
Expected behavior

The bundled extension loads on GNOME 51 and is available as an active-window SnapShot backend.

Actual behavior

GNOME refuses to load it and reports State: OUT OF DATE (output below).

apps/desktop/gnome-extension/metadata.json lists "shell-version": ["45", "46", "47", "48", "49", "50"]. T3 Code's own setup check rejects 51 for the same reason: GnomeCaptureSetup.state() returns status unsupported when the bundled shell-version doesn't include the session's major version (GnomeCaptureSetup.ts#L172).

Impact

Major degradation or frequent failure

On my GNOME 51 setup, the unmodified bundled version-2 extension is marked OUT OF DATE and unavailable as a capture backend.

Version or commit

0.0.45 (t3code-bin from the AUR). The same metadata and setup checks are present at commit 611132c171f3a821bd2e32f22261135cef6330ac.

Environment

CachyOS (Arch), GNOME Shell 51.0, Wayland, kernel 7.2.9-1-cachyos, xdg-desktop-portal 1.22.1 with xdg-desktop-portal-gnome 51.0. AMD HawkPoint iGPU and NVIDIA RTX 4060 Laptop GPU.

Logs or stack traces
$ gnome-extensions info [email protected]
[email protected]
  Name: T3 Code SnapShots
  ...
  Enabled: Yes
  State: OUT OF DATE

$ gdbus call --session --dest org.freedesktop.portal.Desktop --object-path /org/freedesktop/portal/desktop \
    --method org.freedesktop.DBus.Properties.GetAll org.freedesktop.portal.Screenshot
({'AvailableTargets': <uint32 0>, 'version': <uint32 2>},)
Screenshots, recordings, or supporting files

No response

Workaround

Add "51" to shell-version in the installed extension's metadata.json under ${XDG_DATA_HOME:-$HOME/.local/share}/gnome-shell/extensions/[email protected]/, then sign out and back in. This edits only the installed copy; T3 Code's setup check still uses its bundled metadata.

I tested this locally:

  • The extension is ACTIVE, with no errors from it in the gnome-shell journal.
  • A SnapShot (Ctrl+Shift+2) of another window succeeded in about 100 ms, with the window's app name and title attached.
  • It went through the extension, not the portal. This system's Screenshot portal reports version 2 and AvailableTargets 0 (above), so backend selection falls through to gnome-extension (LinuxSnapShot.ts#L196-L211).

Static review of extension.js, captureService.js, captureFeedback.js and feedbackGeometry.js found no use of the removed, changed or deprecated APIs listed in the GNOME Shell 51 porting guide. Together with the local result, this suggests a metadata compatibility update. It is not a full GNOME 51 regression test.

Proposed fix

Add "51" to shell-version and bump metadata version from 2 to 3. The bump makes existing version-2 installations eligible for replacement through T3 Code's setup flow: state() requires a higher bundled version for update-required (L189), and perform("install-extension") accepts only not-installed or update-required (L229). Adding "51" while keeping version 2 would not make those installations eligible through this flow. Installing the update still requires signing out and back in.

In apps/desktop/gnome-extension/metadata.json:

-  "shell-version": ["45", "46", "47", "48", "49", "50"],
+  "shell-version": ["45", "46", "47", "48", "49", "50", "51"],
-  "version": 2,
+  "version": 3,

The tests need updating too:

  • GnomeCaptureSetup.test.ts currently uses { shell: "51.0" } as its unsupported example (L126). It also has current-version fixtures at version: 2.
  • LinuxSnapShot.dbus.test.ts has a metadata-version fixture at 2 (L97).
  • A test for the version-2-to-3 upgrade would cover this case.

Keep the capture service's D-Bus protocol version (get Version() in extension.js) at 2. LinuxSnapShot.ts accepts only protocol 1 or 2, and this metadata revision doesn't change the protocol.

主要言語
TypeScript
スター
24.8k
フォーク
6.4k
平均マージ
10時間 25分
マージ済み PR(30日)
113

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pingdotgg/t3code のほかの issue

pingdotgg/t3code の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。