> ..., which would be a good starting point to trace > the problem (unless someone already knows what the problem is).
I would assume the problem is the excessive redrawing of the whole terminal window. Each time you move the curser only one cell the whole screen will be redrawn into a backup pixmap and then the whole pixmap will be copied to the window. Also, when the screen is redrawn by the application (maybe due to a page up/down) st's draw() will be called multiple times due to the kernel buffer size of pipes, which will result in redrawing the entire window multiple times. I have experimented with remembering the min and max row of changes since the last call to draw() (and only drawing that portion of the screen) a while ago. It adds a few lines to the code but on my system it did lower the CPU usage of X. I stopped looking into this because I have other issues with st besides performance at the moment (mainly xterm compatibility - I ssh into a few machines and installing a new terminfo everywhere is no option for me). -- Eckehard Berns