diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d565f8a..543bf46 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -77,7 +77,7 @@ jobs:
)
out.append({
"id": flow["id"],
- "install": spec["install"],
+ "install": "src/" + spec["install"],
"build": spec.get("build", "") or "",
"run": spec["run"],
"expected": spec["expected"],
diff --git a/src/manifest.yml b/src/manifest.yml
index 083142b..a5c70e8 100644
--- a/src/manifest.yml
+++ b/src/manifest.yml
@@ -56,7 +56,9 @@
# shows up in the CmdPal extension and in the CI summary
# under a "manual" bucket.
# windows: (object, required if "windows" in os)
-# install: path to PowerShell install shim (CI runs this)
+# install: path to PowerShell install shim
+# CI runs this from the `src/` directory, while CmdPal
+# assumes the extension's root is the repo root.
# configuration: (optional) path to winget DSC configuration.winget the
# extension applies via `winget configure`. Defaults to
# "
/configuration.winget" when omitted.
@@ -77,8 +79,8 @@ flows:
onboardingUrl: https://www.typescriptlang.org/download
os: [windows]
windows:
- install: src/Workloads/typescript/install.ps1
- configuration: src/Workloads/typescript/configuration.winget
+ install: Workloads/typescript/install.ps1
+ configuration: Workloads/typescript/configuration.winget
build: tsc src/tests/typescript/hello.ts
run: node src/tests/typescript/hello.js
expected: src/tests/typescript/expected.txt
@@ -93,8 +95,8 @@ flows:
onboardingUrl: https://www.php.net/manual/en/install.windows.php
os: [windows]
windows:
- install: src/Workloads/php/install.ps1
- configuration: src/Workloads/php/configuration.winget
+ install: Workloads/php/install.ps1
+ configuration: Workloads/php/configuration.winget
build: ""
run: php src/tests/php/hello.php
expected: src/tests/php/expected.txt
diff --git a/src/wsl-comfort/readme.md b/src/wsl-comfort/readme.md
index 500cb82..262d2f5 100644
--- a/src/wsl-comfort/readme.md
+++ b/src/wsl-comfort/readme.md
@@ -35,7 +35,6 @@ The Windows half (`install.ps1`) handles WSL, the distro, the font, and the term
## Prerequisites
- Windows 11 with **Windows Terminal** (`wt.exe`) installed and on PATH. The installer hard-fails if it can't find `wt.exe`.
-- `winget` available (used only for the Nerd Font; the rest of the flow tolerates its absence).
- Internet access for the WSL distro download, Homebrew, starship, and apt.
- The bootstrap requires Ubuntu (any supported LTS). Other distros are rejected at preflight.
@@ -87,7 +86,7 @@ Picks `Ubuntu` (latest LTS) as the distro and forwards `--non-interactive` to th
- **Clipboard / `open` shims** in `~/bin`: `pbcopy`, `pbpaste`, `open`, `xdg-open` — bridged to `clip.exe`, PowerShell `Get-Clipboard`, and `cmd /c start`.
- **Managed dotfile blocks** in `~/.zprofile` + `~/.zshrc` (or `~/.profile` + `~/.bashrc`) for PATH, brew shellenv, prompt init, aliases, and (zsh) keybindings.
- **Git defaults**: `init.defaultBranch=main`, `pull.rebase=false`, `core.autocrlf=input`.
-- **JetBrainsMono Nerd Font** via winget.
+- **Cascadia Code Nerd Fonts** both mono and not.
- **A Windows Terminal profile fragment** named `Comfort Shell - `, with a custom Catppuccin-ish dark scheme, the sunglasses icon, and `wsl.exe -d ` as the command line.
---
@@ -112,7 +111,7 @@ The script runs five labeled steps and updates the console title with the curren
| 1. Ensuring WSL platform | `wsl.exe --status` probe. If WSL is missing, runs `wsl.exe --install --no-distribution` and exits via reboot. | Registers a RunOnce auto-resume so the script picks up where it left off after the reboot. |
| 2. Choosing Ubuntu distro | Lists installed `Ubuntu*` distros from `wsl -l -q`. If none, offers the 4 supported LTS lines. | `Install-NewDistro` retries up to 3 times (5s → 15s backoff) and gives actionable hints on failure (DNS, proxy, VPN). |
| 3. Running Comfort Shell bootstrap | Stages `comfort-shell-bootstrap.sh` to `%TEMP%`, copies it into the distro's `$HOME`, strips CRLFs, makes it executable, runs it. | Uses `Invoke-NativeConsole` so the child sees a real TTY (needed for `/dev/tty` prompts in the bootstrap). |
-| 4. Installing JetBrainsMono Nerd Font | `winget install --id DEVCOM.JetBrainsMonoNerdFont --silent`. | Non-fatal: a missing winget or a "already installed" exit code is logged and skipped. |
+| 4. Installing Cascadia Code Nerd Fonts | Downloads fonts from GitHub release; extracts and registers them. | Detects "already installed" and skips if so. |
| 5. Installing Windows Terminal profile | Writes a JSON fragment under `%LOCALAPPDATA%\Microsoft\Windows Terminal\Fragments\ComfortShell\comfort-shell-.fragment.json`. | Deterministic per-distro GUID (MD5 of `comfort-shell:`) so re-runs update in place and multiple distros coexist. Touches `settings.json` mtime to nudge WT's hot-reload. |
### Parameters