Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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"],
Expand Down
12 changes: 7 additions & 5 deletions src/manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
# "<dir of install>/configuration.winget" when omitted.
Expand All @@ -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
Expand All @@ -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
Expand Down
5 changes: 2 additions & 3 deletions src/wsl-comfort/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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 - <distro>`, with a custom Catppuccin-ish dark scheme, the sunglasses icon, and `wsl.exe -d <distro>` as the command line.

---
Expand All @@ -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-<slug>.fragment.json`. | Deterministic per-distro GUID (MD5 of `comfort-shell:<distro>`) so re-runs update in place and multiple distros coexist. Touches `settings.json` mtime to nudge WT's hot-reload. |

### Parameters
Expand Down
Loading