Skip to content

v2.18.0

Choose a tag to compare

@github-actions github-actions released this 08 Jun 23:24
· 107 commits to main since this release

Headline: pick any installed terminal font (and ship the recommended ones so they work everywhere), a point-and-style color inspect mode for theming, and a settings UI polish pass. All dogfood-verified on a live build before tagging.

Added

  • Pick any installed terminal font. The font setting is now a combobox over every font installed on the machine — click to browse the full list (each option rendered in its own face), type to filter, with a live Latin+Hangul preview so you can confirm a mixed-mono font has fixed-width CJK glyphs before committing. A separate "custom" entry mode takes any family name by hand for not-yet-installed fonts. Fixes a silent powershell.exe ENOENT (a bare-name spawn that failed to resolve under Electron) which had made the installed-font enumeration return nothing — so the feature never actually worked before this. (#155, resolves #147)
  • Bundled terminal fonts. JetBrains Mono, Fira Code, and JetBrainsMonoHangul now ship with the app (alongside the existing Cascadia Code/Mono), so the recommended fonts — including fixed-width Hangul — work on every machine without a manual install. All under the SIL Open Font License 1.1; license texts are bundled and listed in THIRD_PARTY_NOTICES. (#158)
  • Point-and-style color inspect mode. Click a chrome region to recolor it by theme token, with contrast-safety checks so a custom palette stays readable. (#156)

Changed

  • Settings tabs use SVG line icons in place of the dated unicode glyphs. (#148)
  • Settings design-system pass — shared primitives, accessibility fixes, and tab-label i18n. (#150)
  • i18n: Claude integration and first-run setup tab bodies are now translated across 21 locales (#152); the color customization strings across 22 locales (#157).

Fixed

  • Ctrl+J inserts a newline even with a CJK IME active. Inside in-pane TUIs (codex, Claude Code) Ctrl+J intermittently failed to add a newline — it worked with the IME off and broke with a Chinese / Japanese / Korean IME on. The byte pipeline below xterm is transparent to \n; the keystroke was lost at xterm's keyboard layer, which derives Ctrl+<letter> from the deprecated KeyboardEvent.keyCode. With the IME enabled the keydown reports keyCode === 229 ("Process") with key !== 'j', so xterm's 65–90 branch never matched and emitted nothing. wmux now resolves the newline keys (Shift+Enter, Ctrl+J) from the physical event.code and writes the byte itself — the same IME-safe approach already used for the split shortcuts — so Ctrl+J sends \n regardless of IME state. It defers while an IME composition is active (so a preedit is never split) and when the user has bound Ctrl+J to a custom keybinding. xterm 6 has no kitty/modifyOtherKeys path, so the emitted byte matches its legacy output when no IME is active. (#153)
  • --squirrel-firstrun no longer becomes a never-quitting zombie. On Windows the Squirrel first-run hook was misclassified, so the process neither initialized nor quit, leaving an idle GPU/network process behind after install. (#154)

Contributors

Thanks to the external contributors in this release:

Bundled fonts under the SIL Open Font License 1.1: JetBrains Mono (The JetBrains Mono Project Authors), Fira Code (The Fira Code Project Authors), and JetBrainsMonoHangul (Janghyub Seo).

What's Changed

  • feat(settings): replace dated unicode tab glyphs with SVG line icons by @zer0ken in #148
  • refactor(settings): design-system primitives, a11y, and tab-label i18n by @openwong2kim in #150
  • i18n(settings): translate Claude integration + first-run setup tab bodies (21 locales) by @openwong2kim in #152
  • fix(win): stop --squirrel-firstrun from becoming a never-quitting zombie by @openwong2kim in #154
  • fix(terminal): Ctrl+J inserts a newline under a CJK IME by @snowyukitty in #153
  • feat(settings): pick any installed terminal font (#147) by @openwong2kim in #155
  • feat(theme): point-and-style color inspect mode and contrast safety by @openwong2kim in #156
  • i18n: translate color customization strings into 22 locales by @openwong2kim in #157
  • feat(fonts): bundle JetBrains Mono, JetBrainsMonoHangul, and Fira Code by @openwong2kim in #158

New Contributors

Full Changelog: v2.17.1...v2.18.0