AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 429946
Accepted
KnownAsDon
KnownAsDon
Asked: 2018-03-14 04:41:03 +0800 CST2018-03-14 04:41:03 +0800 CST 2018-03-14 04:41:03 +0800 CST

Zsh 图标在 urxvt 中损坏

  • 772

所以我目前正在使用 manjaro linux,并且我使用 urxvt 作为我喜欢的终端,所以在这一切开始之前切换终端不是一个选项,如果我很粗鲁,对不起。

我将 zsh 作为我的默认 shell 安装到它,并通过 oh-my-zsh 添加了主题 robbyrussell。起初一切都很好,一切正常,但更新后我的图标坏了。特别是(如果您熟悉主题)箭头图标坏了,并且与所有其他主题中的所有图标相同。

此问题仅发生在 urxvt 上,因为当我尝试使用其他终端(例如 sterminal)时,主题有效。

您可以在此处看到一些屏幕截图这是它应该看起来的样子(从 sterminal 截取的屏幕截图)

这就是它的外观(从 rxvt 截取的屏幕截图)

我一直在 reddit、github repos(如 oh-my-zsh 和 robbyrussell officiall repo)寻求帮助,但似乎没有人帮助我,所以我真的希望你们能给我帮助。

以下是有关我的操作系统和终端的一些信息:

URXVT Version 9.22
Operating System : Manjaro i3 4.12.24-1
No Desktop Envoirment
i3wm as window manager

我正在为我的 zshrc 文件使用默认的 oh-my-zsh 配置和来自 manjaro i3 的默认 Xreources,您可以在此处找到。如果您需要更多信息,请告诉我。任何帮助将不胜感激!

zsh manjaro
  • 2 2 个回答
  • 9391 Views

2 个回答

  • Voted
  1. Best Answer
    J G Miller
    2018-03-14T19:54:16+08:002018-03-14T19:54:16+08:00

    首先,终端类型 rxvt 和 unicode-rxvt(通常缩写为 urxvt)之间存在显着差异。您已经指出您使用的终端是“URXVT Version 9.22”,因此为避免混淆,请使用正确的名称,而不是 rxvt,而是 urxvt。

    正如 Mikel 所指出的,Xresources 文件告诉 urxvt 使用 9x15 字体,这是 (a) 旧式 X11 服务器提供的字体方法和 (b) 能力有限的位图字体。

    oh-my-zsh Github README 文件解释

    许多主题需要安装电力线字体才能正确呈现

    因此,为了显示正确的箭头形状,您需要让终端使用适当的字体。也许您破坏该功能的更新是重置 urxvt 字体使用的更新?

    当您声明 sterminal 正确显示提示时,请检查正在使用的字体,然后在验证它与手动测试 urxvt -font "font_name" 一起使用后,更改 ${HOME} 目录中的 .Xresources 以使用该字体。(对于 Xft 提供的字体的较新方法,font_name 前面是 "xft:",后面是 ":size=12" 字体大小)。

    检查我的 urxvt 后,似乎很多知名的 truetype 和 opentype 等宽字体不提供“右箭头”字形,只显示一个空框。然而,一种现成可用的标准字体(并且应该安装在您的系统上)是 Deja Vu Sans Mono。

    所以尝试启动一个 urxvt

    urxvt -font "xft:Deja Vu Sans Mono:size=12" &
    

    并查看您的提示是否正确显示。

    查看https://bbs.archlinux.org/viewtopic.php?id=173477以讨论在 Xresources/Xdefaults 文件中修改 urxvt 的字体资源规范。

    PS 不要忘记,如果您首先启动 urxvtd 守护程序,然后使用 urxvtc 启动终端,则可以更有效地使用多个 urxvt 终端。

    附录

    感谢您确认您正在使用 urxvt 并且您已安装 DejaVu Sans Mono。

    确认在提示符下在终端中输入的命令没有发生字体替换

       fc-match  "DejaVu Sans Mono"
    

    产生输出

       DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
    

    可用的字体的实际字体文件位置和样式可以通过

        fc-list | grep --color 'DejaVu Sans Mono'
    

    现在假设一切正常,您需要通过从终端的命令行启动 urxvt 进行检查(很抱歉没有在上面说得很清楚,我在 Deja 和 Vu 之间有空间,这可能会导致问题)

        urxvt -font "xft:DejaVu Sans Mono:size=12" &   
    

    您可以将右箭头字符(从此处)“➜”剪切到该 urxvt 中,并且它可以正确显示,我已经检查过它确实有效。

    我还可以确认将以下内容放入 Xresources 文件中

     URxvt.font:                     xft:DejaVu Sans Mono:autohint=true:size=12
     URxvt.boldFont:                 xft:DejaVu Sans Mono:autohint=true:bold:size=12
     URxvt.italicFont:               xft:DejaVu Sans Mono:autohint=true:italic:size=12
     URxvt.boldItalicFont:           xft:DejaVu Sans Mono:autohint=true:bold:italic:size=12
    

    并使用 xrdb -merge Xresource_file_name 加载到 Xorg 服务器资源数据库中以 100% 确定将使用这些值,然后在命令行中仅使用 urxvt 启动终端会导致终端中字体正确显示右箭头字符. (您还应该注意到这种字体的特点,l 字符是卷曲的,并且在零字符的中心有一个点)。

    我通常在 urxvt “Luxi Mono” 中使用的字体(更容易阅读,恕我直言,容易上手)即使“font-manager”程序显示“Luxi Mono”确实有字形,也不能正确显示右箭头。同样,xterm 也坏了,但在 lxterminal、mate-terminal 和 xfce4-terminal 中的测试(检查了字体设置为 Luxi Mono 的首选项)都正确显示了右箭头。因此,urxvt 和 xterm 中的某些字体(如果我理解正确,它们共享一些代码来源)似乎确实有些问题,就像其他类似工作的字体共享一些公共代码即 libvte 一样。

    • 12
  2. Concrete_Buddha
    2019-04-19T13:38:34+08:002019-04-19T13:38:34+08:00

    我也在使用 Manjaro Linux (18.0.4 Illyria) 的 i3wm 社区版和 URXVT 版本 9.22。我在安装 Oh My Zsh 时遇到了完全相同的问题。

    遵循 JG Miller 的全面而有用的建议,我按照建议编辑了我的 ~/.Xresources 文件,并且它起作用了。极好的!

    直到我打开 Manjaro 的预装文件管理器 - ranger(基于 vi 键绑定的终端)。对 ~/.Xresources 的更改现在导致此应用程序中的图标格式不正确。

    找到一个类似的堆栈溢出问题我(在恢复上述更改后)修改了我的 ~/.Xresources 文件:

    URxvt.font:      9x15,xft:TerminessTTFNerdFontMono
    

    至:

    URxvt.font:      9x15,xft:TerminessTTFNerdFontMono,xft:DejaVu Sans Mono:autohint=true:size=12
    

    我的理解是,上面的意思是 Manjaro i3 默认字体用于 ranger,但是当遇到无法识别的字形时(例如 Oh My Zsh 中的字形),则使用 DejaVu Sans Mono。两个应用程序现在都可以正确显示。

    然而,感谢 JG Miller 提供了正确的方向。

    • 2

相关问题

  • 什么情况下路径中最先找到的可执行文件不会被使用

  • 符号链接所有点文件和目录

  • Pacman 说没有更新,但 pamac 说有一些?

  • 如何在`zsh`中增加一个动态命名的变量

  • 为什么我不能在 zsh 中定义一个名为 path 的只读变量?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve