Skip to content

Commit 6d43d59

Browse files
ndemiancclaude
andcommitted
De-brand WS-D: replace the blue VS Code logo with the LevelCode chevron mark
Stock Code-OSS ships the blue #167abf VS Code 'book' at vscode/src/vs/workbench/browser/media/code-icon.svg, used as a background-image on the title-bar app icon (every window), the update tooltip, the welcome/onboarding hero, the walkthrough and the banner — one file, ~6 surfaces. apply-branding.mjs now copies branding/icons/code-icon.svg (a self-contained LevelCode chevron mark on the indigo→cyan gradient badge) over it. Verified it reads at 16px in the title bar and at hero size, on both light and dark title bars. Companion core patch (#7): the Agents-window 'Open in VS Code' button reused code-icon.svg to show the real VS Code logo in production builds — repointed to ./vscode-icon.svg (the bundled shield) so it still shows VS Code (that button opens VS Code), not the LevelCode mark. Patch regenerated (now 7 files, verified it applies onto a pristine checkout) and logged in docs/CORE-PATCHES.md. Windows/Linux raster app-icons (H5/M11) are a separate follow-up. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 4b5a370 commit 6d43d59

4 files changed

Lines changed: 43 additions & 0 deletions

File tree

‎branding/icons/code-icon.svg‎

Lines changed: 14 additions & 0 deletions
Loading

‎docs/CORE-PATCHES.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ git -C vscode diff HEAD -- \
2626
src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts \
2727
src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.ts \
2828
src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts \
29+
src/vs/sessions/browser/media/openInVSCode.css \
2930
> patches/levelcode-core.patch
3031
# NOTE: use `diff HEAD` (not plain `diff`) — bootstrap's `git apply` may leave these STAGED,
3132
# and plain `git diff` shows only UNSTAGED changes, silently dropping the staged patches.
@@ -47,6 +48,9 @@ grep -rn "\[LevelCode\]" vscode/src vscode/build
4748
| 4 | `src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts` | `workbench.welcomePage.experimentalOnboarding` default `true`→`false`; removed the `experiment:{mode:'auto'}` block. | De-brand (WS-A/B1-B2). Kills the first-run **"Welcome to VS Code — Sign in to use GitHub Copilot"** onboarding overlay a client saw. The experiment block would silently re-enable it, so it must go too. |
4849
| 5 | `src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.ts` (`tryShowOnboarding`) | Early `return` — never invoke `onboardingService.show()`. | De-brand (WS-A/B1). Guaranteed kill of the onboarding overlay regardless of config/experiment. Do NOT null `product.defaultChatAgent` (it's `assertDefined`-d and used in ~15 core files) — killing the *entry point* is the safe route. |
4950
| 6 | `src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts` (`show`) | Open `product.releaseNotesUrl` in the browser instead of fetching `code.visualstudio.com/raw/v{ver}.md`. | De-brand (WS-B/B5). Stops the in-editor **"Visual Studio Code 1.126"** release-notes tab. The `useCurrentFile` dev command (author a local `.md`) still renders locally. |
51+
| 7 | `src/vs/sessions/browser/media/openInVSCode.css` | The `[data-product-quality]` "Open in VS Code" button icon → `./vscode-icon.svg` (the real VS Code shield) instead of `code-icon.svg`. | De-brand (WS-D). That button *opens VS Code*, so it must show the VS Code logo — but we now overwrite `code-icon.svg` with the LevelCode mark (see the asset-override note below), which would otherwise make it show LevelCode. |
52+
53+
> **Branding asset override (not a patch):** `apply-branding.mjs` also copies `branding/icons/code-icon.svg` (the LevelCode chevron mark) over `vscode/src/vs/workbench/browser/media/code-icon.svg`. Stock Code-OSS ships the blue `#167abf` VS Code "book" there; it's used as a `background-image` on the title-bar app icon, the update tooltip, the welcome/onboarding hero, the walkthrough and the banner (one file → ~6 surfaces). Because it's a whole-file swap it's done by the branding copy step, not this patch — but patch #7 above pairs with it.
5054
5155
> Dev mode (`run-dev.sh`) still loads `extensions/copilot` from source; patches #2/#3 only affect the **packaged** app. We can disable it in dev too later if desired.
5256

‎patches/levelcode-core.patch‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,21 @@ index e487ff5c..778c3de9 100644
5151
}
5252

5353
export function packageMarketplaceExtensionsStream(forWeb: boolean): Stream {
54+
diff --git a/src/vs/sessions/browser/media/openInVSCode.css b/src/vs/sessions/browser/media/openInVSCode.css
55+
index 5d89e0be..18d3b47b 100644
56+
--- a/src/vs/sessions/browser/media/openInVSCode.css
57+
+++ b/src/vs/sessions/browser/media/openInVSCode.css
58+
@@ -40,7 +40,9 @@
59+
.monaco-workbench .open-in-vscode-titlebar-widget[data-product-quality="stable"] > .open-in-vscode-titlebar-widget-icon,
60+
.monaco-workbench .open-in-vscode-titlebar-widget[data-product-quality="insider"] > .open-in-vscode-titlebar-widget-icon,
61+
.monaco-workbench .open-in-vscode-titlebar-widget[data-product-quality="exploration"] > .open-in-vscode-titlebar-widget-icon {
62+
- background-image: url('../../../workbench/browser/media/code-icon.svg');
63+
+ /* [LevelCode] This button OPENS VS CODE, so it must show the real VS Code shield — not code-icon.svg,
64+
+ which LevelCode overwrites with its own chevron mark. Use the bundled shield like the dev fallback. */
65+
+ background-image: url('./vscode-icon.svg');
66+
}
67+
68+
.monaco-enable-motion .monaco-workbench .open-in-vscode-titlebar-widget > .open-in-vscode-titlebar-widget-icon,
5469
diff --git a/src/vs/workbench/contrib/files/browser/files.contribution.ts b/src/vs/workbench/contrib/files/browser/files.contribution.ts
5570
index 574c2d8e..f6b8c7af 100644
5671
--- a/src/vs/workbench/contrib/files/browser/files.contribution.ts

‎scripts/apply-branding.mjs‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,16 @@ if (existsSync(pngSrc) && existsSync(dirname(pngDst))) {
9191
copyFileSync(pngSrc, pngDst);
9292
}
9393

94+
// The in-app logo used as a background-image on the title-bar app icon, the update tooltip, the
95+
// welcome/onboarding hero and the walkthrough (one file, ~6 surfaces). Stock Code-OSS ships the blue
96+
// VS Code "book" here; overwrite it with the LevelCode chevron mark so no #167abf logo shows anywhere.
97+
const codeIconSrc = join(repoRoot, "branding", "icons", "code-icon.svg");
98+
const codeIconDst = join(vscodeDir, "src", "vs", "workbench", "browser", "media", "code-icon.svg");
99+
if (existsSync(codeIconSrc) && existsSync(dirname(codeIconDst))) {
100+
copyFileSync(codeIconSrc, codeIconDst);
101+
console.log(`[apply-branding] Installed in-app logo -> ${codeIconDst}`);
102+
}
103+
94104
// Install our bundled LevelCode extensions into the checkout. The canonical, version-controlled
95105
// source lives in this repo's extensions/ folder; the copies inside vscode/ are generated.
96106
const OUR_PUBLISHERS = new Set(["levelcode", "atompp"]); // atompp = pre-rename, prune any leftovers

0 commit comments

Comments
 (0)