HiDPI 控制台字体非交互式

HiDPI 控制台字体非交互式

非交互地更改控制台字体的正确方法是什么?

我有一个 HiDPI 显示器,需要更大的控制台字体。我可以使用以下方式以交互方式进行设置:

$ sudo dpkg-reconfigure console-setup
# Select UTF-8 -> Guess -> Terminus -> 16x32
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.130ubuntu3.5) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-43-generic

但是,如果我尝试以非交互方式进行设置,如下所示:

 $ sudo debconf-set-selections <<EOF 
 console-setup console-setup/charmap47 select UTF-8
 console-setup console-setup/codeset47 select Guess optimal character set
 console-setup console-setup/codesetcode string guess
 console-setup console-setup/fontface47 select Terminus
 console-setup console-setup/fontsize string 16x32
 console-setup console-setup/fontsize-fb47 select 16x32 (framebuffer only)
 console-setup console-setup/fontsize-text47 select 16x32 (framebuffer only)
 EOF

这不起作用。运行setupcon没有效果。如果我检查/etc/default/console-setup,我会看到字体信息在运行时更新dpkg-reconfigure,并且dpkg-reconfigure还会触发update-initramfs,因此似乎发生了更多的事情,dpkg-reconfigure而我的debconf-set-selections没有触发。我如何找到这些操作并在我的之后触发它们debconf-set-selections

答案1

您需要在 /etc/default/console-setup 文件中执行此操作,假设我们要使用 Terminus 16x32 字体,则命令为:

sudo sed -i '/^FONTFACE/s/^/#/' /etc/default/console-setup # comment out the old value
sudo sed -i '/^FONTSIZE/s/^/#/' /etc/default/console-setup # comment out the old value
echo 'FONTFACE="TER"' | sudo tee -a /etc/default/console-setup # Set font to Terminus
echo 'FONTSIZE="16x32"' | sudo tee -a /etc/default/console-setup # Set font size

最后,使用以下命令应用更改sudo update-initramfs -u

此外,Ubuntu 内核(从 Xenial 开始)将很快支持 FONT_TER16x32 在早期启动阶段用于控制台显示 [1]。

要受益于此 HiDPI 字体支持,只需将“fbcon=font:TER16x32”添加到 /etc/default/grub 中的 GRUB_CMDLINE_LINUX,然后运行sudo update-grub

[1]https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1819881

相关内容