I recently realized that I don't use any of the features of the GUI of raspbian other than the terminal for my current project. I therefore decided that, rather than boot in to the GUI desktop only to click on the terminal, full-screen it, then un-decorate it, I could speed things up by just booting directly into the CLI (by setting the boot/log-in setting via raspi-config).

This, of course, boots directly into the CLI; however, the display is clearly different. The colors and font are different.

My question is, how does the 'boot CLI/terminal' differ from the one that is loaded in the GUI desktop? and, also, how can I make the boot CLI look the same as the GUI one (same colours/font etc)?


1 Answer 1


The non-GUI interface is called a virtual console (VC) or virtual terminal (VT) and it runs on a virtual device called a TTY; see:


There are actually 6 of them instantiated at boot and you can cycle through them with Alt-Ctrl-F[1-6] (this works from the GUI desktop too, which occupies one of the VCs when running). There are historical and wide ranging hardware/software compatibility reasons for this interface stack, and it is not unique to linux (although the specific implementation is referred to as "the linux console").

A GUI CLI interface is called a terminal emulator1 and there are a variety of them, I believe the default on Rpi OS is the LXTerminal, part of the LXDE environment the RpiOS GUI is derived from. You will often see these referred to as "virtual terminals" by people who don't know/understand/care about the difference.

how can I make the boot CLI look the same as the GUI one (same colours/font etc)

You probably can't exactly, although you may be able to come close. Although in theory the non-GUI console supports 24-bit color (as the GUI consoles do), there isn't a lot of application for it (and some of the libraries in Raspbian are compiled for only 8 or 256 color). The fonts are also more limited; you can set that via setupcon (see man setupcon), although this may (or may not, I don't know) get overriden by systemd at boot; that font is set in /etc/vconsole.conf where you can set FONT to the basename of a file from /usr/share/consolefonts (eg. for Uni1-VGA32x16.psf.gz use Uni1-VGA32x16). You may find some fonts to install with apt search font | grep -iB 1 console although I think most of them are there already.

  1. Might be more accurate to say a terminal emulator provides a text console interface in accord with some specific standards, and the shell provides the CLI proper. Really this is true of the virtual consoles too.
  • Really good answer. Thanks! Oct 17, 2021 at 13:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.