그래서 저는 현재 manjaro linux를 사용하고 있고 urxvt를 터미널로 사용하고 있는데 정말 마음에 듭니다. 이 모든 일이 시작되기 전에 터미널 전환은 선택 사항이 아니었습니다. 무례하게 굴었다면 죄송합니다.
zsh를 기본 셸로 설치하고 oh-my-zsh를 통해 robbyrussell 테마를 추가했습니다. 처음에는 모든 것이 괜찮았고 모든 것이 잘 작동했지만 업데이트한 후 아이콘이 깨졌습니다. 특히(해당 테마에 익숙한 경우) 화살표 아이콘은 깨져 있으며 다른 모든 테마의 모든 아이콘과 동일합니다.
이 문제는 다른 터미널(예: sterminal)을 사용하려고 할 때 테마가 제대로 작동하기 때문에 urxvt에서만 발생합니다.
여기에서 일부 스크린샷을 볼 수 있습니다. 다음과 같이 표시됩니다(터미널에서 찍은 스크린샷).
다음과 같습니다(rxvt의 스크린샷).
나는 reddit, github 리포지토리(oh-my-zsh 및 robbyrussell 공식 리포지토리 등)에서 도움을 찾고 있었지만 아무도 나를 도와주지 않는 것 같아서 여러분이 나에게 도움을 줄 수 있기를 정말로 바랍니다.
내 운영 체제 및 터미널에 대한 정보는 다음과 같습니다.
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의 기본 Xresources를 사용하고 있습니다.여기. 더 많은 정보가 필요하면 알려주시기 바랍니다. 어떤 도움이라도 대단히 감사하겠습니다!
답변1
첫째, 터미널 유형 rxvt와 unicode-rxvt(흔히 urxvt로 축약됨) 사이에는 상당한 차이가 있습니다. 사용 중인 터미널이 "URXVT 버전 9.22"라고 표시했으므로 혼동을 피하기 위해 rxvt가 아닌 urxvt라는 올바른 이름을 사용하십시오.
Mikel이 지적했듯이 Xresources 파일은 urxvt에게 (a) 레거시 X11 서버에서 제공하는 글꼴 방법과 (b) 기능이 제한된 비트맵 글꼴인 9x15 글꼴을 사용하도록 지시합니다.
oh-my-zsh Github README 파일 설명
많은 테마를 올바르게 렌더링하려면 Powerline 글꼴을 설치해야 합니다.
따라서 올바른 화살표 모양을 표시하기 위해서는 터미널에서 적절한 글꼴을 사용하도록 해야 합니다. 어쩌면 해당 기능을 중단한 업데이트가 urxvt를 통해 글꼴 사용을 재설정한 업데이트였을 수도 있습니다.
프롬프트를 올바르게 표시하기 위해 sterminal을 선언하는 경우 사용 중인 글꼴을 확인한 다음 urxvt -font "font_name" 수동 테스트에서 작동하는지 확인한 후 해당 글꼴을 사용하도록 ${HOME} 디렉터리의 .Xresources를 변경하세요. (Xft에서 제공하는 최신 글꼴 방법의 경우, 글꼴 이름 앞에는 "xft:"가 오고 뒤에는 글꼴 크기를 나타내는 ":size=12"가 옵니다.)
내 urxvt를 확인한 후 꽤 많은 잘 알려진 트루타입 및 오픈타입 모노스페이스 글꼴이 "오른쪽 화살표" 문자 모양을 제공하지 않고 대신 빈 상자만 표시하는 것 같습니다. 그러나 Deja Vu Sans Mono는 쉽게 사용할 수 있는 표준 글꼴입니다(시스템에 설치해야 함).
그러니 urxvt를 시작해 보세요
urxvt -font "xft:Deja Vu Sans Mono:size=12" &
프롬프트가 올바르게 표시되는지 확인하세요.
보세요https://bbs.archlinux.org/viewtopic.php?id=173477Xresources/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를 사용하여 Xorg 서버 리소스 데이터베이스에 로드 (또한 l 문자가 말려 있고 0 문자가 중앙에 점이 있는 이 글꼴의 특징에 주목해야 합니다.)
일반적으로 urxvt "Luxi Mono"(읽기 더 쉬운 IMHO)에서 사용하는 글꼴은 "Font Manager" 프로그램에 "Luxi Mono"에 문자 모양이 있다고 표시되어 있음에도 불구하고 오른쪽 화살표를 올바르게 표시하지 않습니다. 마찬가지로 xterm이 손상되었지만 lxterminal, mate-terminal 및 xfce4-terminal(기본 설정에서 글꼴이 Luxi Mono로 설정되어 있는지 확인)에서 테스트하면 모두 오른쪽 화살표가 올바르게 표시됩니다. 따라서 유사하게 작동하는 다른 글꼴이 일부 공통 코드(예: libvte)를 공유하는 것처럼 urxvt 및 xterm의 일부 글꼴에 문제가 있는 것 같습니다(제가 올바르게 이해했다면 일부 코드 출처를 공유함).
답변2
또한 Manjaro Linux(18.0.4 Illyria) 및 URXVT 버전 9.22의 i3wm Community Edition을 사용하고 있습니다. Oh My Zsh를 설치하는 것과 똑같은 문제가 발생했습니다.
JG Miller의 포괄적이고 유용한 조언에 따라 ~/.Xresources 파일을 제안된 대로 편집했고 효과가 있었습니다. 훌륭한!
Manjaro의 사전 설치된 파일 관리자인 레인저(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에게 감사드립니다.