Tengo una caja Gentoo sin cabeza y me gustaría ejecutar la aplicación X en ella, pero reenviar la pantalla a un servidor Cygwin Xorg que se ejecuta en mi PC con Windows.
Funciona, pero no estoy seguro en este caso si especifico algunas fuentes para usar en la aplicación X, ¿qué fuente se usará realmente? ¿El que está en la caja de Gentoo (donde se ejecuta la aplicación X)? ¿O el instalado en mi Cygwin (donde se muestra la aplicación X)?
Por ejemplo, quiero usar una fuente DejaVu Sans Mono
en urxvt, mi ~/.Xresources
cuadro en Gentoo se ve así:
URxvt*font: xft:DejaVu Sans Mono:size=12
En el cuadro de Gentoo tengo la fuente instalada y habilitada. El siguiente es el resultado deeselect 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 *
Luego ejecute xrdb en el cuadro Gentoo para habilitar el recurso (esto me hace creer que se usará la fuente en el cuadro Gentoo):
xrdb ~/.Xresources
Cuando inicio urxvt se queja:
urxvt: no se puede cargar el conjunto de fuentes base, especifique uno válido usando -fn, cancelando.
El resultado de ambos xdb -query
y appres URxvt
es el mismo (solo las 2 líneas siguientes):
URxvt*font: xft:DejaVu Sans Mono:size=12
URxvt*scrollBar: false
Creo que la fuente está instalada sin problemas, salida de fc-list|grep "DejaVu Sans Mono"
:
/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf: DejaVu Sans Mono:style=Bold Oblique
/usr/share/fonts/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf: DejaVu Sans Mono:style=Oblique
El resultado de strace urxvt
es bastante largo, la siguiente es la parte que parece tener algo que ver con la fuente especificada en ~/.Xresources
:
poll([{fd=6, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=6, revents=POLLOUT}])
writev(6, [{"1\1\t\0\240\17\34\0", 8}, {"xft:DejaVu Sans Mono:size=12", 28}, {"", 0}], 3) = 36
poll([{fd=6, events=POLLIN}], 1, -1) = 1 ([{fd=6, revents=POLLIN}])
recv(6, "\1\0=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0) = 32
recv(6, 0x817b310, 4096, 0) = -1 EAGAIN (Resource temporarily unavailable)
recv(6, 0x817b310, 4096, 0) = -1 EAGAIN (Resource temporarily unavailable)
write(1, "urxvt: ", 7urxvt: ) = 7
write(1, "unable to load base fontset, ple"..., 77unable to load base fontset, please specify a valid one using -fn, aborting.
) = 77
Respuesta1
La interfaz tradicional X11 para mostrar fuentes hace que el cliente envíe un mensaje al servidor X que dice, de hecho, "mostrar esta cadena en esta fuente". Entonces la fuente vive en el servidor X. Los servidores X cargan fuentes localmente o desde unServidor de fuentes X(como xfs). Los servidores de fuentes son principalmente útiles para pantallas con poco o ningún espacio en disco; esto se ha convertido en un caso de uso especializado. Rxvt utiliza la interfaz tradicional si especifica una cadena de fuente X11 (con prefijo x:
o sin prefijo).
La interfaz tradicional X11 se limita a fuentes de mapa de bits. Los sistemas modernos tienden a utilizar métodos que representan texto en el lado del cliente y envían el mapa de bits resultante al servidor. Cuando usas el prefijo xft:
, URxvt usa elxftinterfaz de representación de fuentes. La renderización se realiza en el lado del cliente, a partir de fuentes cargadas en la máquina del cliente.
Ejecute xrdb -query
para comprobar qué recursos están cargados. Ejecute appres URxvt
y appres urxvt
para ver qué recursos se aplican (los recursos de la instancia urxvt
tienen prioridad sobre los recursos de la clase URxvt
). Una cosa que puede explicar que su configuración de fuente no se use es si alguna otra configuración (quizás para URxvt.font
o urxvt*font
) anula la suya.
Es posible que su URxvt haya sido compilado sin soporte Xft (es una opción en tiempo de compilación). Ejecute urxvt --help 2>&1 | grep buffered:
para ver si el buffered
recurso aparece en la lista; solo está presente cuando hay soporte Xft. Sin soporte Xft, urxvt interpreta el valor del fn
recurso como una cadena de fuente X, lo cual no es válido.
Respuesta2
Resolví el problema instalando el paquete xorg-xfd. Leí la respuesta publicada por Gilles y decidí enumerar mis paquetes. libxft se instaló pero no funciona cuando compilé el paquete rxvt-unicode. Entonces, enumeré las dependencias opcionales utilizadas por Xorg asignadas a Xft. El Xfd es responsable de mostrar todas las fuentes usando el protocolo central X11 O usando libxft.