Refresh visible when scrolling inside tig

Asked by Pranav Vaish on 2015-10-03

When I'm viewing a git repository using tig I can see terminator refreshing consciously. This is not the case when scrolling in ViM or using tig in another Terminal Emulator. How can I solve this? Thanks

Question information

English Edit question
Terminator Edit question
No assignee Edit question
Solved by:
Stephen Boddy
Last query:
Last reply:

It is not clear to me what you are seeing. I have just tested tig version 1.2.1 on Terminator version from trunk, although admittedly it was a micro git repo. I see no "refreshing consciously". I'm inferring that you mean continuous full refresh of the terminal display.

Have you tried with a temporary default Terminator config? Really there is not enough info for me to determine if you are seeing a real issue, or if there is something particular to your setup.

Pranav Vaish (pranav-vaish) said : #2

I am using tig version 2.1.1 and terminator version 0.98
I'll try finding some way to share a video of what is happening.

Pranav Vaish (pranav-vaish) said : #3
The link for the problem. Sorry for not giving a screencast. It just wasn't highlighting the problem. Thanks

OK, That video helped illustrate the problem. This issue also occurs in GNOME Terminal. GNOME Terminal and Terminator use the same terminal widget (libvte), although GNOME Terminal uses a much newer version. For this reason the issue is not in the code of Terminator, but in the libvte widget we (and many others) build upon. Checking xterm and konsole there is no flicker, but this might simply be quicker rendering, or it might be down to different implementations. It looks like tig/ncurses renders the whole terminal area from scratch when scrolling, and libvte cannot keep up (or does not wait for a vblank?), letting you see the refreshing.

Pranav Vaish (pranav-vaish) said : #5

Okay. That helps. Can I somehow fix this in terminator by changing the libvte version as you pointed out that this is the reason it works fine in gnome-terminal?

You misunderstood me (GNOME Terminal *does* have this issue) but OK, I just learned something new too :-)

We do have a preliminary GTK3 port that uses a newer libvte which is newer than that used with GNOME Terminal on my machine.
- GTK2 Terminator (default) uses libvte9, or 0.28.2, and has flickering problems
- GNOME Terminal uses libvte-2.90-9, or 0.34.9, and has flickering problems
- GTK3 Terminator uses libvte-2.91-0, or 0.38.1 and does not have flickering problem, or is reduced to be very, very rare.

So it seems that sometime between 0.34.9 and 0.38.1 libvte made some change that significantly improved this.

Note that the GTK3 port of Terminator is still in progress, so has some issues and rough edges, and not a great deal of testing.

And I just realised I didn't point you to instructions:

Pranav Vaish (pranav-vaish) said : #8

Thank You. :)

Pranav Vaish (pranav-vaish) said : #9

Thanks Stephen Boddy, that solved my question.