Como um caminho de fonte é adicionado ao urxvt ao usar .Xresources?

0

Usando xset + fp / usr / share / fonts / terminus Eu sou capaz de iniciar o urxvt com o seguinte comando e obter suporte para a fonte que eu quero (terminus):

urxvt -fn -*-terminus-*-*-*-*-*-*-*-*-*-*-*-*

No entanto, como isso é feito em .Xresources? Como faço para especificar como a fonte deve ser dimensionada em .Xresources?

Este é um sistema Gentoo.

Simplesmente tentar o seguinte não parece funcionar:

URxvt*font: xft:terminus:pixelsize=26

Pelo que entendi, o urxvt usa dois sistemas de fontes, XLFD e Fontconfig. O seguinte link link tenta explicar isso. No entanto, mesmo quando eu literalmente copio os exemplos que eles fornecem, parece não ter efeito algum sobre quais fontes o urxvt realmente usa.

Eu acredito que ele usa uma fonte padrão, que parece muito ruim no meu sistema.

Eu tentei procurar por sinalizadores de depuração e verbose para o urxvt, mas sua página de manual não lista nenhum. Um problema é que o urxvt não fornece nenhum feedback, mesmo quando inicia o urxvt a partir de outro terminal, sobre quais fontes ele tenta e onde tenta procurá-los.

Eu tentei fc-list para listar as fontes disponíveis. No entanto, não está claro para mim se isso lista as fontes que funcionarão com XLFD ou Fontconfig. No entanto, eu tentei apenas alguns aleatoriamente, mais uma vez nada acontece.

    
por AttributedTensorField 15.09.2016 / 18:41

1 resposta

3

Como observado em um comentário, se você usar .Xresources , deverá executar

xrdb -merge ~/.Xresources

depois de alterar o arquivo. Alternativamente, você pode editar ~/.Xdefaults (mas as pessoas que insistem em usar xrdb recomendam não fazer isso).

De qualquer maneira, seu padrão de recursos funciona para mim, assim como apenas isso

urxvt -fn 'xft:terminus:pixelsize=20'

(os curingas não funcionam para mim). Usando strace , posso ver quais arquivos são abertos ao procurar por "Termo" ou "termo"; você pode achar isso útil como um recurso de depuração:

execve("/usr/bin/urxvt", ["urxvt", "-fn", "xft:terminus:pixelsize=25"], [/* 61 vars */]) = 0
read(7, "#! perl\n\nuse POSIX ();\n\nmy $term"..., 8192) = 1223
access("/etc/fonts/conf.d/50-enable-terminus.conf", R_OK) = 0
stat("/etc/fonts/conf.d/50-enable-terminus.conf", {st_mode=S_IFREG|0644, st_size=254, ...}) = 0
open("/etc/fonts/conf.d/50-enable-terminus.conf", O_RDONLY) = 9
open("/users/tom/.icons/default/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/default/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/default/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/users/tom/.icons/oxy-black/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/oxy-black/cursors/xterm", O_RDONLY) = 7
open("/var/run/utmp", O_RDWR|O_CLOEXEC) = -1 EACCES (Permission denied)
read(7, "/usr/build/xterm/xterm-325f (101"..., 2048) = 34
chown("/dev/pts/3", 0, 0)               = -1 EPERM (Operation not permitted)

O arquivo com as informações da fonte é

/etc/fonts/conf.d/50-enable-terminus.conf

qual (no meu sistema) contém isso:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <selectfont>
    <acceptfont>
      <pattern>
        <patelt name="family"><string>terminus</string></patelt>
      </pattern>
    </acceptfont>
  </selectfont>
</fontconfig>

urxvt não parece para uma determinada fonte. Ele configura uma chamada para fontconfig (através da biblioteca Xft escrita por Keith Packard). Você pode ler o código-fonte para urxvt e ver como ele faz isso:

Um dos notáveis (mis) recursos do Xft com o fontconfig é a falta de relatórios de erro. Se não encontrar a fonte que você pediu , ela continuará oferecendo a fonte padrão. Usando strace , você pode pelo menos ver que o arquivo de configuração de fonte correto foi usado.

    
por 15.09.2016 / 23:35