Skip to content

Drop tint2 from the headful image - #513

Merged
robertjamesprior merged 1 commit into
mainfrom
hypeship/drop-tint2
Nov 10, 2026
Merged

robertjamesprior merged 1 commit into
mainfrom
hypeship/drop-tint2

Conversation

@robertjamesprior

@robertjamesprior robertjamesprior commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

what

Drops the tint2 package from the headful image. Nothing in the current image starts it.

why

When a session starts a panel, the strut that panel declares is subtracted from the screen and published as _NET_WORKAREA, and a maximized window fills the work area rather than the screen. In one affected session the work area came back as 0, 0, 960, 1080 on a 1920 root, with the browser window maximized at 960x1080+0+0 and the panel as the only other client window (1920x28+0+0). The result is a browser covering half the display with the root background beside it, which is reported as the window arriving half width.

This cannot be corrected from the window side: re-asserting the maximized state is a no-op on a window that is already maximized into the work area, so a window at 960 stays at 960. Removing the package removes the vector, and a session that tries to start a panel now gets a failed start instead of a resized work area.

rationale and compatibility

tint2 was intentionally included in the original WebRTC/demo image as part of the old desktop-panel path. That path included tint2_startup.sh and panel configuration, but those legacy payloads were removed in #275. The current supervisor, wrapper, API, Chromium launcher, and live-view client do not start or reference tint2. The remaining package is legacy image content, not a current browser/session dependency.

The compatibility risk is an external process exec workload that starts tint2 directly by name. There is no in-repo client or documented runtime contract showing that dependency. If a panel is wanted back later, the alternative is shipping a tint2rc with strut_policy = none, which keeps the panel and stops the reservation.

verification

The geometry and work-area properties above were read from the affected session with xwininfo, xprop -root _NET_WORKAREA and xprop -id <win> _NET_WM_STATE. The change itself is a package removal with no runtime code path; the check is that a panel start inside a session no longer reserves space. Existing public image checks are passing, including the headful build, launcher, live-view client, server tests, and security scans.

release

kernel-images-private builds the released images, so this needs the upstream sync PR or a cherry-pick into the private repo before it reaches a release. After the private image is built, canary it and verify that no panel process starts, _NET_WORKAREA remains full width, and live view, CDP, Playwright, screenshots, and process execution still work.


Note

Low Risk
Image-only package removal with no in-repo runtime dependency; only risk is an undocumented external workload that explicitly launches tint2.

Overview
Removes the unused tint2 package from the chromium-headful image apt install list and documents why a session-started panel must not ship: tint2 declares an X11 strut that shrinks _NET_WORKAREA, so a maximized browser can land at half the root width with desktop background beside it—a geometry bug that cannot be fixed by re-maximizing the window.

Nothing in the current image or supervisor stack starts tint2 (legacy panel path was dropped earlier); the change only removes the package so ad-hoc panel starts fail instead of corrupting the work area. External workloads that exec tint2 by name would lose that binary.

Reviewed by Cursor Bugbot for commit d5613f5. Bugbot is set up for automated code reviews on this repo. Configure here.

@robertjamesprior
robertjamesprior marked this pull request as ready for review November 10, 2026 16:54
@robertjamesprior

Copy link
Copy Markdown
Contributor Author

Picked chruffins to review: touched the changed code in chromium-headful; nothing pending.

@robertjamesprior
robertjamesprior merged commit 027aa97 into main Nov 10, 2026
12 checks passed
@robertjamesprior
robertjamesprior deleted the hypeship/drop-tint2 branch November 10, 2026 17:02
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