Existe um comando como xwininfo, xdpyinfo, xprop ou xlsclient que me dirá qual fonte uma janela de cliente X está usando?

6

Estou tentando encontrar um comando que informe qual fonte uma determinada janela X está configurada para usar. Existe tal comando?

Olhando através destas ferramentas, não vi uma opção que me desse isto:

  • xwininfo
  • xdpyinfo
  • xprop
  • xlsclient

Olhando pela saída de lsof , vejo arquivos de fontes que parecem estar em uso, mas não está claro quais, na verdade, estão sendo usadas por uma determinada janela.

Exemplo

$ lsof |grep gnome-ter|grep font | head -8
gnome-ter  3282      saml  mem       REG              253,0    223040    1180775 /usr/lib64/libfontconfig.so.1.4.4
gnome-ter  3282      saml  mem       REG              253,0   3656228    1588238 /usr/share/fonts/un-core/UnDotum.ttf
gnome-ter  3282      saml  mem       REG              253,0    585272     266781 /usr/share/fonts/gnu-free/FreeSans.ttf
gnome-ter  3282      saml  mem       REG              253,0    323284    1447753 /usr/share/fonts/dejavu/DejaVuSansMono.ttf
gnome-ter  3282      saml  mem       REG              253,0    190240    1588229 /usr/share/fonts/paktype-naqsh/PakType_Naqsh.ttf
gnome-ter  3282      saml  mem       REG              253,0    683528    1447770 /usr/share/fonts/dejavu/DejaVuSans.ttf
gnome-ter  3282      saml  mem       REG              253,2     42144   10488291 /home/saml/.fonts/ProggyCleanSZBP.ttf
gnome-ter  3282      saml  mem       REG              253,0     15504    1966923 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-le64.cache-3

Para ser claro, não estou interessado nesta solução, intitulada: Como verificar qual fonte o sistema usa? :

$ gconftool-2 --get /apps/gnome-terminal/global/profile_list
[Default,Profile0]

$ gconftool-2 --get /apps/gnome-terminal/profiles/Default/font
Monospace 12
$ gconftool-2 --get /apps/gnome-terminal/profiles/Profile0/font
TakaoMincho Bold 36

Eu quero determinar essa informação via X, se possível.

Referências

por slm 21.10.2013 / 15:34

1 resposta

5

A maioria dos aplicativos modernos, incluindo todos os aplicativos Gtk (→ GNOME) e Qt (→ KDE), usam xft , que realiza a renderização do lado do cliente e envia uma imagem para o servidor. (Possivelmente por meio da extensão XRender , mas é uma imagem enviada para renderização, não texto). Portanto, para esses aplicativos, o servidor X não tem noção de fontes. Você não pode fazer nada melhor do que verificar se o aplicativo tem (ou não) o arquivo de fonte aberto.

Mesmo para aplicativos antiquados que usam fontes do lado do servidor, não acho que haja uma maneira no Xlib de consultar quais fontes outro cliente está usando.

    
por 21.10.2013 / 18:31