diff --git a/crates/tui/src/tui/file_tree.rs b/crates/tui/src/tui/file_tree.rs index a5b7da6e..9a1309cf 100644 --- a/crates/tui/src/tui/file_tree.rs +++ b/crates/tui/src/tui/file_tree.rs @@ -333,14 +333,12 @@ pub fn render_file_tree( } else { " " }; - let icon = if entry.is_dir { - "\u{1F4C1} " - } else { - "\u{1F4C4} " - }; // 📁 / 📄 + // No separate icon: the ▼/▶ expand marker already signals dirs, + // and SMP emoji (📁/📄, U+1F4C1/U+1F4C4) render at inconsistent + // column widths across terminals, breaking layout. See issue #1314. // Build the display text. - let raw = format!("{indent}{expand_marker}{icon}{}", entry.name); + let raw = format!("{indent}{expand_marker}{}", entry.name); let display = truncate_line_to_width(&raw, content_width.max(1)); let style = if is_selected { diff --git a/crates/tui/src/tui/widgets/header.rs b/crates/tui/src/tui/widgets/header.rs index 438abb50..d05993be 100644 --- a/crates/tui/src/tui/widgets/header.rs +++ b/crates/tui/src/tui/widgets/header.rs @@ -250,7 +250,10 @@ impl<'a> HeaderWidget<'a> { let body = if !include_prefix { trimmed.to_string() } else if trimmed.eq_ignore_ascii_case("max") || trimmed.eq_ignore_ascii_case("maximum") { - format!("\u{1F433} {trimmed}") + // Use a non-emoji diamond (U+25C6, always 1 column) instead of an + // SMP emoji whose rendered width is inconsistent across terminals + // (cmd/PowerShell, WezTerm, Alacritty). See issue #1314. + format!("\u{25C6} {trimmed}") } else { format!("\u{00B7} {trimmed}") };