Fontes maiores “xterm” em telas HIDPI

15

Depois de vários anos usando alegremente diferentes emuladores de terminal como Konsole , Gnome-TERMINAL e, recentemente, XFCE Terminal em seus ambientes de desktop apropriados, decidi usar o bom e velho xterm com suas fontes de bitmap . Funciona muito bem, suporta Unicode e a família de fontes fixas padrão contém caracteres de quase todos os idiomas, o que é ótimo.

Mas me deparei com um problema importante. As fontes são realmente pequenas. Mesmo o chamado tamanho enorme (que é uma fonte de bitmap de 10x20) é muito pequeno para mim e inutilizável.

Minha configuração padrão para o ambiente XFCE está definida para 120 dpi, mas xpdyinforeporta DPI 97x97

$ xdpyinfo |grep resolution
  resolution:    97x97 dots per inch

Então, tentei alterar o DPI com xrandr, mas não ajudou.

$ xrandr --dpi 120

O resultado parece ser aplicado

$ xdpyinfo | grep resolution
  resolution:    120x120 dots per inch

mas isso não altera a resolução xterm. Eu até tentei usar o dimensionamento, mas isso afetou todo o X, em vez de um único aplicativo:

$ xrandr --output LVDS1 --scale 0.5x0.5

Existem soluções alternativas para Qt e Gtk , mas que sobre Xlibaplicações baseadas em gosto Xterm, Xcalc, Xman, Xfige, etc? Devemos vê-los desaparecer à medida que o DPI aumenta? Por favor, ajude se você tiver alguma solução alternativa.


Foi o que fiz, que funcionou de alguma forma, mas não consegui usar a "família de fontes fixas" original, portanto agora pode funcionar apenas em alguns idiomas.


PS1: instalei fontes de 100 DPI para o X, mas não consegui usá-las

$ sudo apt-get install xfonts-100dpi

PS2: Fontforgeque também usa Xlib, usa um bom tema e tamanhos de fonte normais. Eu não sei como isso faz.

PS3: Estou testando otf2bdfe bdftopcfutilitários para criar PCFfontes experimentais de bitmap para HIDPI a partir de TTF/OTFfontes vetoriais .

PS4: Depois de instalar fontes 100DPI, isso foi bom, embora não tenha um ótimo suporte ao idioma da fixedfonte padrão .

$ xterm -font -Adobe-Courier-Bold-r-Normal-*-34-*-100-100-*-*-*-*

Eu já usei fontsel. É realmente útil.

PS5: isso também é útil.

PS6: Consegui criar a fonte de bitmap 120DPI do Courier New com 20pt

$ otf2bdf -p 20 -r 120 cour.ttf > cour.bdf
$ bdftopcf cour.bdf | gzip - > cour.pcf.gz
$ sudo cp cour.pcf.gz /usr/share/fonts/X11/misc/
$ fc-cache
$ xterm -font -*-*-*-*-*-*-*-*-120-120-*-*-*-*

PS7: 75 DPI é codificado na fonte BDF. Talvez mudar isso ajude.

PS8: vncdesk é uma boa ferramenta para escalar uma única janela .

Ho1
fonte
Xft.dpi: 120in ~/.Xresourcesnão funciona?
ILMostro_7 31/07
xrdb -query | grep dpijá relata:Xft.dpi: 120
Ho1 31/07/2015
Você criou um ~/.Xresourcesarquivo ou ~/.Xdefaults, ou é apropriado em seu sistema? O link que você apontou que disse ser útil não é um conjunto abrangente de opções disponíveis para o xterm. Por exemplo,, Xft.lcdfilter: lcddefault Xft.antialias: true Xft.hinting: true Xft.hintstyle: hintslighte muito mais.
ILMostro_7
1
@ MartinSchröder Sim, na verdade eu testei minhas próprias fontes de 120 dpi geradas a partir da fonte truetype Courier New . Mas isso não tem todos os idiomas que a "família de fontes de bitmap fixa" suporta, então estou procurando uma maneira melhor de fazer isso. Atualmente no meu systme, / etc / X11 / app-defaults / XTerm, como padrão, o VT100.font6 (Enorme) está definido como fonte 10x20 da família de fontes Fixed, que é bastante pequena na minha tela. Eu ficaria feliz se tivéssemos en.wikipedia.org/wiki/Fixed_%28typeface%29 por 20x40, mas não temos.
• Ho1
1
Você precisa usar fontes de bitmap? xtermtambém suporta fontes truetype. xterm -fa 'DejaVu Sans Mono' -fs 40(embora não alternar entre fontes quando glifos não estão disponíveis como alguns outros emuladores de terminais fazem)
Stéphane Chazelas

Respostas:

10

Você mesmo sugeriu a resposta consultando https://en.wikipedia.org/wiki/Fixed_(typeface)

Essa é a fonte de bitmap fixo padrão que foi expandida por Markus Kuhn para ter um conjunto de caracteres bastante completo. A questão é como escalar um bitmap .

O que você conseguiu até agora é dimensionar uma fonte de vetor e convertê-la em um bitmap (ttf → bdf → pcf) . Essa é uma boa estratégia, mas como você mencionou, falta algum suporte ao idioma. Isso parece estranho, pois Courier New é uma das fontes completas mais unicode, mas eu discordo! Talvez tente usar o Mono, que é um clone.

I no entanto não entendo por que você está fazendo isso como xterm faz suporte TrueType .

Modifique ~/.Xresourcescomo este:

XTerm*renderFont: true
XTerm*faceName: VeraMono
XTerm*faceSize: 10

Mas voltando à tarefa: você deseja um bitmap maior fonte de .

O maior bitmap disponível disponível é:

10x20   -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1

Markus tem sido tão gentil que fornece os arquivos BDF de origem. Se sua distribuição não possui as atualizações mais recentes (de abril de 2009), você pode pegar o pacote diretamente dele.

O pacote de fontes "-misc-fixed- *":

http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz

Em vez de converter entre pcf e bdf, você pode / deve se ater ao formato de origem. Você pode usar um editor de fontes BDF para redimensionar a fonte. Não espere antialiasing ou truques desse tipo - mas pelo menos você pode obter um tamanho legível.

Ou você pode usar o bdfresize de Hiroto Kagotani (também encontrado em alguns sistemas de pacotes).

ATUALIZAR:

Não sei como escalar apenas uma janela (nunca tive a necessidade). Você pode acompanhar isso pergunta do superusuário. Quando tive a necessidade, dimensionei todo o ambiente.

Você pode fazer o downgrade de um monitor de 3200x1800 para 1920x1080 usando:

xrandr --dpi 141
xrandr --output eDP1 --scale 0.6x0.6

Outros truques para dimensionar a tela em diferentes gerenciadores de janelas podem ser encontrados aqui . Eles sugerem o uso do VNC:

Uma abordagem é executar o aplicativo em tela cheia e sem decoração em seu próprio desktop VNC. Em seguida, redimensione o visualizador. Com o Vncdesk ( vncdesk-git do AUR), você pode configurar uma área de trabalho por aplicativo e iniciar o servidor e o cliente com um comando simples, como vncdesk 2.

O x11vnc possui uma opção experimental -appshare, que abre um visualizador por janela do aplicativo. Talvez algo possa ser hackeado com isso.

Claus Andersen
fonte
Ótima resposta, obrigado. Terei prazer em aceitar a resposta. Por que não truetype? 1) Eu quero usá-lo em um computador lento antigo. 2) A família fixa possui um ótimo suporte ao idioma, conforme descrito em cl.cam.ac.uk/~mgk25/ucs-fonts.html E uma última coisa: existe uma maneira de escalar uma única janela no X? Eu acho que isso vai melhorar a resposta.
• Ho1
1
W / R para o pôster original precisa de amplo suporte de idiomas diferentes, o Vera é limitado, mas o DejaVu, seu spinoff, suporta muitos conjuntos de caracteres diferentes. Desse ponto de vista, também as fontes monoespaçadas mais ou menos disponíveis da MS são muito boas, tanto Courier10 quanto Calibri. Eu me apaixonei por Calibri!
gboffi
0

Agora você pode aumentar o tamanho da fonte mantendo o controle e o botão direito do mouse (ou seja ctrl+right mouse button) e selecione o tamanho da fonte. Para torná-lo padrão, você precisa ter uma Xresourcesconfiguração. Estou tentando e atualizarei a resposta assim que a receber.

Atualizar:

Você pode criar um .Xresourcesarquivo dentro do diretório inicial e adicionar a linha abaixo xterm*font: *-fixed-*-*-*-18-*. Em seguida, mescle suas alterações com o utilitário de recursos do servidor X usando xrdb(ie xrdb -merge ~/.Xresources) ou você pode reiniciar o Xtambém. O novo xtermsdeve ter o tamanho da fonte alterado.

Thushi
fonte
Obrigado pela sua resposta, estou usando a maior fonte de bitmap disponível para a família de fontes fixas: 10x20, que é usada para um tamanho de fonte enorme , mas também é muito pequena nos displays HIDIP. Por favor, note que estou falando de fontes de bitmap e não de fontes de truetype.
• Ho1
0

Não tenho certeza, mas talvez você possa mesclar a fonte e o tamanho assim:

xterm -fn helvetica -fs 20x10

pequeno teste de fontes

Atenciosamente, maniat1k

maniat1k
fonte
Obrigado pela sua resposta. Isso fornece fontes maiores:, xterm -fs 20x10mas não é a "família de fontes fixas": en.wikipedia.org/wiki/Fixed_%28typeface%29 , portanto, não contém caracteres internacionais que a família de fontes fixas possui.
• Ho1