Quick Links

Key Takeaways

  • Recreate the old cathode-ray tube experience on Linux for fun using Cool Retro Terminal.
  • Installing is easy on Ubuntu, Fedora, and Manjaro, with simple commands like “sudo apt install cool-retro-term”.
  • Customize the appearance by adjusting many visual effects in the settings.

If you hanker for the wavering glow of the long-gone cathode-ray tube, you can recreate the flickering command line of yesteryear on your Linux desktop with this neat, just-for-fun terminal emulator.

A Cathode Ray What Now?

I’m old. I’ve used computers without any screen whatsoever, bashing my commands into paper-based teleprinters, and then reading the response from the computer one rattling, clacking word at a time as it was pounded via an inky ribbon onto a paper roll.

Moving from that to a terminal that had an integral screen and a keyboard with light-touch keys was game-changing. You typed, and the computer responded. Quickly, silently, and without the desk shaking.

Those early terminals had a large desktop footprint. The biggest space hog was the screen. The visible portion of the screen was just part of a very large glass component. The visible screen was actually the flattened bottom of a squarish glass teardrop that extended farther back than the height and width of the screen. A small increase in screen size meant a large increase in the volume of the entire glass assembly, and a big increase in weight.

They were called cathode-ray tubes or CRTs. Streams of electrons emitted from a heated cathode were fired at a phosphorescent inner coating on the screen, illuminating the points where they struck. The stream scanned across the screen pixel by pixel, illuminating those points that needed to be on. Then, it dropped down a pixel and repeated the process for the next line, doing an entire screen in the blink of an eye. The process was then repeated from the top of the screen.

All that for a text-only, monochrome display. Graphics and color came much later. CRT screens were expensive, heavy, fragile, and consumed a lot of electrical power. They were eventually replaced by the flat-screen technology that we use today. Why recreate those archaic displays on your Linux computer’s modern flat screen? For fun. There’s no other reason. There’s no need to do it. If you think it looks neat, give it a go.

Installing Cool Retro Terminal

The Cool Retro Terminal (CRT) is a terminal emulator, like GNOME terminal. It mimics the appearance of a range of vintage displays, but it is a fully functional terminal window. It might be a novelty, but it’s a working novelty.

To install it on Ubuntu, type:

sudo apt install cool-retro-term
Installing cool-retro-term on Ubuntu, in a terminal window.

On Fedora, the command is:

sudo dnf install coo-retro-term
Installing cool-retro-term on Fedora, in a terminal window.

Manjaro users should type:

sudo pacman -S cool-retro-term
Installing cool-retro-term on Manjaro, in a terminal window.

Tweaking the Settings

You’ll find Cool Retro Terminal (CRT) in GNOME’s applications view, or you can press the Super key and start to type “cool retro terminal.” Within a few keystrokes you’ll see its icon.

Searching for cool-retro-term in GNOME.

Click the icon to start CRT. If you want, right-click the icon and select Pin to Dash (or Pin to Dock in Fedora and Manjaro) for the convenience of having the CRT icon in the dock.

CRT will open in its default guise of a monochrome amber screen. It has all of its bells and whistles enabled, which might be a bit much.

The default amber display of CRT.

The color scheme is obviously that of an amber screen with orange characters on a dark brown background. The curve of the old glass screen is replicated too.

So far so good. The background of the window is showing a scrambled, snowy effect. It’s meant to represent the static interference you could get on very early or low-grade equipment.

Another anomaly faithfully reproduced from the original hardware is the slowly descending “glow line” you sometimes saw on slightly out of calibration monitors. On top of those two, if you look closely you’ll see very fast trembling on the characters. This was a phenomenon called “jitter.”

All of these speak to the attention to detail that’s gone into making the experience of using CRT as lifelike as possible. But en masse, I found them a bit overwhelming. Thankfully, they can be turned off. In fact, there’s a lot of tweaking that you can do.

The easiest way to change the appearance is to right-click the CRT window, and select Profiles from the context-menu.

The profiles list in the CRT context menu.

Then choose from one of the CRT emulations. This is Monochrome Green, which is like a generic green screen monitor.

A generic green monitor in CRT.

This is the IBM 3278 profile.

The IBM 3278 profile green screen display in CRT.

It emulates the display of a higher-end IBM late model of terminal, with a higher resolution display and more refined font. It even has mixed case.

All the profiles are still affected by the static interference, glow line, and jitter effects. To remove these effects, right-click the CRT window and select Settings.

In the settings dialog, click the Effects tab.

The static noise, glow line, and jitter controls in the CRT settings dialog.

To turn them off, deselect the Static Noise, Jitter, and Glow Line check boxes.

To leave them on but dial them down a little, use the slider controls to reduce their intensity. I turned them off completely, and the result was a more peaceful experience for my aging eyes.

The IBM 3278 CRT display with some effects turned off.

To make your settings permanent, save them to a new profile. Click the General tab, then click the Save button.

Creating a custom profile in the CRT settings dialog.

Give your new profile a name, and click OK. It’ll now appear in the right-click context menu Profiles list.

The custom profile appearing in the CRT context menu profiles listing.

All the expected settings are available, including brightness, contrast, margin width, blinking cursor on and off, and so on. You can even control how much curvature the screen has. Remember to create a new profile and save your changes if you want to use them in the future.

Setting CRT As the Default Terminal

To have CRT open when you right-click the desktop and select Open in Terminal, you need to know where the CRT executable resides in your file system. We’ll use the whereis command to do that.

whereis cool-retro-terminal
Discovering the cool-retro-term executable path with the whereis command, in a terminal window.

We need to pass that path to the gsettings command.

gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/cool-retro-term
Setting cool-retro-term to be the default terminal application, in a terminal window.

Now, if we right-click the desktop and select Open in Terminal, CRT will open.

The GNOME desktop right-click context menu.

On Ubuntu, Ctrl+Alt+T opens a new terminal window. That’ll open CRT now, too.

To restore the default, use whereis to locate the gnome-terminal executable, and use that path in the gsettings command.

whereis gnome-terminal
gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/gnome-terminal

Adding CRT to Nautilus

You can also add CRT to the context menu in the Nautilus file browser. There’s a fair few steps, but it’s straightforward enough.

We need to make sure Python 3 and a few dependencies are installed. These may already be installed on your Linux computer. If not, you’ll find them in your repositories.

sudo apt install python3
Installing the Nautilus python libraries, ina terminal window.
sudo apt install python3-pip
Installing the Python package manager, in a terminal widnow.

Now we can use pip to install the Nautlilus extension. You’ll only need the –break-system-packages option on Ubuntu 24.04.

pip install nautilus-open-any-terminal --break-system-packages
Installing the nautilus-open-any-terminal extension in a terminal window.

We need to update the schemas.

glib-compile-schemas ~/.local/share/glib-2.0/schemas/
Updating the GNOME schemas, in a terminal window.

This force-halts Nautilus.

nautilus -q
Forcing Nautilus to halt, in a terminal window.

We need to make use of dconf-editor. If you don’t already have it on your computer, you’ll find it in your repositories.

On Ubuntu, you should type:

sudo apt install dconf-editor
Installing dconf-editor on Ubuntu, in a terminal window.

On Fedora, use:

sudo dnf install dconf-editor

On Manjaro, the command is:

sudo pacman -S dconf-editor 

Open dconf-editor, and navigate to com > github > stunkymonkey > nautilus-open-any-terminal > terminal.

The Use Default Value slider and Custom Value text field in dconf-editor.

Toggle the Use Default Value slider to off, and enter cool-retro-term in the Custom Value text field. Click the Apply button.

A new menu option, Open cool-retro-term Here, appears in the right-click context menu in Nautilus.

The Open cool-retro-term Here context menu entry, in Nautilus.

To restore the default behavior, you’ll need to uninstall the nautilus-open-any-terminal extension. Just setting the slider back to Use Default Selection isn’t enough. You’ll find two entries in your context menu, one labeled Open Terminal Here and the other labeled Open in Terminal.

pip uninstall nautilus-open-any-terminal --break-system-packages
Uninstalling the nautilus-open-any-terminal extension, in a terminal window.

You only need to use the –break-system-packages if you’re on Ubuntu 24.04. Either way, reset Nautilus and you’ll restore its default behavior.

nautilus -q

Putting the Fun into Functional

CRT is only a bit of fun, but it is well crafted. The attention to detail that has gone into giving it an authentic look and feel is impressive.

It’s worth playing with, if only to see how far we’ve come.