글꼴을 추가하는 쉬운 방법이 있습니까?

글꼴을 추가하는 쉬운 방법이 있습니까?

제가 사랑하는 5년 이상의 Gentoo 설치를 하드웨어 오류로 잃은 후 저는 FreeBSD로 전환했습니다. 나는 이것이 소스 기반 운영 체제를 탐색하고 사용하는 데 있어 다음 논리적 단계라고 느꼈습니다. 다 읽으면서FreeBSD 관련 문서, XOrg 서버를 설치하는 동안5.6 - XOrg 섹션에서 글꼴 사용내 주목을 끌었다. 나는 다음 줄을 추가하지 않았다는 것을 깨달았습니다.

Section "Files"
   FontPath  "/usr/share/fonts/...."
EndSection

내 젠투 설치에 있는 모든 글꼴에 대해 이제 내 DE가 왜 쓰레기처럼 보였는지 이해합니다. 장애가 있는 한 손으로 타이피스트를 사용하면 손으로 편집하기가 더 어려워지며 Files Section최후의 수단으로 글꼴을 직접 추가하는 것을 선호합니다. 따라서 누군가가 만든 도구 중 내가 아직 찾지 못한 도구나 여기 독자들이 잘 만드는 멋진 쉘 스크립트 등을 사용하여 fc-list : file파일 섹션에 출력을 추가할 수 있는 방법이 있습니까?xorg.conf

메모nvidia-xconfig: 파일을 생성하는데 사용하기 xorg.conf때문에 요즘 권장되는 모듈식 접근 방식과는 거리가 멀습니다. 필요한 경우 conf.d 접근 방식을 생성된 구성과 혼합하여 일치시킬 수 있습니까?

답변1

제가 질문을 이해하고 있고 시스템에 vim이 설치되어 있는 경우(이것은 명령 vi일 뿐이므로 이것도 함께 작동할 수 있습니다 ex)
터미널에서 아래 명령을 실행하면 다음과 같습니다.

  • 파일 읽기: xorg.conf- 분명히 이것을 수정하려는 파일로 바꾸십시오. 참고: 이 파일 xorg.conf~ 아니다스크립트에 문제가 있을 경우를 대비해 수정하세요.
  • 텍스트 조작을 좀 해라
  • 명령의 출력은 파일에 저장됩니다./tmp/temp_xorg.conf

/tmp/temp_xorg.conf이러한 작업 후에 실제 작업 xorg 구성 파일 위치에 복사할 수 있는 상태에 만족한다면 .


명령을 실행하다

xorg conf 파일에 들어갈 수 있는 형식의 글꼴 경로 디렉토리를 생성하려면 쉘 프롬프트에서 이것을 실행하십시오(이 명령에 대해 @meuh에게 감사드립니다).

fc-list : file | sed -E 's#(.*)/.*#\tFontPath "\1"#' | sort -u > /tmp/filepaths.txt

그런 다음 위 명령의 출력을 가져와 "파일" 섹션에 삽입하는 이 명령을 실행합니다.

$ vim -e xorg.conf << 'EOF' 
" move cursor to the line with the text: `Section "Files"`
/Section "Files"
" read in the output of `fc-list` at this point
r !fc-list
write /tmp/temp_xorg.conf
EOF

예를 들어 xorg.conf다음과 같다면:

Section "InputClass"
    Identifier  "trackpoint catchall"
    MatchIsPointer  "true"
    MatchProduct    "TrackPoint|DualPoint Stick"
    MatchDevicePath "/dev/input/event*"
    Option  "Emulate3Buttons"   "true"
    Option  "EmulateWheel"  "true"
    Option  "EmulateWheelButton"    "2"
    Option  "XAxisMapping"  "6 7"
    Option  "YAxisMapping"  "4 5"
EndSection

Section "Files"
    Identifier  "trackpoint catchall"
    MatchIsPointer  "true"
    MatchProduct    "TrackPoint|DualPoint Stick"
    MatchDevicePath "/dev/input/event*"
    Option  "Emulate3Buttons"   "true"
    Option  "EmulateWheel"  "true"
    Option  "EmulateWheelButton"    "2"
    Option  "XAxisMapping"  "6 7"
    Option  "YAxisMapping"  "4 5"
EndSection


Section "InputClass"
    Identifier  "trackpoint catchall"
    MatchIsPointer  "true"
    MatchProduct    "TrackPoint|DualPoint Stick"
    MatchDevicePath "/dev/input/event*"
    Option  "Emulate3Buttons"   "true"
    Option  "EmulateWheel"  "true"
    Option  "EmulateWheelButton"    "2"
    Option  "XAxisMapping"  "6 7"
    Option  "YAxisMapping"  "4 5"
EndSection

위 명령을 실행한 후 /tmp/temp_xorg.conf다음과 같아야 합니다.

Section "InputClass"
    Identifier  "trackpoint catchall"
    MatchIsPointer  "true"
    MatchProduct    "TrackPoint|DualPoint Stick"
    MatchDevicePath "/dev/input/event*"
    Option  "Emulate3Buttons"   "true"
    Option  "EmulateWheel"  "true"
    Option  "EmulateWheelButton"    "2"
    Option  "XAxisMapping"  "6 7"
    Option  "YAxisMapping"  "4 5"
EndSection

Section "Files"
    FontPath "/home/ubuntu/.fonts"
    FontPath "/usr/share/fonts/opentype/noto"
    FontPath "/usr/share/fonts/opentype/stix"
    FontPath "/usr/share/fonts/opentype/stix-word"
    FontPath "/usr/share/fonts/truetype"
    FontPath "/usr/share/fonts/truetype/abyssinica"
    FontPath "/usr/share/fonts/truetype/ancient-scripts"
    FontPath "/usr/share/fonts/truetype/dejavu"
    FontPath "/usr/share/fonts/truetype/fonts-guru-extra"
    FontPath "/usr/share/fonts/truetype/freefont"
    FontPath "/usr/share/fonts/truetype/kacst"
    FontPath "/usr/share/fonts/truetype/kacst-one"
    FontPath "/usr/share/fonts/truetype/lao"
    FontPath "/usr/share/fonts/truetype/lato"
    FontPath "/usr/share/fonts/truetype/liberation"
    FontPath "/usr/share/fonts/truetype/lohit-punjabi"
    FontPath "/usr/share/fonts/truetype/nanum"
    FontPath "/usr/share/fonts/truetype/openoffice"
    FontPath "/usr/share/fonts/truetype/padauk"
    FontPath "/usr/share/fonts/truetype/sinhala"
    FontPath "/usr/share/fonts/truetype/takao-gothic"
    FontPath "/usr/share/fonts/truetype/tibetan-machine"
    FontPath "/usr/share/fonts/truetype/tlwg"
    FontPath "/usr/share/fonts/truetype/ttf-khmeros-core"
    FontPath "/usr/share/fonts/truetype/ubuntu-font-family"
    FontPath "/usr/share/fonts/type1/gsfonts"
    FontPath "/usr/share/fonts/X11/Type1"
    Identifier  "trackpoint catchall"
    MatchIsPointer  "true"
    MatchProduct    "TrackPoint|DualPoint Stick"
    MatchDevicePath "/dev/input/event*"
    Option  "Emulate3Buttons"   "true"
    Option  "EmulateWheel"  "true"
    Option  "EmulateWheelButton"    "2"
    Option  "XAxisMapping"  "6 7"
    Option  "YAxisMapping"  "4 5"
EndSection


Section "InputClass"
    Identifier  "trackpoint catchall"
    MatchIsPointer  "true"
    MatchProduct    "TrackPoint|DualPoint Stick"
    MatchDevicePath "/dev/input/event*"
    Option  "Emulate3Buttons"   "true"
    Option  "EmulateWheel"  "true"
    Option  "EmulateWheelButton"    "2"
    Option  "XAxisMapping"  "6 7"
    Option  "YAxisMapping"  "4 5"
EndSection

답변2

질문의 구성 "믹스 앤 매치" 부분에 대한 대답은 "종류"입니다.

매뉴얼 xorg.conf페이지에는 구성 소스가 우선 순위에 따라 나열되어 있으며 "동일한 정보가 여러 가지 방법으로 제공되는 경우 우선 순위가 가장 높은 메커니즘이 사용됩니다"라고 명시되어 있습니다.

관찰에 따르면(내 생각에는 "동일한 정보"와 "한 가지 이상의 방법"이 매뉴얼 페이지에 명확하게 정의되어 있지 않기 때문에 글꼴과 xorg.conf같은 ) 섹션을 파일 로 재정의/업데이트할 수 없다는 의미입니다. 우선순위가 낮습니다. 우선순위가 낮은 파일을 읽고 구문 분석하더라도 이미 높은 우선순위에 존재하는 섹션에 대한 섹션 내용은 자동으로 무시됩니다.Section "Files"xorg.conf.d

현재 Nvidia 드라이버(396, Linux에만 해당)하다이제 조각을 사용 하지만 Linux DRM Xorg 드라이버의 경우에만 설치 중에 xorg.conf.d거의 단일체에 가까운 드라이버를 생성합니다 .xorg.conf

다행스럽게도 nvidia-xconfig이 섹션은 변경되지 않으므로 도움이 된다면 주석을 달고 하나 이상의 파일 xorg.conf로 마이그레이션 할 수 있습니다. xorg.conf.d동일한 우선순위의 여러 중복 섹션(즉, 모두 단일 xorg.conf.d디렉토리 내에 있음)하다원하는 대로 값이 병합됩니다.

지시문을 생성하는 쉬운 방법은 다음과 같습니다.

fc-list -f 'Fontpath "%{file|dirname}"\n' : | sort -u

이는 형식화된 출력( -f) 을 사용하여 fc-list필요한 구성 라인을 생성합니다. %{file}각 글꼴의 파일 이름 |dirname필터이는 디렉터리 이름(정확히 dirname쉘 명령과 유사)을 출력한 다음 sort -u고유한 경로를 출력합니다. 글꼴이 많은 경우 경로 순서를 변경할 수 있습니다. 비트맵 버전이 있는 경우 다음과 같이 순서를 변경할 수 있습니다.

fc-list -f '    Fontpath "%{file|dirname}"\n' :scalable=true | sort -u
fc-list -f '    Fontpath "%{file|dirname}"\n' :scalable=false | sort -u

필요에 따라 해당 출력을 붙여넣을 수 있습니다. 또는 모든 단계의 예로(루트로)

# extract Files section from xorg.conf to a separate conf
sed -n '/^Section..Files/,/^EndSection/p' \
  < /etc/X11/xorg.conf > /etc/x11/xorg.conf.d/10-section-files.conf
# comment out Files section in xorg.conf
sed -i.bak '/^Section..Files/,/^EndSection/ s/^/#/' /etc/X11/xorg.conf

# paths for scalable fonts
( echo 'Section "Files"'; 
  fc-list -f '    Fontpath "%{file|dirname}"\n' :scalable=true | sort -u;
  echo 'EndSection' ) > /etc/X11/xorg.conf.d/20-fontpath.conf

# paths for non-scalable fonts
( echo 'Section "Files"'; 
  fc-list -f '    Fontpath "%{file|dirname}"\n' :scalable=False | sort -u;
  echo 'EndSection' ) > /etc/X11/xorg.conf.d/30-fontpath-fixed.conf

필요한 경우 중복 항목을 다시 정렬하고 제거한 후 X를 다시 시작하세요.

완전성을 위해 다음과 같이 즉시 글꼴 경로를 수정할 수도 있습니다 xset.

xset +fp /usr/local/share/fonts/TTF

를 사용하여 현재 경로를 확인합니다 xset q. 이를 간단하게 수정하여 스크립트에 이러한 명령을 추가하면 .xinitrc글꼴 경로가 후속 X 구성 변경과 관계없이 유지되고 X 다시 시작도 저장할 수 있습니다.

관련 정보