xterm:无法加载字体“-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1”

xpt*_*xpt 4 fonts ubuntu windows-subsystem-for-linux wsl2

我在 WSL 中从 Ubuntu-22.04 收到以下错误

xterm: cannot load font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1"

再次注意,它来自WSL 中的Ubuntu-22.04,因为我在使用普通Ubuntu 22.04时没有得到它。


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04 LTS
Release:        22.04
Codename:       jammy

$ apt-cache policy xbitmaps
xbitmaps:
  Installed: 1.1.1-2.1ubuntu1
  Candidate: 1.1.1-2.1ubuntu1
  Version table:
 *** 1.1.1-2.1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

Not*_*1ds 7

旁注:在最近的 WSL 版本中不应再出现此错误。WSLg 实现现在将您的发行版绑定安装到 WSLg 中,以便它可以直接使用已安装的字体。

对于较旧的系统,或者只是为了了解“操作方法”......

要在启动时设置字体xterm,请首先使用以下命令获取已安装字体的列表:

fc-list
Run Code Online (Sandbox Code Playgroud)

在 WSL 上的 Ubuntu 上,看起来默认安装了“DejaVuSansMono”,并且它是一个很好的固定宽度终端类型字体。

您可以通过启动 xterm 并使用以下命令指定字体(和可能的大小)来尝试:

xterm -fs 14 -fa DejaVuSansMono
Run Code Online (Sandbox Code Playgroud)

如果该字体适合您,您可以通过创建以下内容使其永久化~/.Xresources

xterm*faceName: DejaVuSansMono
xterm*faceSize: 14
Run Code Online (Sandbox Code Playgroud)

然后将其合并到您的 X 资源数据库中:

xrdb -merge ~/.Xresources
Run Code Online (Sandbox Code Playgroud)

旁注:我花了一段时间试图确定为什么这个错误不会出现在标准 Ubuntu 发行版上,我唯一能想到的是桌面管理器安装或用户配置中的某些内容处理那里的资源。例如,当xterm在 Ubuntu 下的 xfce4 下运行时,不会出现该消息。