Can I change the font of the text-mode console?
Solution 1
If you use the Linux console, the best way I found is:
in
/etc/default/console-setup
put, for example
CHARMAP="UTF-8"
CODESET="Lat7"
FONTFACE="Terminus"
FONTSIZE="28x14"
Another way is to use setfont
from the kbd
package:
setfont /usr/share/consolefonts/Lat7-Terminus28x14.psf
This works for my Debian; it may be different for you.
In Debian, you can also run dpkg-reconfigure -plow console-setup
to be prompted for the various console settings and pick them from menus.
Edit - I put together a small page how to setup the font colors. The section that is relevant for this post has the header "the Linux VTs" (= ttys, or "console").
Solution 2
/etc/default/console-setup
et al. have been superseded on systemd operating systems, although you will find that some operating systems such as Debian try to maintain the older configuration system.
The way to do this on a systemd operating system is to edit the font settings in the /etc/vconsole.conf
file. These settings are applied by the systemd-vconsole-setup
service, which is essentially a glorified way of running setfont
and loadkeys
before the login services are brought up.
So you would have FONT=Uni2-Terminus28x14
in that file, for example.
Note that the service program allows kernel command-line options such as vconsole.font
to override /etc/vconsole.conf
contents. If you are mucking around with GRUB kernel command-line options, bear this in mind.
Further reading
- Lennart Poettering et al..
vconsole.conf
. systemd manual pages. FreeDesktop.org. - Lennart Poettering et al..
systemd-vconsole-setup
. systemd manual pages. FreeDesktop.org. - Setting console font in vconsole.conf does not work (systemd)
- https://unix.stackexchange.com/a/326804/5132
Solution 3
If you want to use nearly any X-compatible font you should have a look at David Herrman's work on kmscon
. The name slightly belies the project, actually, as Kernel Mode Setting is not a requirement for it to work - it also works with with frame-buffer devices - for instance if you are using proprietary AMD or nvidia display drivers. With kmscon
you get multi-seat session management, xterm
like keyboard and UTF-8 font handling and session control. Changing the font can be done via the /etc/kmscon/kmscon.conf
or via a command-line option.
Solution 4
Using Ubuntu 16.04 (probably works in all supported versions), I edited ~/.bashrc
and just before terminal splash at end of file, inserted the setfont
command:
# Set font when running in console
/bin/setfont /usr/share/consolefonts/Lat2-Terminus32x16.psf.gz
# Splash Calendar and time
now
# ASCII Linux distribution display
screenfetch
Now when selected Ctrl+Alt+F1 through Ctrl+Alt+F6 and get nice big fonts.
This is the largest font available and you can see a complete list with ls
command:
$ ls /usr/share/consolefonts
Arabic-Fixed15.psf.gz Lat15-Terminus20x10.psf.gz
Arabic-Fixed16.psf.gz Lat15-Terminus22x11.psf.gz
Arabic-VGA14.psf.gz Lat15-Terminus24x12.psf.gz
(... SNIP ...)
Lat15-Terminus14.psf.gz Vietnamese-Fixed16.psf.gz
Lat15-Terminus16.psf.gz Vietnamese-Fixed18.psf.gz
Sample screen
This is a facsimile, not a true screen capture from console where screen is wider by 20% and background is black:
Prior to changes I couldn't read the screen on HDPI monitor.
Solution 5
A dead-simple, if inflexible, solution is to run setfont -d
, which doubles the size of the current font. Running it twice won't quadruple the size, though (or at least not on my system).
Related videos on Youtube
Weihang Jian
Updated on September 18, 2022Comments
-
Weihang Jian over 1 year
I have a Unix-like OS installed without a windowing environment; i.e., just a text-mode console and no GUI.
Is it possible to change the font used by the console?
To be clear, I am not talking about the terminal emulator that comes with a desktop environment like KDE or GNOME.
-
Blender over 11 years
-
TheDudeAbides over 4 years@Blender - hello from 2019! That resource has apparently moved here: wiki.archlinux.org/index.php/Linux_console#Fonts
-
-
Casey Watson about 9 yearsFont sizes listed by
dpkg-configure console-setup
are: 6x12, 8x14, 8x16, 10x20, 11x22, 12x24, 14x28, and 16x32. -
mt025 about 7 yearsI had to reboot for this to take effect
-
Kayofeld almost 7 years
-
fpmurphy over 6 yearsThe problem with this approach is that it is
systemd
-specific and changes the default for all users. -
alamin about 6 yearsYou saw the words
without desktop
@Never Too Old To Learn? -
Kayofeld almost 6 yearsI used
dpkg-reconfigure console-setup
solution, and after i made my selections of font options, it modified/etc/default/console-setup
and ranupdate-initramfs
(i suppose with-u
option). However, your answer does not mention runningupdate-initramfs
. Is it necessary? -
Pankaj Jangid about 4 years@mt025 you may use the command
setupcon
to apply the changes. It is part of theconsole-setup
package. -
Leif Arne Storset about 4 yearsOn some distros (at least on Arch), the fonts will be in
/usr/share/kbd/consolefonts
. I will add a separate answer to highlight thesetfont
solution. -
RichieHH over 3 yearsThat's nothing to do with the question. You're running a terminal in a gui.
-
WinEunuuchs2Unix over 3 years@RichieHH The
~/.bashrc
is processed when you open a terminal too. I just can't do a screen shot of a terminal session because there is no GUI running. -
Lonnie Best over 2 yearsAll the font sizes listed in
dpkg-configure console-setup
were smaller than I'd like for my 4K monitor. I want the font to be 5 times bigger! -
Admin about 2 yearsA user having some trouble with the instructions: askubuntu.com/questions/1409347/…
-
Admin almost 2 yearsGiven the age of this answer this makes sense, but for anyone reading this answer nowadays, there appears to have been no update to kmscon since 2014. I can imagine there are lot of security and compability issues with such an unmaintained tool