1 minute read

If you’ve code compiling and spitting out thousand of lines, you certainly don’t want your terminal to slow down the process. But some are pretty slow…


Test procedure

time for i in $(seq 9000); do echo $i hello world hello world hello world; done

3 run each, same machine, same terminal size, same conditions. Every terminal emulator uses Monospace 10pt or MiscFixed 10pt (if monospace is unavailable) as font.

Aterm 1.00.01

real    0m0.701s user    0m0.348s sys     0m0.048s

RXVT-unicode 9.05 2008-06-15

real 0m0.630s user 0m0.320s sys 0m0.068s

xterm (xorg 7.4)

real    0m28.216s user    0m0.372s sys     0m0.012s

Note: No double buffering. Maybe its time to add that to xterm ;)

konsole 2.1 kde-4.1.2

real    0m1.006s user    0m0.348s sys     0m0.032s

gnome-terminal 2.24.0

real    0m2.074s user   0m0.424s sys    0m0.040s

xfce4-terminal 0.2.8

real    0m2.640s user   0m0.352s sys    0m0.028s

Eterm 0.9.5

real  0m2.229s user   0m0.404s sys   0m0.016s

Basically, xterm sucks, gnome-terminal, Eterm and xfce4-terminal aren’t very good but they’re quite ok. Konsole, Aterm and rxvt are very fast, rxvt being the fastest.



I must say that I like xterm pretty much. It’s recovery from garbled terminals is better than others, and its very customizable. Too bad default sucks. For example, if you didn’t know, you can use ctrl or middle mouse, or alt + right click to bring up xterm menus. I advise you to also replace the Xaw scrollbar settings by something that make it look like a regular scrollbar.

#xterm "real" scrollbar emulation
#Put that in ~/.Xdefaults or Xresources and run xrdb ~/.Xdefaults
*Scrollbar.background:          grey
*Scrollbar.foreground:          grey
*Scrollbar.borderWidth:         0
*Scrollbar.shadowWidth:         0
*Scrollbar.thickness:           14
*Scrollbar.minimumThumb:        20
*Scrollbar.backgroundPixmap: gradient:horizontal?dimension=14&start=gray90&end=white
*Scrollbar.borderPixmap: gradient:horizontal?dimension=14&start=white&end=grey90

*Scrollbar.translations: #override\
     <Btn2Down>:   StartScroll(Forward) \n\
     <Btn1Down>:   StartScroll(Continuous) MoveThumb() NotifyThumb() \n\
     <Btn3Down>:   StartScroll(Backward) \n\
     <Btn1Motion>: MoveThumb() NotifyThumb() \n\