我正在运行 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'
如何永久更改控制台字体以使用我喜欢的字体?
答案1
看https://askubuntu.com/questions/630118/和https://askubuntu.com/questions/328463/。
这个问题似乎是由控制台设置期望的字体命名与 中的字体命名不匹配引起的/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 效果很好,几乎没有大惊小怪或混乱。
答案2
我最近在我的 Ubuntu 15.04 64 位机器上遇到了这个问题。该setupcon
命令将字体设置为我使用dpkg-reconfigure console-setup
.
我添加setupcon
到我的 rc.local 中,但这留下了一个间隙,字体仍然错误(因为 rc.local 是在控制台设置后执行的),所以这对我来说还不够好。
所以,我决定更深入。我编辑了/lib/systemd/system/console-setup.service
文件并将其附加ExecStart=/bin/setupcon
到文件末尾。setupcon
当控制台设置时,它将调用,在启动时更正字体没有一个时间间隔。
答案3
我发现的最简单的解决方案是编辑/etc/default/console-setup
以设置
FONT="Lat7-Terminus32x16.psf.gz"
并注释掉除该ACTIVE_CONSOLES
行之外的所有其他内容。
您可以使用立即应用它setupcon
,并且它也会在重新启动后应用。
指定字体名称而不是单个组件可以解决 Alan Porter 描述的命名不匹配问题。