Предотвратить urxvt letterSpace от взлома некоторых символов Unicode
787
Cameron Sun
За последние пару лет я использовал 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
После некоторых исследований я считаю, что единственный способ исправить это - на самом деле исправить urxvt. Для тех, кто работает в Arch, есть несколько исправленных версий, которые можно легко установить с помощью менеджера системных пакетов (например, этой ). Для остальных из нас, безусловно, должна быть возможность создать исправленную версию urxvt вручную, но на самом деле я этого не делал, и поэтому не могу предложить никаких рекомендаций.
Чтобы решить мою проблему, я просто заменил проблемные глифы в моей строке состояния строки приглашения и vim на те, которые действительно отображаются правильно в моем желаемом letterSpacing. Это не лучшее решение, но я предпочел, чтобы оно имело дело с компиляцией моей собственной пропатченной версии urxvt.