{"id":50412313,"url":"https://github.com/cskwork/windows-terminal-wezterm-port","last_synced_at":"2026-05-31T04:04:59.329Z","repository":{"id":358471089,"uuid":"1241528732","full_name":"cskwork/windows-terminal-wezterm-port","owner":"cskwork","description":"Port WezTerm aesthetics (Catppuccin Mocha + JetBrainsMono Nerd Font + oh-my-posh prompt) to Windows Terminal in one command. Non-destructive PowerShell installer.","archived":false,"fork":false,"pushed_at":"2026-05-17T14:06:29.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T16:34:20.764Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cskwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-17T14:00:27.000Z","updated_at":"2026-05-17T14:06:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cskwork/windows-terminal-wezterm-port","commit_stats":null,"previous_names":["cskwork/windows-terminal-wezterm-port"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/cskwork/windows-terminal-wezterm-port","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fwindows-terminal-wezterm-port","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fwindows-terminal-wezterm-port/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fwindows-terminal-wezterm-port/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fwindows-terminal-wezterm-port/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cskwork","download_url":"https://codeload.github.com/cskwork/windows-terminal-wezterm-port/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fwindows-terminal-wezterm-port/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33718496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T04:04:53.501Z","updated_at":"2026-05-31T04:04:54.361Z","avatar_url":"https://github.com/cskwork.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# windows-terminal-wezterm-port\n\nPort WezTerm aesthetics to Windows Terminal in one command. Catppuccin Mocha\npalette, JetBrainsMono Nerd Font, optional darkened background image,\nfilled-block cursor, generous padding — applied to the global profile\n`defaults` block so every shell (PowerShell, pwsh, WSL, Git Bash, cmd) gets\nthe same look without restarting Windows Terminal.\n\nThis is the Windows counterpart to\n[cskwork/iterm2-wezterm-port](https://github.com/cskwork/iterm2-wezterm-port).\n\n## What it ports from WezTerm\n\n| WezTerm setting                          | Windows Terminal equivalent applied      |\n| ---------------------------------------- | ---------------------------------------- |\n| `color_scheme = 'Catppuccin Mocha'`      | Full 16-color ANSI + bg / fg / cursor    |\n| `font = JetBrainsMono Nerd Font Medium`  | `JetBrainsMono NFM 12 medium` (Nerd Fonts v3 short name) |\n| `default_cursor_style = BlinkingBlock`   | `cursorShape: filledBox`                 |\n| `backdrops/*` random rotation            | Single static image (configurable)       |\n| Window padding (top 10, bottom 7.5)      | `padding: \"10, 7.5\"`                     |\n| Prompt with git / path / glyphs          | `oh-my-posh` with `catppuccin_mocha`     |\n| Select-to-copy + right-click paste       | `copyOnSelect: true` + default right-click paste |\n| `Ctrl+Shift+C` / `Ctrl+Shift+V` copy/paste | also `Ctrl+C` / `Ctrl+V` (smart copy: passes through to SIGINT when no selection) |\n\nWhat does **not** port (Windows Terminal does not support it natively):\n\n- Random backdrop rotation per launch — Windows Terminal takes one static image.\n- `LEADER+b/Shift+B` runtime backdrop cycling.\n- WezTerm's WebGPU 120fps rendering and FreeType tuning.\n- Per-pane background images (Windows Terminal only supports per-profile).\n\n## Requirements\n\n- Windows 10 or 11\n- [Windows Terminal](https://aka.ms/terminal) (Store or unpackaged) — open it\n  at least once so `settings.json` exists\n- PowerShell 5.1+ (built in) or PowerShell 7+\n- Optional: [winget](https://learn.microsoft.com/windows/package-manager/winget/)\n  for the `-InstallOhMyPosh` flag\n\n## Install\n\n```powershell\ngit clone https://github.com/cskwork/windows-terminal-wezterm-port\ncd windows-terminal-wezterm-port\n\n# Catppuccin Mocha + JetBrainsMono Nerd Font + oh-my-posh prompt\npwsh -ExecutionPolicy Bypass -File .\\make-profile.ps1 -InstallOhMyPosh -InstallFont\n```\n\nOpen a new Windows Terminal tab. The scheme loads immediately because\n`settings.json` is watched for changes — no restart required.\n\nIf you already have a Nerd Font installed and `oh-my-posh` on PATH, just run:\n\n```powershell\n.\\make-profile.ps1\n```\n\n## Customize\n\n```powershell\n.\\make-profile.ps1 -?\n```\n\nCommon tweaks:\n\n```powershell\n# Bigger font\n.\\make-profile.ps1 -FontSize 14\n\n# Different Nerd Font (must be installed; use v3 short family name)\n.\\make-profile.ps1 -Font \"CaskaydiaCove NFM\" -FontSize 13\n\n# Darkened background image\n.\\make-profile.ps1 -Backdrop \"$HOME\\Pictures\\dark-bg.jpg\" -BackdropOpacity 0.30\n\n# Image more visible\n.\\make-profile.ps1 -Backdrop \"$HOME\\Pictures\\dark-bg.jpg\" -BackdropOpacity 0.55\n\n# Skip the $PROFILE oh-my-posh wiring (only patch Windows Terminal)\n.\\make-profile.ps1 -SkipProfile\n\n# Different oh-my-posh theme\n.\\make-profile.ps1 -OhMyPoshTheme jandedobbeleer\n```\n\nRe-run with any combination of flags — `settings.json` and `$PROFILE` are\nidempotent. The previous values are overwritten, not duplicated.\n\n## How it works\n\n1. Locates `settings.json` (Microsoft Store stable, Preview, or unpackaged).\n2. Writes a timestamped backup next to it\n   (`settings.backup.\u003cyyyyMMdd-HHmmss\u003e.json`).\n3. Inserts the Catppuccin Mocha scheme into the `schemes` array (replaces if\n   already present, never duplicates).\n4. Sets `colorScheme`, `font`, `cursorShape`, `padding`, `useAcrylic`,\n   `antialiasingMode` (and optional background image) inside `profiles.defaults`\n   so every profile inherits the look.\n5. Writes the JSON back. Windows Terminal picks it up live.\n6. If `-InstallOhMyPosh` is set, runs\n   `winget install JanDeDobbeleer.OhMyPosh --scope user`.\n7. If `-InstallFont` is set, runs `oh-my-posh font install JetBrainsMono`.\n8. Appends an idempotent fenced block to `$PROFILE` that wires `oh-my-posh init`\n   on shell start.\n\nExisting profiles, schemes, keybindings, and customizations are left\nuntouched. Anything you set inside an individual profile in `profiles.list`\noverrides the defaults.\n\n## Copy \u0026 paste\n\nThe installer sets up WezTerm-style mouse + keyboard copy/paste at the global\nlevel (applies to every profile):\n\n- **Select to copy** — drag-select with the mouse and the text is copied to\n  the clipboard immediately on release (`copyOnSelect: true`).\n- **Right-click paste** — right-click pastes from clipboard; if you have an\n  active selection the right-click copies it instead. The experimental\n  right-click context menu is explicitly disabled.\n- **Ctrl+C / Ctrl+V** — copy and paste. `Ctrl+C` is a *smart* copy: when no\n  text is selected the key falls through to the shell as SIGINT, so\n  interrupting a running command still works. The original\n  `Ctrl+Shift+C` / `Ctrl+Shift+V` bindings keep working too.\n\nThese bindings carry `id`s prefixed with `User.wezterm-port.`, so the\nuninstaller can remove them without disturbing any of your own\n`ctrl+c`/`ctrl+v` keybindings that existed before.\n\n## Troubleshooting\n\n**\"다음 글꼴을 찾을 수 없습니다. JetBrainsMono Nerd Font Mono\" / \"Font not found\"**\n\nNerd Fonts v3 registers families with short names like `JetBrainsMono NFM`\n(NFM = Nerd Font Mono), not the long pre-v3 `JetBrainsMono Nerd Font Mono`.\nThe installer defaults to the v3 short name. If you copied the long name\nfrom an older guide, change `-Font` to one of:\n\n| Variant            | v3 short name             |\n|--------------------|---------------------------|\n| Mono, ligatures    | `JetBrainsMono NFM`       |\n| Mono, no-ligature  | `JetBrainsMonoNL NFM`     |\n| Variable width     | `JetBrainsMono NF`        |\n| Proportional       | `JetBrainsMono NFP`       |\n\nAfter running the installer, it prints the registered JetBrains family list\nif your `-Font` value does not match anything. Pick one from that list.\n\n**Font files are on disk but not registered**\n\nIf `oh-my-posh font install` was interrupted previously, the `.ttf` files may\nsit in `%LOCALAPPDATA%\\Microsoft\\Windows\\Fonts\\` without registry entries.\nRe-run:\n\n```powershell\n.\\make-profile.ps1 -InstallFont\n```\n\nThe script invokes `oh-my-posh font install JetBrainsMono --headless` which\nboth copies and registers the family.\n\n**`$env:POSH_THEMES_PATH` is null when PROFILE runs**\n\noh-my-posh's MSIX (winget) install does not always set the\n`POSH_THEMES_PATH` user environment variable, so `Join-Path` errors out on\nthe next shell start. The installer-emitted `$PROFILE` block already handles\nthis: it resolves the themes directory from the `oh-my-posh.exe` location\n(following the WindowsApps symlink) before touching `--config`, and falls\nback to the default theme if no themes directory is found.\n\nIf your existing PROFILE was written by an older version of this installer,\nre-run `.\\make-profile.ps1` — the fenced block between the markers is\nreplaced in place, not duplicated.\n\n**Script blocked by execution policy**\n\n```powershell\npwsh -ExecutionPolicy Bypass -File .\\make-profile.ps1\n```\n\nThis bypasses the policy for one invocation without changing your global\nsetting.\n\n## Uninstall\n\n```powershell\n# Remove the scheme + defaults keys this script added, plus the $PROFILE block\n.\\uninstall.ps1\n\n# Or restore the most recent timestamped backup byte-for-byte\n.\\uninstall.ps1 -RestoreLatestBackup\n```\n\nOptionally remove oh-my-posh:\n\n```powershell\nwinget uninstall JanDeDobbeleer.OhMyPosh\n```\n\n## Use as an oh-my-claudecode skill\n\nIf you use [oh-my-claudecode](https://github.com/cskwork/oh-my-claudecode),\nthis repo doubles as a skill. Drop `SKILL.md` (or symlink the repo) into\n`~/.claude/skills/windows-terminal-wezterm-port/` and Claude Code will offer\nto run it when you say things like \"make my PowerShell look like WezTerm\" or\n\"apply Catppuccin Mocha to Windows Terminal.\"\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcskwork%2Fwindows-terminal-wezterm-port","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcskwork%2Fwindows-terminal-wezterm-port","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcskwork%2Fwindows-terminal-wezterm-port/lists"}