Cool Retro Term: A Retro-Style Terminal Emulator for Ubuntu

Cool Retro Term: A Retro-Style Terminal Emulator for Ubuntu

Install and customise Cool Retro Term on Ubuntu โ€” a GPU-accelerated terminal emulator with CRT scanlines, screen curvature, ambient glow, and unlimited scrollback.

Tested on: Ubuntu 14.04 LTSUbuntu 14.10Ubuntu 15.04

Cool Retro Term is a terminal emulator that mimics the look of a 1980s cathode-ray tube monitor โ€” complete with scanlines, phosphor glow, screen curvature, and the faint flicker of a degaussing CRT. It is built on Qt 5 and QML, renders its effects through OpenGL, and underneath all that visual nostalgia it is a fully functional VT100-compatible terminal with unlimited scrollback. If you spend hours in the terminal and want something more characterful than the default GNOME Terminal, Cool Retro Term delivers without sacrificing usability.

Cool Retro Term running htop with green phosphor theme

Why Cool Retro Term Exists

The project was started by Filippo Scognamiglio as an experiment in GPU-accelerated terminal rendering. The goals were straightforward:

  • Prove that aesthetic terminal effects could run at 60 fps without burdening the CPU.
  • Provide a nostalgia-accurate CRT simulation that went beyond simple colour filters.
  • Maintain full compatibility with standard terminal workflows โ€” SSH sessions, text editors, ncurses applications.

The result was a terminal that looked like it belonged in a 1983 computer lab but behaved exactly like any modern emulator under the surface.

Step-by-Step Installation

The quickest route on Ubuntu 14.04 and later:

sudo add-apt-repository ppa:noobslab/apps
sudo apt update
sudo apt install cool-retro-term

Launch from the application menu or from another terminal:

cool-retro-term &

Method 2: Build from Source

Building from source gives you the latest upstream features. Install the build dependencies first:

sudo apt install git build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev \
  qml-module-qtquick-controls qml-module-qtgraphicaleffects \
  qml-module-qtquick-dialogs qml-module-qtquick-localstorage \
  qml-module-qtquick-window2 qml-module-qt-labs-settings \
  qml-module-qt-labs-folderlistmodel

Clone and build:

git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
cd cool-retro-term
qmake
make -j$(nproc)

Run directly from the build directory:

./cool-retro-term

Or install system-wide:

sudo make install

Method 3: AppImage

If you prefer a portable binary that requires no installation:

  1. Download the AppImage from the project’s releases page.
  2. Make it executable:
    chmod +x cool-retro-term-*.AppImage
    
  3. Run it:
    ./cool-retro-term-*.AppImage
    

Customisation

Right-click inside the terminal window and select Settings to access the full configuration panel.

Built-In Profiles

Cool Retro Term ships with several profiles that replicate specific vintage hardware:

ProfileLook
Default AmberOrange-on-black, mild curvature
Green PhosphorClassic green-on-black, heavy scanlines
Apple ][White-on-black, high bloom
VintageHeavy flicker, strong curvature, faded phosphor
IBM 3278Green text, minimal effects

Select a profile from Settings โ†’ Profiles and fine-tune from there.

CRT Effects

Every visual parameter is individually adjustable:

  • Screen curvature โ€” 0 % (flat) to 100 % (fishbowl).
  • Scanlines โ€” density and brightness of horizontal line artefacts.
  • Bloom โ€” the phosphor glow around bright characters.
  • Ambient light โ€” a soft halo that illuminates the “bezel” around the screen.
  • Flicker โ€” simulates the 50/60 Hz refresh of a real CRT.
  • Jitter โ€” horizontal line displacement, mimicking a poorly tuned monitor.
  • Static noise โ€” random pixel noise overlaid on the image.
  • RGB shift โ€” chromatic aberration separating colour channels.

Cool Retro Term settings panel showing CRT effect sliders

Fonts

The Fonts section offers several bitmap-style typefaces at different sizes. For a period-accurate look, choose one of the built-in options (Commodore PET, Apple II, Terminus). To use a modern system font:

  1. Open Settings โ†’ Fonts.
  2. Disable Use built-in fonts.
  3. Select any monospace font installed on your system.

Opacity and Background

You can set terminal background opacity to let your wallpaper show through the CRT effects โ€” a surreal but visually striking combination:

Settings โ†’ General โ†’ Background opacity โ†’ 85%

Practical Daily Use

Despite the visual effects, Cool Retro Term is a serious working terminal. Workflows that run perfectly:

  • SSH sessions. Colours render correctly through SSH; ncurses applications like htop, mc, and nano display properly.
  • Vim and Neovim. Syntax highlighting works. For best results set set termguicolors in your vimrc if using a 256-colour theme.
  • tmux and screen. Session multiplexing works flawlessly. This is the recommended way to get “tabs” since Cool Retro Term does not natively support them.
  • Git workflows. git log --graph --oneline, git diff, and interactive rebase all render correctly.
  • Build output. Compiler errors, test runners, and CI logs scroll at full speed. The unlimited scrollback buffer means you will not lose output from long builds.

Setting Cool Retro Term as Default

sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/bin/cool-retro-term 50
sudo update-alternatives --config x-terminal-emulator

Select cool-retro-term from the numbered list. From this point, any application that invokes the default terminal (file managers, IDE “Open Terminal” actions) will launch Cool Retro Term.

Performance Considerations

The CRT effects are GPU-bound, not CPU-bound. On hardware with OpenGL 2.0 or later support the overhead is minimal:

GPU ClassTypical FPSNotes
Dedicated NVIDIA/AMD60 fpsNo measurable overhead
Intel HD 4000+60 fpsSmooth at default settings
Intel GMA (pre-2010)15-30 fpsReduce curvature and bloom
Virtual machine (llvmpipe)5-10 fpsDisable most effects

If you notice sluggish scrolling, reduce Bloom, Ambient light, and Screen curvature first โ€” these are the most shader-intensive effects.

Cool Retro Term with tmux and vim running

Common Pitfalls

  1. Missing QML modules at build time. The build will succeed but the application will crash at launch with QML import errors. Double-check that every qml-module-* package listed in the dependency block is installed.
  2. Running on Wayland without XWayland. Cool Retro Term uses X11-specific OpenGL contexts. Under a pure Wayland session it may fail to launch. Ensure XWayland is enabled or launch with QT_QPA_PLATFORM=xcb cool-retro-term.
  3. Excessive scrollback consuming RAM. On sessions with continuous high-volume output (tailing large log files, streaming build output) the unlimited scrollback buffer can grow to hundreds of megabytes. Set a cap in Settings โ†’ General โ†’ Scrollback if memory is tight.
  4. Expecting colour accuracy. The CRT effects intentionally distort colours. If you rely on precise colour output (CSS colour previews, image metadata), switch to a standard terminal for those tasks.
  5. Forgetting --recursive when cloning. The repository uses Git submodules for the QML terminal widget. Cloning without --recursive results in an empty qmltermwidget/ directory and a build failure. Fix it after the fact with:
    git submodule update --init --recursive
    

Final Thoughts

Cool Retro Term occupies a unique niche: it is the only terminal emulator that treats visual personality as a first-class feature while remaining fully compatible with professional workflows. Install it for the aesthetics, keep it for the unlimited scrollback and the conversation-starting green phosphor glow.

Frequently Asked Questions

Does Cool Retro Term support tabs or split panes?
No. Cool Retro Term is a single-window, single-session emulator by design. For tabbed workflows, run it alongside tmux or screen inside the terminal session.
Is the CRT effect purely cosmetic or does it affect performance?
The effects are rendered via OpenGL shaders on the GPU. On machines with dedicated or modern integrated graphics the impact is negligible. On very old Intel GPUs (pre-Sandy Bridge) you may notice dropped frames.
Can I use Cool Retro Term as my default terminal?
Yes. Set it as the default with ‘sudo update-alternatives –config x-terminal-emulator’ and choose cool-retro-term from the list.
What shell does Cool Retro Term use?
It uses whatever your system default shell is, typically /bin/bash. You can change this in Settings โ†’ General โ†’ Command.
Does Cool Retro Term support Unicode and modern fonts?
It supports UTF-8 output. The built-in fonts are monospaced bitmap-style faces designed to look period-correct, but you can load any system monospace font via the Fonts settings panel.
Is unlimited scrollback really unlimited?
Unlimited scrollback stores history in memory. On long-running sessions with very high output this can consume significant RAM. You can cap it in Settings โ†’ General โ†’ Scrollback if needed.