gitui-org / gitui-org/gitui

`Ctrl+L` to Repaint Screen

Open
#2,703 0 comments 0 reactions 0 assignees View on GitHub
feature-request
Dominant language
Rust
Stars
22.5k
Forks
773
PR merge metrics
No merged PRs in 30d

Description

### 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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.