What problem are you trying to solve?
The Picker ships one layout: prototype variant D, rows grouped under Kind headers with a preview pane. Some users, and some terminal sizes, suit a flat fzf-style list better: no Kind headers taking vertical space, the prompt at the bottom where fzf users expect it, and a background-highlighted selected row.
Proposed solution
Add a config key that selects the Picker layout, defaulting to the current one:
[picker]
layout = "grouped" # default, prototype variant D
# layout = "list" # prototype variant C: flat list + preview
list renders prototype variant C · List + preview from the prototype/picker-look branch (prototype/picker/variant_c.go): a flat list ordered by History with never-visited Projects last, kind/ shown muted before each Project name, one status glyph per row, relative time right-aligned, the filter prompt below the list, a ▌ bar and background highlight on the selected row, and the same boxed preview pane on the right. Fuzzy matching, key maps (default and vim), status glyphs, colours, and the narrow-terminal rules stay shared with the grouped layout.
Alternatives considered
- A runtime toggle key instead of a config key. A config key is the decided pattern (
[keys] vim), and a layout is a standing preference rather than a per-session choice.
- Making
list the default. The grouped layout was the one accepted in the prototype review, so it stays the default.
Additional context
What problem are you trying to solve?
The Picker ships one layout: prototype variant D, rows grouped under Kind headers with a preview pane. Some users, and some terminal sizes, suit a flat fzf-style list better: no Kind headers taking vertical space, the prompt at the bottom where fzf users expect it, and a background-highlighted selected row.
Proposed solution
Add a config key that selects the Picker layout, defaulting to the current one:
listrenders prototype variant C · List + preview from theprototype/picker-lookbranch (prototype/picker/variant_c.go): a flat list ordered by History with never-visited Projects last,kind/shown muted before each Project name, one status glyph per row, relative time right-aligned, the filter prompt below the list, a▌bar and background highlight on the selected row, and the same boxed preview pane on the right. Fuzzy matching, key maps (default and vim), status glyphs, colours, and the narrow-terminal rules stay shared with the grouped layout.Alternatives considered
[keys] vim), and a layout is a standing preference rather than a per-session choice.listthe default. The grouped layout was the one accepted in the prototype review, so it stays the default.Additional context
go run ./prototype/picker -variant con that branch).layoutshould be a config error, matching how every other key is validated.