Recently I’ve been trying to track down some sudden slowness in
canto-curses. Things like scrolling and other routine operations seemed to take many times longer than they should.
Well. To make a long and ultimately fruitless debug session short, turns out that the problem wasn’t with
canto-curses it was with the terminal I’ve been using. I’ve been distro-hopping again (sorry Arch, you broke my shit one too many goddam times) and lately I’ve been trying out LMDE with the Cinnamon desktop. I don’t feel as efficient as I do with a tiling WM like Qtile, but I’ve been mostly happy with it.
As part of the Cinnamon desktop, I’ve been routinely using
gnome-terminal which, in turn, uses cairo to do its font rendering like a lot of the other DE terms. Apparently
cairo doesn’t like having walls of text thrown at it as often as
canto-curses does, and as such, scrolling the terminal (which pretty much means every character on the screen needs to be updated) chokes
cairo and slows scrolling to a comparative crawl.
The solution? Well, I don’t have one in code yet. I’m wondering if I can workaround it or at least smooth it out. So, in the meantime, if
canto-curses doesn’t scroll fast enough for you, use a non-cairo terminal like [u]xterm or [u]rxvt.