feat!: replace the boo ui bottom bar with modals and a command palette#13
Closed
kylecarbs wants to merge 1 commit into
Closed
feat!: replace the boo ui bottom bar with modals and a command palette#13kylecarbs wants to merge 1 commit into
kylecarbs wants to merge 1 commit into
Conversation
The status bar is gone; the viewport now fills the full terminal height. Kill confirmation, rename, and session creation open as centered modals, and pressing C-a opens a palette that fuzzy-finds sessions and runs commands (new, kill, rename, quit, redraw, literal C-a). BREAKING CHANGE: printable keys after C-a feed the palette filter, so the single-letter ui bindings (C-a c/k/r/n/p/d/l/a) no longer run commands directly; use the GNU screen style control variants (C-a C-c, C-a C-k, C-a C-r, C-a C-n, C-a C-p, C-a C-d, C-a C-l) or the palette. Creating a session now always prompts for a name; an empty name keeps the automatic naming.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces every bottom-bar interaction in
boo uiwith centered modals and removes the status bar entirely; the viewport now fills the full terminal height.What changed
C-a): a modal that fuzzy-finds sessions (case-insensitive subsequence match) and runs commands (new session,kill <name>,rename <name>,quit ui,redraw,send a literal C-a). Type to filter,up/downorC-n/C-pto move,enterto run,escto close.C-a C-k, sidebarx, or palette): confirmation modal, still answered withy/n. Targets are tracked by session name, so a sidebar refresh can no longer redirect a confirmation to a different index.C-a C-ror palette): input modal pre-filled with the current name.C-a C-c,+ new session, or palette): every create path now opens a name prompt; an empty name keeps the automaticboo newnaming (shown as a dim(automatic name)placeholder).created x,copied 42 characters, errors) render as a self-expiring toast overlaid on the last row instead of occupying a reserved row.boo help uiand the README keybinding section.Breaking change
Printable keys after
C-anow feed the palette filter, soC-a ksearches for "k" instead of killing. This is what makes fuzzy-find possible, and it removes the old timing dependence (previously the byte afterC-awas a command regardless of how stale the prefix was). The GNU-screen-style control variants already documented for boo (C-a C-c/C-a C-k/C-a C-r/C-a C-n/C-a C-p/C-a C-d/C-a C-l,C-a C-atoggle) keep working as direct commands, and a literalC-ais available as a palette command. Plainboo attachbindings are untouched.Testing
zig build test-allpasses (63 unit + 43 integration tests).stty sizenow reports all rows).boo uiwithboo send/boo peek: palette, filter, kill/rename/create modals, placeholder, and toasts all render correctly.Design notes
C-aprefix arms with no command byte in the same read, mirroring when the old keybind bar appeared. A loneEsccancelling the armed prefix is swallowed by the input parser, soreadTtydetects the silent disarm and closes the palette.Up/Downnavigate the palette); previously an arrow key pressed during a rename leaked its final byte into the input buffer.This PR was generated by Coder Agents on behalf of @kylecarbs.