mirror of
https://github.com/wavetermdev/waveterm
synced 2026-05-24 09:18:27 +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>
67 lines
2.1 KiB
YAML
67 lines
2.1 KiB
YAML
name: Copilot Setup Steps
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths: [.github/workflows/copilot-setup-steps.yml]
|
|
pull_request:
|
|
paths: [.github/workflows/copilot-setup-steps.yml]
|
|
|
|
# Note: global env vars are NOT used here — they are not reliable in all
|
|
# GitHub Actions contexts (e.g. Copilot setup steps). Values are inlined
|
|
# directly into each step that needs them.
|
|
|
|
jobs:
|
|
copilot-setup-steps:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
# Go + Node versions match your helper
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version: "1.25.6"
|
|
cache-dependency-path: go.sum
|
|
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
cache-dependency-path: package-lock.json
|
|
|
|
# Zig is used by your Linux CGO builds (kept available, but we won't build here)
|
|
- uses: mlugg/setup-zig@v2
|
|
|
|
# Task CLI for your Taskfile
|
|
- uses: arduino/setup-task@v2
|
|
with:
|
|
version: 3.x
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# Git HTTPS so deps resolve non-interactively
|
|
- name: Force git deps to HTTPS
|
|
run: |
|
|
git config --global url.https://github.com/.insteadof ssh://git@github.com/
|
|
git config --global url.https://github.com/.insteadof git@github.com:
|
|
|
|
# Warm caches only (no builds)
|
|
- uses: nick-fields/retry@v3
|
|
name: npm ci
|
|
with:
|
|
command: npm ci --no-audit --no-fund
|
|
retry_on: error
|
|
max_attempts: 3
|
|
timeout_minutes: 5
|
|
env:
|
|
GIT_ASKPASS: "echo"
|
|
GIT_TERMINAL_PROMPT: "0"
|
|
|
|
- name: Pre-fetch Go modules
|
|
env:
|
|
GOTOOLCHAIN: auto
|
|
run: |
|
|
go version
|
|
go mod download
|