v2.18.0
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.exeENOENT (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 deprecatedKeyboardEvent.keyCode. With the IME enabled the keydown reportskeyCode === 229("Process") withkey !== 'j', so xterm's65–90branch never matched and emitted nothing. wmux now resolves the newline keys (Shift+Enter, Ctrl+J) from the physicalevent.codeand writes the byte itself — the same IME-safe approach already used for the split shortcuts — so Ctrl+J sends\nregardless 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-firstrunno 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:
- @zer0ken — SVG settings-tab icons (#148) and the font picker proposal (#147).
- @snowyukitty — Ctrl+J newline fix under CJK IME (#153).
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