1

У меня есть безголовый ящик Gentoo, и я хотел бы запустить на нем приложение X, но перенаправить дисплей на сервер Cygwin Xorg, работающий на моем ПК с Windows.

Это работает, но я не уверен в этом случае, если я укажу некоторые шрифты для использования в приложении X, какой шрифт будет фактически использоваться? тот, что на коробке Gentoo (где работает приложение X)? или тот, который установлен в моем Cygwin (где отображается приложение X)?

Например, я хочу использовать шрифт DejaVu Sans Mono в urxvt, мой ~/.Внешние источники на коробке Gentoo выглядят так:

URxvt*font: xft:DejaVu Sans Mono:size=12

На коробке Gentoo у меня установлен и включен шрифт. Ниже приведен вывод eselect fontconfig list

  [1]   10-autohint.conf
  [2]   10-no-sub-pixel.conf
  [3]   10-scale-bitmap-fonts.conf *
  [4]   10-sub-pixel-bgr.conf
  [5]   10-sub-pixel-rgb.conf
  [6]   10-sub-pixel-vbgr.conf
  [7]   10-sub-pixel-vrgb.conf
  [8]   10-unhinted.conf
  [9]   11-lcdfilter-default.conf
  [10]  11-lcdfilter-legacy.conf
  [11]  11-lcdfilter-light.conf
  [12]  20-unhint-small-dejavu-sans.conf
  [13]  20-unhint-small-dejavu-sans-mono.conf
  [14]  20-unhint-small-dejavu-serif.conf
  [15]  20-unhint-small-vera.conf *
  [16]  25-unhint-nonlatin.conf
  [17]  30-metric-aliases.conf *
  [18]  30-urw-aliases.conf *
  [19]  40-nonlatin.conf *
  [20]  45-latin.conf *
  [21]  49-sansserif.conf *
  [22]  50-user.conf *
  [23]  51-local.conf *
  [24]  57-dejavu-sans.conf
  [25]  57-dejavu-sans-mono.conf *

Затем запустите xrdb в окне Gentoo, чтобы активировать ресурс (я уверен, что будет использован шрифт в окне Gentoo):

xrdb ~/.Xresources

Когда я запускаю urxvt, он жалуется:

urxvt: невозможно загрузить базовый набор шрифтов, укажите правильный, используя -fn, прерывание.

ОБНОВЛЕНИЕ Как указало grawity, оказалось, что мой urxvt был собран без поддержки xft. Это решено после того, как я добавляю xft к общесистемному USE . Большое спасибо!

1 ответ1

3

Это работает, но я не уверен в этом случае, если я укажу некоторые шрифты для использования в приложении X, какой шрифт будет фактически использоваться? тот, что на коробке Gentoo (где работает приложение X)? или тот, который установлен в моем Cygwin (где отображается приложение X)?

И то и другое.

Хотя я не уверен в точных правилах, когда используются шрифты, основы таковы:

  • Если программа использует XLFD для выбора шрифтов, то обычно она позволяет серверу X11 (т.е. Xorg, Xwin.exe или тому подобное) рисовать их. Они должны быть установлены на сервере; Вы можете использовать xset q для запроса текущего "пути шрифта" сервера.

  • Однако современные программы визуализируют шрифты на стороне клиента, используя FreeType + {Xft, cairo, Qt} [+ {Pango, HarfBuzz}]. В этом случае шрифты должны быть установлены на клиенте, и Fontconfig используется для их поиска.

В вашем случае использование xft: in urxvt означает, что будут использоваться клиентские (Gentoo) шрифты. (Xwin Cygwin - сервер, urxvt на Gentoo - клиент, согласно обычной терминологии X.)

Однако обычно urxvt не отображает никаких ошибок, когда указан неизвестный шрифт xft: . Таким образом , у меня есть предположение , что ваш urxvt фактически построен без поддержки Xft вообще. Запустите ldd /usr/bin/urxvt и проверьте, связан ли он с libfreetype и libXft .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .