`Ctrl+L` to Repaint Screen
- Vorherrschende Sprache
- Rust
- Sterne
- 22.5k
- Forks
- 773
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
### The Problem
A TUI can get messed up for various reasons, and `gitui` is no exception.
A simple trigger that's reproducible with `gitui` is running it in the internal shell in Midnight Commander - a setup that would be very convenient, if it weren't so badly impeded by `gitui` (as of v0.27.0) losing its shape as soon as `mc`'s panels are toggled (`Ctrl+O`).
### Suggested Solution
Like most other TUI tools, `gitui` should offer a dedicated command, readily bound to a keyboard shortcut (preferably `Ctrl+L`), that **repaints the entire screen content** that's meant to be displayed.
### Additional Context
- Screenshot:
- Proper display can be restored to some extend by cycling through tabs - the more content, the better, because `gitui` redraws the changed areas of the terminal. E. g. the `Log` tab with many verbose messages often suffices to restore the left 60% or so. However, this workaround is both cumbersome and incomplete, disturbing fragments remain. At the end, exiting and restarting `gitui` is the only real remedy I know.
- Examples of TUI applications without this bug include `mc`'s own TUI (with panels on), as well as `less`, `mutt`, `vim`, `htop`, `aptitude` - you name it. When run in `mc`'s internal terminal and panels are toggled, they either don't get deranged, in the first place, or a quick `Ctrl+L` will completely resolve the mess.
- The same holds if you test `gitui` vs. other TUI applications outside `mc`, e. g. by forcing garbage onto them, as in `echo "garbage" > /dev/pts/8`. All of the above examples (and many more) are instantaneously set back in order by a simple `Ctrl+L`.
- Possibly related (even if remotely): #1077
Beitragsleitfaden
Rechercherichtung
Es ist keine Datei oder kein Test benannt. Beginne damit, die Verarbeitung von Terminaleingaben und die Einstiegspunkte für das Neuzeichnen des Bildschirms in gitui zu finden, und verfolge anschließend, wie vorhandene Tastenbelegungen Aktualisierungen auslösen. Fertig ist die Aufgabe, wenn eine Ctrl+L-Tastenbelegung den gesamten vorgesehenen Bildschirm neu zeichnet und die Anzeige nach dem Umschalten der Panels von Midnight Commander oder dem Einfügen von Terminal-Müll wiederherstellt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- cli
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100