如何永久更改控制台TTY字体类型,使其在重启后保持不变?


14

我正在运行Ubuntu 15.04 64位桌面版(基于Debian的Linux)。

sudo dpkg-reconfigure console-setup从命令行使用默认控制台字体类型更改为Terminus。之后,控制台字体立即变为外观更清晰的字体。

然而,在重新启动后Ctrl+ Alt+ F1带我到具有原始大块寻找风格字体的脸,不是我选择的选择一个控制台窗口。

/etc/default/console-setup文件似乎已更改为我的选择。

# CONFIGURATION FILE FOR SETUPCON

# Consult the console-setup(5) manual page.

ACTIVE_CONSOLES="/dev/tty[1-6]"

CHARMAP="UTF-8"

CODESET="guess"
FONTFACE="Terminus"
FONTSIZE="8x16"

VIDEOMODE=

# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'

如何永久更改控制台字体以使用首选字体?


这个关于askuntu的答案可能会帮助您:askubuntu.com/a/396254/399775
toxefa 2015年

看来这是一个已知的错误。不幸的是,在askubuntu问题中,建议的答案是创建新贵脚本。Ubuntu 15.04和Debian现在已经采用systemd,并且不再使用新贵。
安迪·富斯尼亚克

Answers:


6

参见/ubuntu/630118//ubuntu/328463/

这个问题似乎是由于console-setup所期望的字体命名与in中的字体不匹配而引起的/usr/share/consolefonts/,因此/etc/console-setup/在您选择要使用的字体(使用dpkg-reconfigure console-setup)时 将其复制到。

如果转到控制台并执行strace /lib/udev/console-setup-tty fbcon,则可以看到它正在尝试打开如下字体:

/etc/console-setup/Lat15-TerminusBold11x22.psf

但是,如果您查看/etc/console-setup/,那里只有少数几种字体(您选择的字体),它们看起来更像这样:

/etc/console-setup/Lat15-TerminusBold22x11.psf.gz

一个具有高度x宽度,另一个具有宽度x高度。

该问题可以通过几种方法解决。

(1)/lib/udev/console-setup-tty可以解决-这是更永久的上游解决方案。

(2)您可以手动更改/etc/default/console-setup,以FONTSIZE反转高度和宽度。每次使用更改字体时,都需要这样做dpkg-reconfigure console-setup。但是,当计算机重新启动时,该首选项将保留。

(3)您可以安装console-setup-tty期望的字体。这就是我所说的“过度杀伤”选项。我这样做是这样的:

在/etc/rc.local中:

# install console fonts and then set up console
/etc/console-setup/fonts.sh install
/lib/udev/console-setup-tty fbcon

创建一个脚本/etc/console-setup/fonts.sh

#!/bin/bash

action=$1

srcdir="/usr/share/consolefonts"
parent="/etc/console-setup"
subdir="fonts"

case "$1" in
    install)
        # console fonts are not named properly in Ubuntu 15.04, compensate
        [[ -d $parent/$subdir ]] || mkdir $parent/$subdir
        for x in $( cd $srcdir ; ls -1 ) ; do
           # rearrange the two numbers from HHxWW to WWxHH
           y=$(echo "$x" | sed -e 's/^\([^-]*\)-\([^0-9]*\)\([0-9]*\)x\([0-9]*\).psf.gz/\1-\2\4x\3.psf.gz/g')
           # whether the pattern above matches or not, we'll be uncompressing here
           z=${y/.psf.gz/.psf}
           [[ ! -f $parent/$subdir/$z ]] && zcat $srcdir/$x > $parent/$subdir/$z
           [[ ! -L $parent/$z ]] && ln -sv $subdir/$z $parent/$z
        done
        ;;
    uninstall)
        rm -rf $parent/$subdir
        # only remove broken links (links to the fonts we removed above)
        rm $(find -L $parent -type l)
        ;;
    *)
        echo "$(basename $0) install|uninstall"
        ;;
esac

exit 0

对于一个快速实用的解决方案,我会做#2,在文件中添加一个注释,如果您选择其他字体,可能需要重新做一遍(假设注释也不会被覆盖)。

但是#3运作得很好,没有什么大惊小怪的事情。


6

我最近在Ubuntu 15.04 64位盒上遇到了此问题。该setupcon命令将字体设置为我设置的字体dpkg-reconfigure console-setup

我添加setupcon到rc.local中,但是在字体仍然错误的地方留了一个空隙(因为rc.local是在安装控制台之后执行的),所以这对我来说还不够好。

因此,我决定更深入。我编辑了/lib/systemd/system/console-setup.service文件并附ExecStart=/bin/setupcon加到文件末尾。这将setupcon在安装控制台时调用,在启动时更正字体,没有时间间隔。


2

我找到的最简单的解决方案是编辑/etc/default/console-setup设置

FONT="Lat7-Terminus32x16.psf.gz"

并注释掉除该ACTIVE_CONSOLES行以外的所有其他内容。

您可以立即通过来应用此功能setupcon,并且重启后也会应用该功能。

指定字体名称而不是单个组件可以解决Alan Porter所述的命名不匹配问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.