| Age | Commit message (Collapse) | Author |
|
|
|
refs #207
|
|
refs #225
|
|
|
|
refs #149
|
|
tracking
When the focused pane requests ?25l (cursor hidden) but paints its own
cursor — common in TUIs like Claude Code, pi, and codex — macOS native
input methods stop tracking the candidate-window position. CJK users
(Chinese / Japanese / Korean) cannot see candidate windows follow as
they type. Setting [experimental] reveal_hidden_cursor_for_cjk_ime = true
exposes the focused pane's cursor anchor to the outer terminal regardless
of the pane's hidden-cursor request, restoring IME tracking for CJK input.
[experimental] cjk_ime_agents is an optional allow-list. When empty,
the reveal applies to any focused pane. When non-empty (e.g.
["claude", "codex"]), the reveal only applies if the focused pane's
detected agent matches one of the listed names. This lets users enable
the workaround only for AI-agent TUIs that paint their own cursor,
leaving plain shells and other programs untouched. Accepted names: pi,
claude, codex, gemini, cursor, cline, opencode, copilot, kimi, kiro,
droid, amp, grok, hermes. Unknown names are ignored.
When the pane reports no cursor position (cursor_state returns None for
some TUIs), the anchor falls back to the pane's top-left so a stable
IME hint is always available.
[experimental] cjk_ime_cursor_shape (default "steady_block") controls
the DECSCUSR shape rendered for the revealed cursor; six variants are
accepted: block, steady_block, underline, steady_underline, bar,
steady_bar.
Trade-off when enabled: a hardware cursor will be visible in the outer
terminal for apps that hide the cursor without painting a replacement.
Default false preserves the behavior set in 2c95071. Pair the reveal
with cjk_ime_agents to scope it to specific TUIs.
Manually verified on macOS 26.5 aarch64 with system Pinyin IME against
Claude Code: candidate window tracks cursor with flag enabled, returns
to anchored-at-start behavior with flag disabled.
refs #149
|
|
|
|
refs #154
|
|
|
|
refs #198
|
|
|
|
refs #154
refs #201
refs #202
refs #219
|
|
|
|
refs #136
|
|
|
|
refs #185
|
|
refs #205
|
|
refs #196
|
|
|
|
|
|
|
|
|
|
refs #204
|
|
refs #198
|
|
refs #198
|
|
|
|
refs #145
|
|
refs #168
|
|
refs #152
refs #189
refs #190
|
|
refs #187
|
|
|
|
refs #170
|
|
refs #161
Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
|
|
refs #144
|
|
refs #151
Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
|
|
|
|
refs #155
Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
|
|
* feat: configure sidebar min/max width via [ui]
Expose the previously hardcoded MIN_SIDEBAR_WIDTH / MAX_SIDEBAR_WIDTH
clamps as [ui] sidebar_min_width / sidebar_max_width. Defaults remain
18 / 36 so existing configs are unchanged. Hot-reload is wired through
the existing [ui] block; reload re-clamps the live width to the new
bounds so tightening takes effect immediately.
Reject inverted bounds (min > max) at every entry point so a bad config
can never reach u16::clamp(min, max), which panics: App::new falls back
to defaults, and apply_live_config treats the whole [ui] section as
invalid and returns a partial reload report.
refs #132
* test: keep sidebar reload width within bounds
refs #132
---------
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
|
|
session.json is written via tmp + atomic rename. rename() replaces the
symlink itself, so users who stow session.json from a dotfiles repo lose
the link on every save.
Resolve symlinks before placing the .tmp so the rename targets the
canonical file and the symlink at the input path is preserved. Atomicity
is preserved because the .tmp and the target stay in the same directory.
refs #139
|
|
Add a terminal theme that inherits the terminal default background and uses the host terminal's 16-color ANSI palette for UI colors.
refs #140
|
|
refs #133
|
|
When dragging to select text near pane edges, a 30ms recurring tick
now continues scrolling and extending the selection while the mouse
is idle. The autoscroll stops on MouseUp, key input, navigate action,
cursor leaving the hot zone, scrollback boundary, missing metrics,
or pane rect change.
Also fixes pre-existing bugs where workspace/tab/pane transitions
failed to clear selection state, which could cause stale selections
to persist across views. Selection clearing on pane death is scoped
to only the dying pane.
Also fixes anchor_screen_pos returning pane-relative coordinates
instead of screen coordinates, which caused false drag detection
and spurious edge autoscroll on same-cell events when the pane
has a non-zero origin.
refs #128
Co-authored-by: leeanh <mac@macs-MacBook-Pro.local>
|
|
|
|
refs #115
|
|
|
|
|
|
|
|
|
|
|
|
refs #127
|