Skip to content

fix(tui): settings focus nav#1367

Open
FromSi wants to merge 5 commits into
floatpane:masterfrom
FromSi:fix/settings-pane-focus-navigation
Open

fix(tui): settings focus nav#1367
FromSi wants to merge 5 commits into
floatpane:masterfrom
FromSi:fix/settings-pane-focus-navigation

Conversation

@FromSi
Copy link
Copy Markdown
Member

@FromSi FromSi commented May 27, 2026

What?

Improves Settings pane focus navigation in the TUI.

  • Adds left navigation back from the content pane to the settings menu.
  • Allows left to leave Settings from the menu, like esc.
  • Hides right-pane cursor/highlight when the content pane is not focused.
  • Keeps bold styling only on the currently focused pane.
  • Updates English Settings help text.
  • Adds tests for horizontal pane focus and App Encryption input behavior.
view

Why?

Closes #1231

Fixes confusing Settings focus behavior where both panes could appear selected at the same time.

This makes keyboard navigation clearer: > and bold styling now indicate the active focus, while left provides a consistent way to move back or exit.

@FromSi FromSi requested a review from a team as a code owner May 27, 2026 10:51
@floatpanebot floatpanebot added bug Something isn't working question Further information requested area/tui Terminal UI / view layer area/i18n Localization / translations area/docs Docs site / README size/L Diff: 201–800 lines labels May 27, 2026
@floatpanebot
Copy link
Copy Markdown
Member

floatpanebot commented May 27, 2026

Benchmark report — no significant change

Metrics worse: 0 · better: 0 (threshold: ±3%).

benchstat output
goos: linux
goarch: amd64
pkg: github.com/floatpane/matcha/backend
cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                           │    old.txt    │               new.txt                │
                           │    sec/op     │    sec/op      vs base               │
ParseSearchQuery_Simple-4    3.382µ ± 237%   3.596µ ± 208%        ~ (p=0.589 n=6)
ParseSearchQuery_Complex-4   7.008µ ±  58%   6.171µ ±  28%        ~ (p=0.394 n=6)
TokenizeSearchQuery-4        5.876µ ±  65%   4.257µ ± 218%        ~ (p=0.699 n=6)
geomean                      5.183µ          4.554µ         -12.14%

                           │  old.txt   │              new.txt               │
                           │    B/op    │    B/op     vs base                │
ParseSearchQuery_Simple-4    26.00 ± 0%   26.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseSearchQuery_Complex-4   762.0 ± 0%   762.0 ± 0%       ~ (p=1.000 n=6) ¹
TokenizeSearchQuery-4        176.0 ± 0%   176.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                      151.6        151.6       +0.00%
¹ all samples are equal

                           │  old.txt   │              new.txt               │
                           │ allocs/op  │ allocs/op   vs base                │
ParseSearchQuery_Simple-4    2.000 ± 0%   2.000 ± 0%       ~ (p=1.000 n=6) ¹
ParseSearchQuery_Complex-4   23.00 ± 0%   23.00 ± 0%       ~ (p=1.000 n=6) ¹
TokenizeSearchQuery-4        9.000 ± 0%   9.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                      7.453        7.453       +0.00%
¹ all samples are equal

pkg: github.com/floatpane/matcha/tui
                    │   old.txt    │               new.txt                │
                    │    sec/op    │    sec/op      vs base               │
LogPanelView-4        154.1µ ±  5%    158.5µ ±  6%        ~ (p=0.240 n=6)
SearchOverlayView-4   167.5µ ± 11%    167.5µ ± 15%        ~ (p=0.699 n=6)
InboxConstruction-4   890.5µ ±  7%   1001.9µ ±  8%  +12.51% (p=0.002 n=6)
geomean               284.3µ          298.5µ         +5.01%

                    │    old.txt    │               new.txt               │
                    │     B/op      │     B/op       vs base              │
LogPanelView-4        44.67Ki ± 51%   44.67Ki ± 51%       ~ (p=1.000 n=6)
SearchOverlayView-4   44.66Ki ± 26%   56.14Ki ±  0%       ~ (p=0.121 n=6)
InboxConstruction-4   874.3Ki ±  0%   874.2Ki ±  0%  -0.01% (p=0.041 n=6)
geomean               120.4Ki         129.9Ki        +7.92%

                    │   old.txt   │              new.txt              │
                    │  allocs/op  │  allocs/op   vs base              │
LogPanelView-4         714.0 ± 0%    714.0 ± 0%       ~ (p=1.000 n=6)
SearchOverlayView-4    925.0 ± 0%    926.0 ± 0%       ~ (p=0.121 n=6)
InboxConstruction-4   3.479k ± 0%   3.478k ± 0%  -0.04% (p=0.022 n=6)
geomean               1.320k        1.320k       +0.02%

auto-generated by benchmarks.yml

Comment thread i18n/locales/en.json
Comment thread CONTRIBUTING.md
Copy link
Copy Markdown
Member

@andrinoff andrinoff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great!

@FromSi
Copy link
Copy Markdown
Member Author

FromSi commented May 28, 2026

@andriy-chernov need i18n, thx

@andrinoff
Copy link
Copy Markdown
Member

@andriy-chernov need i18n, thx

he is handling some things today, i'll do it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Docs site / README area/i18n Localization / translations area/tui Terminal UI / view layer bug Something isn't working question Further information requested size/L Diff: 201–800 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UX, Settings: several suggestions

3 participants