Summary
The Settings panel toggle "Status Line Above Terminal" (settings key `status_line_above_terminal`) does not do what its name suggests. Toggling it changes whether the status line appears as a separated row above the terminal — but off is what produces the separated above-terminal row, and on keeps the bar inside each window. The label and the behaviour are inverted.
Smoke-tested during A.6b-win (Win-GUI status-bar quadraui migration). User report:
the 2 status line options appear to be reversed as in the first one affects the behavior that other one's name implies
Actual semantics (`src/render.rs:4446-4453`)
```rust
let per_window_status = engine.settings.window_status_line;
let bottom_panel_open = engine.terminal_open || engine.bottom_panel_open;
let separate_status =
per_window_status && !engine.settings.status_line_above_terminal && bottom_panel_open;
```
- `status_line_above_terminal = true` (default) → per-window bars stay inside each editor window
- `status_line_above_terminal = false` + terminal open → status extracted to a separated bar above the terminal
Reading the label, a user expects `true` to mean "yes, render the status as a row above the terminal". The reverse is true.
The render.rs comment around line 4448 also says "rendered below the terminal" but every backend (TUI / GTK / Win-GUI) actually positions the separated bar above the terminal panel. So the comment is wrong on top of the label being wrong.
Options
- Rename the field + update all read sites (e.g. `status_line_separated_above_terminal`). Breaking change for user settings files; needs migration.
- Invert the default (default `false`, semantics flip). Same breakage.
- Cheapest: relabel the toggle to match the field. E.g. "Status Line Inside Window (vs Separated)" with a clearer description. No code change, no settings-file breakage.
- Cleanest UX: make this an enum (Inside-Window / Above-Terminal-Separated / Global-Bottom) instead of two booleans. Larger change.
Related
The companion setting `window_status_line` ↔ label "Per-Window Status Line" wires correctly (`src/core/settings.rs:1441`, `:1365`, `:1681`). The confusion is purely the second toggle's name vs effect.
Summary
The Settings panel toggle "Status Line Above Terminal" (settings key `status_line_above_terminal`) does not do what its name suggests. Toggling it changes whether the status line appears as a separated row above the terminal — but off is what produces the separated above-terminal row, and on keeps the bar inside each window. The label and the behaviour are inverted.
Smoke-tested during A.6b-win (Win-GUI status-bar quadraui migration). User report:
Actual semantics (`src/render.rs:4446-4453`)
```rust
let per_window_status = engine.settings.window_status_line;
let bottom_panel_open = engine.terminal_open || engine.bottom_panel_open;
let separate_status =
per_window_status && !engine.settings.status_line_above_terminal && bottom_panel_open;
```
Reading the label, a user expects `true` to mean "yes, render the status as a row above the terminal". The reverse is true.
The render.rs comment around line 4448 also says "rendered below the terminal" but every backend (TUI / GTK / Win-GUI) actually positions the separated bar above the terminal panel. So the comment is wrong on top of the label being wrong.
Options
Related
The companion setting `window_status_line` ↔ label "Per-Window Status Line" wires correctly (`src/core/settings.rs:1441`, `:1365`, `:1681`). The confusion is purely the second toggle's name vs effect.