Decide on an ambiguous-width-as-wide setting #16
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis#16
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
East Asian Ambiguous characters (※ ○ ① ★ ─ α, and Private Use, which includes Nerd Font icons) are always one cell in felis. Vim with
set ambiwidth=double(or asetcellwidths()table) assumes two, so the cursor and the text drift apart. With #10 these characters render inside their one cell, soambiwidth=singleis a working default.Peers: kitty, Ghostty, Alacritty and foot have no such setting; WezTerm (
treat_east_asian_ambiguous_width_as_wide), iTerm2, Terminal.app, VTE and xterm (-cjk_width) offer one, default narrow.Run principle-check before any work. If accepted, the daemon (grid widths) and the client (glyph footprint in
GlyphIndex::raster_px) must agree, so it is a session-level setting rather than a client-only knob, and every width consumer (grid, pre-edit, bars, capture) must read it.Decided against it for now.
wcwidth, which gives one cell under a UTF-8 locale. A wide setting in the terminal alone aligns Vim and misaligns everything else; it only works when the user also patches the locale and every program agrees.ambiwidth=singlewith per-rangesetcellwidths()adjustments is the common setup in Japanese-language environments today.ambiwidth=singlealready renders correctly.Revisit if a concrete report shows felis unusable in an environment that requires ambiguous-as-wide. Then also compare a cell-width table (the analogue of Vim's
setcellwidths()) against a single boolean.