mirror of
https://github.com/wavetermdev/waveterm
synced 2026-04-21 22:47:16 +00:00
Adds support for configuring terminal cursor style and blink behavior in
terminal blocks, with hierarchical resolution (block metadata →
connection overrides → global settings). New keys are `term:cursor`
(`block`/`underline`/`bar`, default `block`) and `term:cursorblink`
(`bool`, default `false`).
- **Config surface: new terminal keys**
- Added to global settings schema/types:
- `pkg/wconfig/settingsconfig.go`
- Added to block metadata typing:
- `pkg/waveobj/wtypemeta.go`
- Added default values:
- `pkg/wconfig/defaultconfig/settings.json`
- `"term:cursor": "block"`
- `"term:cursorblink": false`
- **Frontend terminal behavior (xterm options)**
- `frontend/app/view/term/termwrap.ts`
- Added `setCursorStyle()` with value normalization (`underline`/`bar`
else fallback `block`)
- Added `setCursorBlink()`
- Applies both options on terminal construction via
`getOverrideConfigAtom(...)`
- `frontend/app/view/term/term-model.ts`
- Subscribes to `term:cursor` and `term:cursorblink` override atoms
- Propagates live updates to `term.options.cursorStyle` /
`term.options.cursorBlink`
- Cleans up subscriptions in `dispose()`
- **Generated artifacts**
- Regenerated config/type outputs after Go type additions:
- `schema/settings.json`
- `pkg/wconfig/metaconsts.go`
- `pkg/waveobj/metaconsts.go`
- `frontend/types/gotypes.d.ts`
- **Docs**
- Updated config reference and default config example:
- `docs/docs/config.mdx`
```ts
// termwrap.ts
this.setCursorStyle(globalStore.get(getOverrideConfigAtom(this.blockId, "term:cursor")));
this.setCursorBlink(globalStore.get(getOverrideConfigAtom(this.blockId, "term:cursorblink")) ?? false);
// term-model.ts (live updates)
const termCursorAtom = getOverrideConfigAtom(blockId, "term:cursor");
this.termCursorUnsubFn = globalStore.sub(termCursorAtom, () => {
this.termRef.current?.setCursorStyle(globalStore.get(termCursorAtom));
});
```
<!-- START COPILOT CODING AGENT TIPS -->
---
🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
39 lines
1.3 KiB
JSON
39 lines
1.3 KiB
JSON
{
|
|
"ai:preset": "ai@global",
|
|
"ai:model": "gpt-5-mini",
|
|
"ai:maxtokens": 4000,
|
|
"ai:timeoutms": 60000,
|
|
"app:defaultnewblock": "term",
|
|
"app:confirmquit": true,
|
|
"app:hideaibutton": false,
|
|
"app:disablectrlshiftarrows": false,
|
|
"app:disablectrlshiftdisplay": false,
|
|
"app:focusfollowscursor": "off",
|
|
"autoupdate:enabled": true,
|
|
"autoupdate:installonquit": true,
|
|
"autoupdate:intervalms": 3600000,
|
|
"conn:askbeforewshinstall": true,
|
|
"conn:wshenabled": true,
|
|
"editor:minimapenabled": true,
|
|
"web:defaulturl": "https://github.com/wavetermdev/waveterm",
|
|
"web:defaultsearch": "https://www.google.com/search?q={query}",
|
|
"window:tilegapsize": 3,
|
|
"window:maxtabcachesize": 10,
|
|
"window:nativetitlebar": true,
|
|
"window:magnifiedblockopacity": 0.6,
|
|
"window:magnifiedblocksize": 0.9,
|
|
"window:magnifiedblockblurprimarypx": 10,
|
|
"window:fullscreenonlaunch": false,
|
|
"window:magnifiedblockblursecondarypx": 2,
|
|
"window:confirmclose": true,
|
|
"window:savelastwindow": true,
|
|
"telemetry:enabled": true,
|
|
"term:bellsound": false,
|
|
"term:bellindicator": false,
|
|
"term:cursor": "block",
|
|
"term:cursorblink": false,
|
|
"term:copyonselect": true,
|
|
"term:durable": false,
|
|
"waveai:showcloudmodes": true,
|
|
"waveai:defaultmode": "waveai@balanced"
|
|
}
|