urxvt 电力线符号

urxvt 电力线符号

我用的是urxvt。

所以我在玩 oh-my-zsh 主题时发现其中一些有“电力线符号”。

(如果您不知道它是什么 - 请看一下。https://gist.githubusercontent.com/agnoster/3712874/raw/screenshot.png

所以基本上你有一组字体补丁,它添加了这些额外的字符。或者可以下载字体,放入 info ~/.fonts && fc-cache -vf ~/.fonts && 瞧!

如果您没有完全支持 powerline 的字体,您可以像这样链接字体: URxvt*font: xft:Terminus:pixelsize=14:antialias=true,xft:Inconsolata\ for\ Powerline:pixelsize=14:antialias=true

在这种情况下,您使用常规的 Mr.Terminus,当它缺少字符时,我猜,它会转到 Ms.Inconsolata。

所以,我的问题是这样的:http://5cm.ru/code/i6/PUno.png

到目前为止我已经尝试过:

URxvt*font: xft:Terminess Powerline:pixelsize=15:antialias=true
URxvt*font: xft:Fantasque Sans Mono:style=Regular:antialias=true
URxvt*font: xft:Menlo:pixelsize=16:antialias=true
URxvt*font: xft:Terminus:pixelsize=14:antialias=true,xft:Inconsolata\ for\ Powerline:pixelsize=14:antialias=true
URxvt*font: xft:PowerlineSymbols:pixelsize=14:antialias=true,xft:Terminus:pixelsize=14:antialias=true
URxvt*font: xft:Terminus:pixelsize=14:antialias=true,xft:PowerlineSymbols:pixelsize=14:antialias=true

屏幕截图为 URxvt*font: xft:Terminess Powerline:pixelsize=15:antialias=true

我的 urxvt 绝对是用 unicode 支持构建的。我运行 gentoo 并仔细检查了 useflags - unicode3 -vanilla。

字体将下载到 ~/.fonts。这是一个示例输出:

    fc-list| grep Power
    /home/rakul/.fonts/ter-powerline-x12n.bdf: Terminess Powerline:style=Regular
    /home/rakul/.fonts/ter-powerline-x14n.pcf: Terminess Powerline:style=Regular
    /home/rakul/.fonts/ter-powerline-x12n.pcf: Terminess Powerline:style=Regular
    /home/rakul/.fonts/ter-powerline-x14b.pcf: Terminess Powerline:style=Bold
    /home/rakul/.fonts/ter-powerline-x12b.pcf: Terminess Powerline:style=Bold
    /home/rakul/.fonts/ter-powerline-x14b.bdf: Terminess Powerline:style=Bold
    /home/rakul/.fonts/ter-powerline-x12b.bdf: Terminess Powerline:style=Bold
    /usr/share/fonts/powerline-symbols/PowerlineSymbols.otf: PowerlineSymbols:style=Medium
    /home/rakul/.fonts/Inconsolata for Powerline.otf: Inconsolata for Powerline:style=Medium
/home/rakul/.fonts/ter-powerline-x14n.bdf: Terminess Powerline:style=Regular

帮助表示感谢!

更新1: 我忘了提一件事 - 字体实际上可以在 urxvt 之外工作:konsole + urxvt:hxxp://img.5cm.ru/view/i6/Kqzo.png 所以问题是 - 可以对 urxvt 做什么?

这是我的 USE 标志:

 equery u rxvt-unicode 
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for x11-terms/rxvt-unicode-9999:
 U I
 + + 256-color            : Enable 256 color support
 - + alt-font-width       : Calculate the font width using a different method
 - - blink                : Enable blinking text
 - - buffer-on-clear      : Store visible output to history buffer when clearing the screen with ctrl-l. Read https://bbs.archlinux.org/viewtopic.php?id=129302
 - - fading-colors        : Enable colors fading when off focus
 + + focused-urgency      : Enable the urgent flag when a terminal window is focused
 + + font-styles          : Enable support for bold and italic fonts
 - - iso14755             : Enable ISO-14755 support
 + + mousewheel           : Enable scrolling via mouse wheel or buttons 4 and 5
 + + perl                 : Enable perl script support. You can still disable this at runtime with -pe ""
 - - pixbuf               : Enable transparency support using gtk's pixbuf
 - - secondary-wheel      : Support for wheel scrolling on secondary screens (like mutt). Read http://lists.schmorp.de/pipermail/rxvt-unicode/2011q4/001491.html
 + + startup-notification : Enable application startup event feedback mechanism
 + + unicode3             : Use 21 instead of 16 bits to represent unicode characters
 - - vanilla              : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically
 - + wcwidth              : Enable wide char width support
 + + xft                  : Build with support for XFT font renderer (x11-libs/libXft)

更新2: 我设法使另一个符号出现:)我读到,添加 Powerline 字符支持的“现代”方法是将 PowerlineSymbols.otf 文件添加到 ~/.fonts 和 ~/.config/fontconfig/conf.d/10-电力线符号.conf

这样我就没有这个:hxxp://img.5cm.ru/view/i6/2TBR.png 看看,现在有 7 个中的 4 个。

答案1

回答我自己的问题:在gentoo中,你必须使用unicode3和vanila USE标志构建urxvt,并且不使用alt-font-width标志

2017年2月17日更新:
自从最初的问题以来,我已经更换了我的笔记本电脑,并从头开始在现代 gentoo 上进行了配置。以下是我在 urxvt 中获得我需要的电力线字符(不是全部)和国家字符以及 Inconsolata 所花费的时间。

我并不是说这是正确的做法。这个话题非常值得商榷,因为大多数终端仿真器都实施了 hack 来使这些工作开箱即用,但 urxvt 没有,指出问题在于字体,而不是仿真器。 Gentoo 向 urxvt 添加了补丁来“支持”这些字符,基本上是添加了 urxvt 作者认为不好的 hack。所以最终有不止一种方法可以做到这一点。

在普通的gentoo中,你将需要以下urxvt的使用标志:(请用你的常识来过滤与字体无关的标志,不要盲目复制我的)

[I] x11-terms/rxvt-unicode
     Available versions:  9.21^t ~9.22^t **9999^t {256-color alt-font-width blink buffer-on-clear fading-colors +focused-urgency +font-styles iso14755 +mousewheel +perl pixbuf secondary-wheel startup-notification unicode3 +vanilla wcwidth xft}

我在这里使用了原始的电力线说明:http://powerline.readthedocs.io/en/master/installation/linux.html#fonts-installation(“fontconfig”方法)。 (portage中有一个powerline ebuild,但它对我没有任何作用)

但这只给了我一半的符号,所以我还下载了一个修补字体(我使用了酱代码)作为最后的手段。我在 .Xreourses 中的字体配置如下所示:

URxvt*font:  xft:inconsolata:size=10:antialias=true,xft:DejaVu Sans:size=10:antialias=true,xft:Sauce Code Powerline:antialias=true:hinting=true:size=9

DejaVu Sans 适用于西里尔字母,如果您不需要它们,可以将其挥掉。这给了我所有的符号(修补过的 inconsolata 给出了不好的结果)。

相关内容