Repository navigation
Scroll a dashboard taller than the pane, with a scrollbar - #19
Merged
Merged
Conversation
Watch mode draws on the full-screen view, which has no scrollback, so rows past the pane were cut off. up/down (keys.scroll_up, keys.scroll_down) scroll one row; the mouse wheel sends those keys on the full-screen view, and devdash turns on alternate scroll mode (DEC 1007) while it runs. A scrollbar in the rightmost column shows the visible part; content lays out one column narrower beside it.
Owner
Author
|
@coderabbitai review |
shayan-ys
marked this pull request as ready for review
October 9, 2026 20:04
shayan-ys
marked this pull request as draft
October 9, 2026 20:05
…arded mode 1007 Render reads st.scroll once and re-checks overflow after the narrow layout, so a key press or data change between steps cannot misalign the scrollbar. --once renders without a viewport instead of a 10,000-row height. Mode 1007 is written only to a terminal, inside the cleanup scope, and restored even if restoring stdin fails.
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.
What and why
On a short pane, watch mode cut off every row past the bottom with
… N more rows. Watch mode draws on the terminal's full-screen view, which has no scrollback, and drawing inline can't redraw a frame taller than the pane without piling stale copies into scrollback. So devdash now scrolls inside the app, the waylessand htop do.up/downscroll one row. These are new built-in keys,keys.scroll_upandkeys.scroll_down, and can be remapped or disabled like the other built-ins. An integration that bindsupordownnow fails config validation with the existing remap hint.--oncenow renders without a viewport, so it prints every row (it used to stop at a 10,000-row height).Checklist
uv run pytestanduv run ruff check .pass (116 passed; ruff clean)test_a_dashboard_taller_than_the_pane_scrolls_with_its_keys_within_bounds: thumb position at both ends, scrolling stops at both ends, narrower layout width,--onceprints every row)CHANGELOG.mdhas a line underUnreleasedfor a user-visible changemain, so it stays out of this PR.Verification
ESC O Bpresses scroll the content and move the thumb down. On quit, the output contains the 1007 save, set and restore sequences.--onceprinted all 77 rows of a real dashboard.Review
--oncecropping past 9,998 rows.