За последние пару лет я использовал urxvt на разных машинах. На прошлой неделе я получил новый компьютер и занялся настройкой системы.

Однако во время этих изменений конфигурации я заметил проблему, которая по какой-то причине никогда не проявлялась раньше. А именно, моя URxvt*letterSpace похоже, обрезает рендеринг определенных символов Юникода .

наглядный пример проблемы

Как вы можете видеть на изображении выше, "x" в конце моей командной строки обрезается, если я установил слишком низкое значение letterSpace. Показанные подсказки с letterSpace установлены в -2 и 0 соответственно. Из того, что я понимаю, это потому, что некоторые глифы слишком широки, чтобы отображать (я довольно туманный на деталях здесь). Тем не менее, я чувствую, что это не должно быть так - я измерил фактическое количество картинок, которые занимает глиф, и кажется, что он не больше, чем, например, буква "m". Кроме того, когда я захожу в мою машину с помощью iterm2 (у меня также есть mac) с тем же шрифтом, глиф отображается очень хорошо.

Я хотел бы знать, есть ли способ решить эту проблему без изменения моего шрифта или настроек letterSpace *. Я знаю, что я мог бы потенциально (?) исправить это с помощью другого шрифта, но я вполне доволен тем, как выглядит urxvt в настоящее время. Возможно, мне не хватает какой-то настройки, из-за которой это происходит? Я выложу соответствующие части моего.Xresources ниже, а также информация о моей системе. Спасибо!

*(скорее, я в порядке с изменением шрифта / letterSpace, пока конечный результат выглядит так, как у меня сейчас)


,Xresources

URxvt.scrollBar: false
URxvt.secondaryScreen: true
URxvt*iso14755: False

URxvt*font: xft:Source Code Pro for Powerline-11
URxvt*boldFont: xft:Source Code Pro for Powerline-11:style=Bold
URxvt*italicFont: xft:Source Code Pro for Powerline-11:syle=Italic
URxvt*bolditalicFont: xft:Source Code Pro for Powerline-11:style=Bold Italic
URxvt.cursorBlink: true
URxvt*letterSpace: -2

Xft.hinting: true
Xft.hintstyle: hintslight
Xft.antialias: rgba
Xft.rgba: rgb

URxvt.depth: 32
! Need to hardcode to enable transparency
URxvt.background: [90]#002b36
! Enables correct coloring of bolded characters
URxvt.intensityStyles: false
URxvt*skipBuiltinGlyphs: true

Системная информация

Запуск Ubuntu 16.04.2 с XFCE и XMonad

rxvt-unicode (urxvt) v9.21 - released: 2014-12-31
options: perl,xft,styles,combining,blink,iso14755,unicode3,encodings=eu+vn+jp+jp-ext+kr+zh+zh-ext,fade,transparent,tint,pixbuf,XIM,frills,selectionscrolling,wheel,slipwheel,smart-resize,cursorBlink,pointerBlank,scrollbars=plain+rxvt+NeXT+xterm

1 ответ1

0

После некоторых исследований я считаю, что единственный способ исправить это - на самом деле исправить urxvt. Для тех, кто работает в Arch, есть несколько исправленных версий, которые можно легко установить с помощью менеджера системных пакетов (например, этой). Для остальных из нас, безусловно, должна быть возможность создать исправленную версию urxvt вручную, но на самом деле я этого не делал, и поэтому не могу предложить никаких рекомендаций.

Чтобы решить мою проблему, я просто заменил проблемные глифы в моей строке состояния строки приглашения и vim на те, которые действительно отображаются правильно в моем желаемом letterSpacing. Это не лучшее решение, но я предпочел, чтобы оно имело дело с компиляцией моей собственной пропатченной версии urxvt.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .