gitui-org / gitui-org/gitui

`Ctrl+L` to Repaint Screen

Offen
#2,703 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
feature-request
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:Image
- 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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.