Not too long ago I tested a whole bunch of terminal emulators, because I wanted to find out if there's a better one than
xterm. During my tests I tried the following: xterm, mlterm, eterm, xvt, rxvt, urxvt, materm, roxterm and konsole. There are more in the Ports Collection, but I didn't try the others because after reading their descriptions it was clear to me that they're out of the question.
Of those, I actually liked
mlterm the best. It has a lot of features, and it is easily configurable: Ctrl + right mouse button opens an extensive dialog window, unlike xterm where most changes require editing Xresources and restarting xterm. It even supports proportional fonts (I tried “DejaVu Sans”) – that works surprisingly well, even though output from tools like
ls(1),
df(1) etc. doesn't line up. On the other hand, manual pages look very beautiful with proportional fonts, almost like a PDF. Also, mlterm has a rather low number of dependencies.
I also liked
konsole, if only for the fact that it supports almost
all of the monochrome attributes (bold, underline, inverse, …) including double width and double height. No other terminal emulator did that, except for putty and mintty, but putty cannot be used for local sessions (although you can ssh to localhost, of course), and mintty doesn't run on FreeBSD. On the other hand, konsole has a huge number of dependencies (more than 200).
All the others I have tried are inferior to xterm and mlterm, for one reason or another. Some didn't support UTF-8 too well (or not at all), some only supported bitmap fonts without antialiasing, some had problems with copy&paste, and so on. I'm still sticking to xterm for now, but might migrate to mlterm in the future (with monospace fonts, though, because some things – e. g. text editors – don't work very well with proportional fonts, unfortunately).
Shortly after my tests I stumbled across the
kitty terminal emulator. I missed it during my tests because it's not in the Ports Collection, but it should be fairly easy to build manually. According to the description on the website, it should also work very well, probably comparable to mlterm, and it even supports very unusual attributes like dotted underline or colored wavy underline and things like that. It also has an API written in Python, so you can easily create extensions and plugins if you're familiar with it (would be a perfect fit for me because I like Python very much). I'll certainly give it a try as soon as I have a little time to spare.
By the way, some of the terminal emulators support tabs and/or (sub)windows for multiple sessions (for example, kitty, mlterm and roxterm do), but I don't need such a feature so I didn't take it into account during my tests. Using several separate terminal windows is the way I'm used to work (optionally with the addition of multiple
screen(1) sessions within one xterm), and that's perfectly fine for me, even with a very large number of windows.