fix(windows): enlarge taskbar icon artwork and lettering

This commit is contained in:
l0ng-ai
2026-11-01 21:53:13 +08:00
parent 4015a5b71f
commit b498448fba
14 changed files with 50 additions and 0 deletions
+1
View File
@@ -18,6 +18,7 @@
"knip": "knip",
"typecheck": "tsrs --noEmit && tsrs -p tsconfig.node.json --noEmit && tsrs -p perf --noEmit && tsrs -p scripts --noEmit",
"gen:bindings": "cargo test -p openidea --test export_bindings",
"gen:windows-icons": "node scripts/gen-windows-icons.ts",
"gen:angular-grammar": "lezer-generator src/editor/core/cm/angular/angular.grammar --typeScript -o src/editor/core/cm/angular/parser.ts",
"gen:theme-docs": "node scripts/theme/gen-docs.ts",
"theme:import-intellij": "node scripts/theme/import-intellij-theme.ts",
+35
View File
@@ -0,0 +1,35 @@
import { spawnSync } from "node:child_process";
import { copyFileSync, mkdtempSync, realpathSync, rmSync } from "node:fs";
import { createRequire } from "node:module";
import { tmpdir } from "node:os";
import { dirname, join } from "node:path";
import { fileURLToPath } from "node:url";
const root = fileURLToPath(new URL("..", import.meta.url));
const icons = join(root, "src-tauri", "icons");
const tempRoot = realpathSync(tmpdir());
const output = mkdtempSync(join(tempRoot, "openidea-windows-icons-"));
function removeOutput() {
// Only remove the unique directory this invocation created inside the system temp directory.
if (dirname(realpathSync(output)) !== tempRoot) throw new Error("Unexpected icon output directory");
rmSync(output, { recursive: true, force: true });
}
try {
const cli = createRequire(import.meta.url).resolve("@tauri-apps/cli/tauri.js");
const result = spawnSync(
process.execPath,
[cli, "icon", join(icons, "source", "openidea-windows.svg"), "--output", output],
{ cwd: root, stdio: "inherit" },
);
if (result.error) throw result.error;
if (result.status !== 0) throw new Error(`Icon generation failed (${result.status})`);
for (const name of [
"icon.ico",
"StoreLogo.png",
...[30, 44, 71, 89, 107, 142, 150, 284, 310].map((size) => `Square${size}x${size}Logo.png`),
]) {
copyFileSync(join(output, name), join(icons, name));
}
} finally {
removeOutput();
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 993 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 100 100" role="img" aria-label="OpenIDEA">
<rect x="2" y="2" width="96" height="96" rx="22" fill="#EAE7E0"/>
<g transform="translate(50 50) scale(1.5) translate(-50 -52)">
<rect x="22" y="26" width="56" height="52" rx="12" fill="#D9582C"/>
<rect x="27" y="26" width="46" height="42" rx="9" fill="#1B1A1A"/>
<g transform="translate(50 46) scale(1.35) translate(-50 -46)">
<circle cx="44" cy="47.4" r="4.1" fill="none" stroke="#EAE7E0" stroke-width="2.7"/>
<rect x="54.3" y="42" width="2.8" height="10.5" fill="#EAE7E0"/>
<rect x="51.2" y="42" width="5.9" height="2.5" fill="#EAE7E0"/>
<rect x="51.2" y="50" width="9.4" height="2.5" fill="#EAE7E0"/>
<circle cx="55.7" cy="38.4" r="1.8" fill="#EAE7E0"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 850 B