xterm 글꼴을 변경하는 방법은 무엇입니까?

xterm 글꼴을 변경하는 방법은 무엇입니까?

.Xresources 파일을 만들고 여기에 다음 코드를 추가했습니다(코드가 많기 때문에 일부만 표시함).

XTerm*font:*-terminus-medium-r-normal-*-16-*-*-*-*-*-koi8-r 
XTerm*eightBitInput: false
XTerm*utf8: 1
XTerm*locale: 1

! Fonts ====================================================
! set font and fontsize
XTerm*faceName: DejaVu Sans Mono
XTerm*faceSize: 16

! VT Font Menu: Unreadable
xterm*faceSize1: 8
! VT font menu: Tiny
xterm*faceSize2: 10
! VT font menu: Medium
xterm*faceSize3: 12
! VT font menu: Large
xterm*faceSize4: 16
! VT font menu: Huge
xterm*faceSize5: 22


! Ensure that your locale is set up for UTF-8. If you do not use UTF-8, you may need to force xterm to more strictly follow your locale by setting
XTerm.vt100.locale: true
...
XTerm.vt100.translations: #override \n\
    Ctrl <Key> minus: smaller-vt-font() \n\
    Ctrl <Key> plus: larger-vt-font() \n\
    Ctrl <Key> 0: set-vt-font(d) \n\
    Ctrl Shift <Key>C: copy-selection(CLIPBOARD) \n\
    Ctrl Shift <Key>V: insert-selection(CLIPBOARD) \n\
    Shift <Btn1Up>: exec-formatted("xdg-open '%t'", PRIMARY) \n\
    <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0) \n\
    <Btn2Up>: insert-selection(PRIMARY)
...
*background: #002b36
*foreground: #657b83
!!*fading: 40
*fadeColor: #002b36
*cursorColor: #93a1a1
*pointerColorBackground: #586e75
*pointerColorForeground: #93a1a1
...

이 텍스트는 YouTube 동영상에서 복사했기 때문에 무슨 의미인지 잘 모르겠습니다. 그런 다음 .xinitrc에 다음 줄을 추가했습니다.

[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
exec i3

xterm은 배경색을 변경하지만(.Xresources에 지정된 대로) 글꼴은 변경되지 않으며 단축키는 작동하지 않습니다. ctrl+rmouse를 사용하여 글꼴 크기를 변경해 보았지만 옵션을 선택해도 아무 변화가 없습니다. 그러나 xterm을 시작하면

xterm-fn-끝-중간-R-정상--16-----*-koi8-r

글꼴이 변경됩니다. 내가 뭘 잘못했나요?

  • xorg, xterm, i3wm과 함께 아치를 사용합니다.

답변1

예제에서 xterm은 TrueType 글꼴을 사용합니다. xterm에는 런타임 시 VT100 위젯의 값을 설정하기 위한 (드물게 사용되는) 위젯 메소드가 있지만 여기에는 TrueType 글꼴이 포함되지 않습니다.

바라보다VTSetValues소스 코드에서:

    if (xtermLoadFont(newvt,
              xtermFontName(TScreenOf(newvt)->MenuFontName(TScreenOf(curvt)->menu_font_number)),
              True, TScreenOf(newvt)->menu_font_number)) {
        /* resizing does the redisplay, so don't ask for it here */
        refresh_needed = True;
        fonts_redone = True;
    } else if (strcmp(NonNull(DefaultFontN(curvt)), NonNull(DefaultFontN(newvt)))) {
        TScreenOf(newvt)->MenuFontName(fontMenu_default) = DefaultFontN(curvt);
    }

비트맵 글꼴(XLFD)에서 작동하지 않는 경우

  • 버그 보고서가 작성되었거나 트루타입 글꼴이 표시된 대로 사용되는 경우
  • 기능 요청이 고려될 수 있습니다.

(StackExchange도 이 토론에 적합한 장소가 아닙니다).

이 조각

XTerm*font:*-terminus-medium-r-normal-*-16-*-*-*-*-*-koi8-r 
XTerm*eightBitInput: false
XTerm*utf8: 1
XTerm*locale: 1

! Fonts ====================================================
! set font and fontsize
XTerm*faceName: DejaVu Sans Mono
XTerm*faceSize: 16

"Fonts==" 앞에 줄을 추가했다는 뜻인 것 같습니다. 하지만, 그faceName자원 범위font맨페이지에 설명된 리소스:

그렇지 않다면faceName리소스가 지정되었거나 일치하지 않습니다.트루타입xterm에서 사용되는 일반 글꼴과 굵은 글꼴XLFD (비트맵) 글꼴 및 관련 리소스.

"faceName"이 포함된 줄을 제거하면 충돌이 제거됩니다.

또는 설정할 줄을 추가할 수 있습니다.renderFont다음과 같은 자원

*renderFont: false

관련 정보