Предотвратить urxvt letterSpace от взлома некоторых символов Unicode

787
Cameron Sun

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

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

visual example of problem

Как вы можете видеть на изображении выше, «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 
0

1 ответ на вопрос

0
Cameron Sun

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

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

Похожие вопросы