cmatrix is a command-line utility that displays the famous terminal screen from the movie The Matrix that the characters stare at. A lot of people in IRC land mention that they like to have
cmatrix running somewhere on their screen so when someone that doesn’t know much about computers walks by, they are set in awe and amazed at how the programmer is able to quickly decipher such sporadic information. They also suggest to have a
cat of /dev/urandom on another terminal screen.
When installing Arch Linux on my ASUS K55N-DS81 laptop, I noticed that when I installed and ran the
cmatrix utility (which is available in the Pacman community repo), it would begin to lag after about 5 seconds of operation (when the screen got really crowded). At first, I thought that this was due to the fact that the window manager I use (i3-wm) does not support true double buffering, thus causing
cmatrix to have trouble outputting its payload to the console. In order to remedy this, I went ahead and installed compton, which is a composite manager known for working well with i3. Unfortunately, this did not solve the problem.
Thus, There was only one other thing that was really affecting how things were displayed onto my screen, and that was the display drivers. I currently had the xf86-video-ati drivers installed, which are the open source drivers for ATI graphics cards supported by Arch Linux. Obviously, these were causing problems. I then went through the semi-painful process of getting ATI’s catalyst drivers installed on my laptop (the process is very well documented, so it’s actually not that big of a deal).
Well, after getting the drivers installed and restarting my system,
cmatrix ran without a hitch. Buttery smooth. I was even able to launch many, many instances of it without problem. Thus, when installing Arch on a new system (or any linux distro),
cmatrix serves as a simple way to make sure that the display settings are up-to-par (For basic CLI programs, at least). Be aware that this is not a test for actual graphics intensive things.