Caratteri "xterm" più grandi sui display HIDPI


15

Dopo diversi anni di felice utilizzo di emulatori di terminali diversi come Konsole , Gnome-TERMINAL e ultimamente XFCE Terminal nei loro ambienti desktop appropriati, ho deciso di usare un buon vecchio xterm con i suoi caratteri bitmap . Funziona bene, supporta Unicode e la famiglia di caratteri fissi predefinita contiene caratteri di quasi tutte le lingue, il che è fantastico.

Ma ho riscontrato un problema importante. I caratteri sono davvero piccoli. Anche la cosiddetta dimensione enorme (che è un font bitmap 10x20) è molto piccola per me e inutilizzabile.

La mia impostazione predefinita per l'ambiente XFCE è 120 dpi, ma xpdyinforiporta 97x97 DPI

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

Quindi ho provato a cambiare il DPI con xrandr, ma non ha aiutato.

$ xrandr --dpi 120

Il risultato sembra essere applicato

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

ma non cambia affatto la risoluzione di xterm. Ho anche provato a usare il ridimensionamento, ma ha interessato l'intera X, piuttosto che una singola applicazione:

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

Ci sono soluzioni alternative per Qt e Gtk , ma per quanto riguarda Xlible applicazioni basate su piace Xterm, Xcalc, Xman, Xfige, ecc? Dovremmo guardarli svanire mentre il DPI del display aumenta? Aiutatemi se conoscete qualche soluzione alternativa.


Questo è quello che ho fatto, che ha funzionato in qualche modo, ma non potrei essere in grado di utilizzare la "famiglia di caratteri fissi" originale, quindi ora potrebbe funzionare solo per alcune lingue.


PS1: ho installato caratteri DPI 100 per X, ma non sono riuscito a usarli

$ sudo apt-get install xfonts-100dpi

PS2: Fontforgeche usa anche Xlib, utilizza un bel tema e dimensioni dei caratteri normali. Non so come lo fa.

PS3: sto testando otf2bdfe bdftopcfutilita 'per creare PCFfont bitmap sperimentali per HIDPI da TTF/OTFfont vettoriali .

PS4: Dopo aver installato i caratteri 100 DPI, questo era buono, anche se manca il supporto linguistico del fixedcarattere predefinito .

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

Ho usato fontsel. È davvero utile

PS5: anche questo è utile.

PS6: Potrei essere in grado di creare font bitmap 120 DPI da Courier New con 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 sono codificati nel carattere BDF. Forse cambiarlo aiuterà.

PS8: vncdesk è un buon strumento da utilizzare per ridimensionare una singola finestra .


Xft.dpi: 120in ~/.Xresourcesnon funziona?
ILMostro_7,

xrdb -query | grep dpiriporta già:Xft.dpi: 120
Ho1,

Hai creato un ~/.Xresourcesfile o ~/.Xdefaults, o w / e è appropriato sul tuo sistema? Il link che hai indicato come utile non è un insieme completo di opzioni disponibili per xterm. Ad esempio, Xft.lcdfilter: lcddefault Xft.antialias: true Xft.hinting: true Xft.hintstyle: hintslighte molti altri.
ILMostro_7

1
@ MartinSchröder Sì, in effetti ho testato i miei caratteri da 120 dpi generati dal font TrueType Courier New . Ma questo manca di tutte le lingue supportate da "Famiglia di caratteri bitmap fissi", quindi sto cercando un modo migliore per farlo. Attualmente nel mio sistema, / etc / X11 / app-defaults / XTerm, come impostazione predefinita VT100.font6 (enorme) è impostato su 10x20 caratteri dalla famiglia di caratteri fissi, che è piuttosto piccola sul mio schermo. Sarei felice se avessimo en.wikipedia.org/wiki/Fixed_%28typeface%29 per 20x40, ma non lo facciamo.
Ho1

1
Avete bisogno di utilizzare font bitmap? xtermsupporta anche i caratteri TrueType. xterm -fa 'DejaVu Sans Mono' -fs 40(anche se non si passa da un carattere all'altro quando i glifi non sono disponibili come fanno altri emulatori di terminali)
Stéphane Chazelas,

Risposte:


10

Hai suggerito tu stesso la risposta facendo riferimento a https://en.wikipedia.org/wiki/Fixed_(typeface)

Questo è il carattere bitmap fisso standard che è stato espanso da Markus Kuhn per avere un set di caratteri piuttosto completo. La domanda è quindi come ridimensionare una bitmap .

Ciò che hai ottenuto finora è ridimensionare un carattere vettoriale e convertirlo in bitmap (ttf → bdf → pcf) . Questa è una buona strategia ma, come dici tu, manca un po 'di supporto linguistico. Sembra strano come Courier New sia uno dei font più unicode completi ma sto divagando! Forse prova a usare Mono, che è un clone.

Non però a capire perché si sta facendo questo come xterm fa supporto TrueType .

Modifica ~/.Xresourcesin questo modo:

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

Ma torniamo all'attività: vuoi un carattere bitmap più grande .

La più grande bitmap disponibile disponibile è:

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

Markus è stato così gentile da fornire i file BDF di origine. Se la tua distribuzione non ha gli aggiornamenti più recenti (da aprile 2009) puoi prendere il pacchetto direttamente da lui.

Il pacchetto di caratteri "-misc-fixed- *":

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

Invece di convertire avanti e indietro tra pcf e bdf potresti / dovresti attenerti al formato sorgente. È possibile utilizzare un editor di caratteri BDF per ridimensionare il carattere. Non aspettarti alcun antialias o tale inganno - ma almeno puoi ottenere una dimensione leggibile.

Oppure puoi usare bdfresize di Hiroto Kagotani (presente anche in alcuni sistemi di pacchetti).

AGGIORNARE:

Non conosco un modo per ridimensionare solo una finestra (mai avuto il bisogno). È possibile tenere traccia di questa domanda del superutente. Quando ne ho avuto la necessità, ho ridimensionato l'intero ambiente.

È possibile eseguire il downgrade di uno schermo 3200x1800 a 1920x1080 utilizzando:

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

Altri trucchi per il ridimensionamento dello schermo in diversi gestori di finestre sono disponibili qui . Suggeriscono di usare VNC:

Un approccio consiste nell'eseguire l'applicazione a schermo intero e senza decorazioni sul proprio desktop VNC. Quindi ridimensionare il visualizzatore. Con Vncdesk ( vncdesk-git di AUR) è possibile impostare un desktop per applicazione, quindi avviare server e client con un semplice comando come vncdesk 2.

x11vnc ha un'opzione sperimentale -appshare, che apre un visualizzatore per finestra dell'applicazione. Forse qualcosa potrebbe essere compromesso con quello.


Ottima risposta, grazie. Accetterò felicemente la risposta. Perché non TrueType? 1) Voglio usarlo su un vecchio computer lento. 2) La famiglia fissa ha un ottimo supporto linguistico, come descritto in cl.cam.ac.uk/~mgk25/ucs-fonts.html E un'ultima cosa: c'è un modo per ridimensionare una sola finestra in X? Penso che questo migliorerà la risposta.
Ho1,

1
Per quanto riguarda il poster originale, è necessario un ampio supporto di lingue diverse, Vera è limitata ma il suo spin-off DejaVu supporta molti set di caratteri diversi. Da questo punto di vista anche i caratteri monospaziali più o meno liberamente disponibili di MS sono molto buoni, sia Courier10 che Calibri. Mi sono innamorato, in un certo senso, di Calibri!
gboffi,

0

In questo momento puoi aumentare la dimensione del carattere tenendo premuto il tasto di controllo e il tasto destro del mouse (cioè ctrl+right mouse button) e selezionando la dimensione del carattere. Per renderlo predefinito è necessario disporre di una Xresourcesconfigurazione. Lo sto provando e aggiornerò la risposta una volta ricevuta.

Aggiornare:

Puoi creare un .Xresourcesfile nella tua home directory e aggiungere la riga sotto xterm*font: *-fixed-*-*-*-18-*. Quindi unire le modifiche con l'utilità delle risorse del server X utilizzando xrdb(ovvero xrdb -merge ~/.Xresources) oppure è possibile riavviare Xanche. Il nuovo xtermsdovrebbe avere la dimensione del carattere modificata.


Grazie per la tua risposta, sto usando il più grande carattere bitmap disponibile per la famiglia di caratteri fissi: 10x20 che viene utilizzato per dimensioni di carattere enorme , ma è anche molto piccolo sui display HIDIP. Si noti che sto parlando di caratteri bitmap e non di caratteri TrueType.
Ho1,

0

Non sono sicuro, ma puoi forse unire il carattere e il siz in questo modo:

xterm -fn helvetica -fs 20x10

piccolo test di caratteri

saluti, maniat1k


La ringrazio per la risposta. Questo fornisce caratteri più grandi:, xterm -fs 20x10ma non è la "famiglia di caratteri fissi": en.wikipedia.org/wiki/Fixed_%28typeface%29 , quindi non contiene caratteri internazionali che hanno la famiglia di caratteri fissi.
Ho1,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.