Fbterm (Frame buffer terminal emulator) is standalone replacement of Linux kernel terminal that can function outside of graphical environments. It was previously hosted at Google Code, https://code.google.com/archive/p/fbterm/, and it is since 2020 maintained by Debian.
It provides support for fontconfig (and draws text with freetype2, same as Qt/Gtk based GUI applications), up to 10 windows with a scroll-back history for each, auto-detect text encoding with current locale, double width scripts like Chinese, Japanese and more: see https://salsa.debian.org/debian/fbterm/-/blob/master/README.
Install the AUR package. Pay attention to the instructions and minor changes by the included patches.
After installation, to be able to use fbterm as a non-root user add yourself to the
video user group.
To enable keyboard shortcuts for non-root users, use setcap to give fbterm the
The user configuration file is located in
$XDG_CONFIG_HOME/fbterm/fbtermrc. The global
/etc/fbterm/fbtermrc.example is well commented and serves as a good starting point.
Fbterm uses fontconfig for a list of fonts, trying each sequentially until it is able to render the characters.
To change the fonts that are used, use the
--font-names option to select favorites from the list given by
Input method support
Tips and tricks
As a non-graphical environment
In the late 2010's, developments in the Linux ecosystem and its framebuffer capabilities, together with cheap and powerful hardware (standard mainstream graphical cards) made things that were difficult in the past possible, and without too much customization or hacking:
- 256 colorschemes support
- display of CJK web pages and documents
- access to a much wider variety of TTF fonts
In addition to the modern capabilities of the framebuffer, for example:
- Watching movies with mpv (e.g. with
- Screenshots and screencasts with (ex: fbgrab, fbdump)
- PDF and other complex documents display with (ex: fbpdf, jfbview, fbgs)
- Previewing pictures in the ranger file manager (w3mimgdisplay support)
- Running some heavy GUI QT Platform applications (ex: qutebrowser, maps)
Fbterm with other modern text-centric tools make an environment without the concept of windows possible. Combined usage of fbterm with a terminal multiplexer like tmux allows for a very powerful desktop alternative mimicking the use of a window manager. Some examples of this advanced usage from Arch users:
- https://github.com/xlucn/dotfiles - Examples of a dwm alike desktop with fbterm and tmux
- https://github.com/xlucn/fbterm - Some patch examples
- https://github.com/ivanp7/sweet-home - Custom wallpapers, use with tmux and fbi
To use a background image, Fbterm can be set to take a screen shot of the frame buffer device when it starts.
The following script (using theAUR image viewer) is recommended in the man page:
#!/bin/bash # fbterm-bi: a wrapper script to enable background image with fbterm # usage: fbterm-bi /path/to/image fbterm-options echo -ne "\e[?25l" # hide cursor fbv -ciuker "$1" << EOF q EOF shift export FBTERM_BACKGROUND_IMAGE=1 exec /bin/fbterm "$@"
White font color
By default, fbterm display the "white" text as a gray color, even using the
-f 7 switch.
Its possible to get real white by doing an echo once inside fbterm, like this:
echo -en "\e]P7ffffff"