Skip to content

Commit 1dfc29d

Browse files
authored
feat(nix): support frameless titlebar feature (#880)
1 parent efcd704 commit 1dfc29d

6 files changed

Lines changed: 12 additions & 2 deletions

File tree

docs/nix.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ The Home Manager and NixOS modules accept these feature IDs through
197197
| Feature ID | Purpose |
198198
| --- | --- |
199199
| `appshots` | Linux AppShots capture integration |
200+
| `frameless-titlebar` | Hide app-provided titlebar controls for compositor-managed decorations |
200201
| `mcp-helper-reaper` | Cleanup for stale configured MCP helper processes |
201202
| `node-repl-reaper` | Cleanup for leaked Browser Use `node_repl` helpers |
202203
| `open-target-discovery` | Linux terminal, editor, and file-manager discovery |

flake.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,7 @@ PY
658658
codexDesktopNixFeatureCheck = codexDesktop.override {
659659
linuxFeatureIds = [
660660
"appshots"
661+
"frameless-titlebar"
661662
"global-dictation"
662663
"mcp-helper-reaper"
663664
"node-repl-reaper"

linux-features/frameless-titlebar/patch.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ const patches = [
156156
phase: "webview-asset",
157157
order: 20_730,
158158
ciPolicy: "optional",
159-
pattern: /^(?:app-initial~app-main~onboarding-page~hotkey-window-thread-page~quick-chat-window-page~chatg~k0ede4gb|app-initial~app-main~pull-request-code-review~onboarding-page~hotkey-window-thread-page~cha~b76hmflu)-.*\.js$/,
159+
pattern: /^app-initial~app-main~new-thread-panel-page~appgen-library-page~hotkey-window-thread-page~ho~iufn7mg3-.*\.js$/,
160160
missingDescription: "main app chrome bundle",
161161
skipDescription: "frameless titlebar webview layout patch",
162162
apply: applyFramelessTitlebarWebviewPatch,

linux-features/frameless-titlebar/test.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,14 @@ test("frameless-titlebar stays disabled until listed in features.json", () => {
6666
(descriptor) => descriptor.id === "feature:frameless-titlebar:webview-window-controls-layout",
6767
);
6868
assert.match(
69+
"app-initial~app-main~new-thread-panel-page~appgen-library-page~hotkey-window-thread-page~ho~iufn7mg3-abc.js",
70+
webviewPatch.pattern,
71+
);
72+
assert.doesNotMatch(
6973
"app-initial~app-main~onboarding-page~hotkey-window-thread-page~quick-chat-window-page~chatg~k0ede4gb-abc.js",
7074
webviewPatch.pattern,
7175
);
72-
assert.match(
76+
assert.doesNotMatch(
7377
"app-initial~app-main~pull-request-code-review~onboarding-page~hotkey-window-thread-page~cha~b76hmflu-abc.js",
7478
webviewPatch.pattern,
7579
);

nix/linux-features-test.nix

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ let
1313
testFeatureIds = [
1414
"persistent-status-panel"
1515
"appshots"
16+
"frameless-titlebar"
1617
"global-dictation"
1718
"mcp-helper-reaper"
1819
"remote-mobile-control"
@@ -22,6 +23,7 @@ let
2223
];
2324
normalizedTestFeatureIds = [
2425
"appshots"
26+
"frameless-titlebar"
2527
"global-dictation"
2628
"mcp-helper-reaper"
2729
"open-target-discovery"
@@ -123,6 +125,7 @@ let
123125
enableComputerUseUi = true;
124126
linuxFeatureIds = [
125127
"remote-mobile-control"
128+
"frameless-titlebar"
126129
"global-dictation"
127130
"persistent-status-panel"
128131
"mcp-helper-reaper"

nix/linux-features.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
let
33
supportedFeatureIds = [
44
"appshots"
5+
"frameless-titlebar"
56
"global-dictation"
67
"mcp-helper-reaper"
78
"node-repl-reaper"

0 commit comments

Comments
 (0)