Des polices «xterm» plus grandes sur les écrans HIDPI

15

Après plusieurs années d'utilisation heureuse de différents émulateurs de terminaux comme Konsole , Gnome-TERMINAL et dernièrement XFCE Terminal dans leurs environnements de bureau appropriés, j'ai décidé d'utiliser le bon vieux xterm avec ses polices bitmap . Cela fonctionne très bien, il prend en charge Unicode et la famille de polices fixes par défaut contient des caractères de presque toutes les langues, ce qui est génial.

Mais je suis tombé sur un problème important. Les polices sont vraiment petites. Même la soi-disant taille énorme (qui est une police bitmap 10x20) est très petite pour moi et inutilisable.

Mon paramètre par défaut pour l'environnement XFCE est défini sur 120 dpi, mais xpdyinforapporte 97x97 DPI

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

J'ai donc essayé de changer le DPI avec xrandr, mais cela n'a pas aidé.

$ xrandr --dpi 120

Le résultat semble être appliqué

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

mais cela ne change pas du tout la résolution xterm. J'ai même essayé d'utiliser la mise à l'échelle, mais cela a affecté l'ensemble du X, plutôt qu'une seule application:

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

Il existe des solutions de contournement pour Qt et GTK , mais qu'en est- Xlibapplications à base aiment Xterm, Xcalc, Xman, Xfige, etc? Faut-il les regarder s'estomper, alors que l'écran DPI augmente? Veuillez aider si vous connaissez des solutions de contournement.


C'est ce que j'ai fait, qui a fonctionné d'une manière ou d'une autre, mais je ne pouvais pas utiliser la "famille de polices fixes" d'origine, donc cela peut maintenant fonctionner pour certaines langues uniquement.


PS1: J'ai installé des polices 100 DPI pour X, mais je n'ai pas pu les utiliser

$ sudo apt-get install xfonts-100dpi

PS2: Fontforgequi utilise également Xlib, utilise un joli thème et des tailles de police normales. Je ne sais pas comment ça fait ça.

PS3: Je teste otf2bdfet bdftopcfutilise PCFdes polices bitmap expérimentales pour HIDPI à partir de TTF/OTFpolices vectorielles .

PS4: Après avoir installé les polices 100DPI, c'était bien, bien qu'il manque une grande prise en charge linguistique de la fixedpolice par défaut .

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

J'ai utilisé fontsel. C'est vraiment utile.

PS5: Ceci est également utile.

PS6: je pourrais créer une police bitmap 120DPI à partir de Courier New avec 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 est codé en dur dans la police BDF. Peut-être que le changer vous aidera.

PS8: vncdesk est un bon outil à utiliser pour agrandir une seule fenêtre .

Ho1
la source
Xft.dpi: 120en ~/.Xresourcesne fonctionne pas?
ILMostro_7
xrdb -query | grep dpirapporte déjà:Xft.dpi: 120
Ho1
Avez-vous créé un ~/.Xresourcesfichier ou ~/.Xdefaults, ou w / e est approprié sur votre système? Le lien que vous avez souligné et que vous avez dit utile n'est pas un ensemble complet d'options disponibles pour xterm. Par exemple, Xft.lcdfilter: lcddefault Xft.antialias: true Xft.hinting: true Xft.hintstyle: hintslightet bien d'autres.
ILMostro_7
1
@ MartinSchröder Oui, en fait, j'ai testé mes propres polices 120 dpi générées à partir de la police TrueType Courier New . Mais il manque toutes les langues prises en charge par la "famille de polices bitmap fixes", donc je cherche une meilleure façon de le faire. Actuellement dans mon système, / etc / X11 / app-defaults / XTerm, par défaut, VT100.font6 (Huge) est défini sur une police 10x20 de la famille de polices Fixed, qui est plutôt petite sur mon écran. Je serais heureux si nous avions en.wikipedia.org/wiki/Fixed_%28typeface%29 pour 20x40, mais ce n'est pas le cas.
Ho1
1
Avez-vous besoin d'utiliser des polices bitmap? xtermprend également en charge les polices TrueType. xterm -fa 'DejaVu Sans Mono' -fs 40(mais sans basculer entre les polices lorsque les glyphes ne sont pas disponibles comme le font certains autres émulateurs de terminaux)
Stéphane Chazelas

Réponses:

10

Vous avez laissé entendre la réponse vous-même en faisant référence à https://en.wikipedia.org/wiki/Fixed_(typeface)

Il s'agit de la police bitmap fixe standard qui a été développée par Markus Kuhn pour avoir un jeu de caractères assez complet. La question est alors de savoir comment mettre à l'échelle un bitmap .

Ce que vous avez réalisé jusqu'à présent est la mise à l'échelle d'une police vectorielle et sa conversion en bitmap (ttf → bdf → pcf) . C'est une bonne stratégie, mais comme vous le mentionnez, il manque un certain support linguistique. Cela semble étrange car Courier New est l'une des polices les plus complètes unicode mais je m'égare! Essayez peut-être d'utiliser Mono qui est un clone.

Cependant, je ne comprends pas pourquoi vous faites cela car xterm prend en charge TrueType .

Modifiez ~/.Xresourcescomme ceci:

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

Mais revenons à la tâche: vous voulez une police bitmap plus grande .

La plus grande image bitmap disponible est:

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

Markus a été si gentil qu'il fournit les fichiers BDF source. Si votre distribution n'a pas les mises à jour les plus récentes (d'avril 2009), vous pouvez récupérer le package directement auprès de lui.

Le package de polices "-misc-fixed- *":

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

Plutôt que de faire des allers-retours entre pcf et bdf, vous pourriez / devriez vous en tenir au format source. Vous pouvez utiliser un éditeur de polices BDF pour redimensionner la police. Ne vous attendez pas à un antialiasing ou à une telle ruse - mais au moins vous pouvez obtenir une taille lisible.

Ou vous pouvez utiliser bdfresize par Hiroto Kagotani (également trouvé dans certains systèmes de paquets).

MISE À JOUR:

Je ne connais pas de moyen de mettre à l'échelle une seule fenêtre (je n'en ai jamais eu besoin). Vous pouvez suivre cette question de superutilisateur. Quand j'ai eu le besoin, j'ai fait évoluer tout l'environnement.

Vous pouvez rétrograder un écran 3200x1800 à 1920x1080 en utilisant:

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

D'autres astuces pour la mise à l'échelle de l'écran dans différents gestionnaires de fenêtres peuvent être trouvées ici . Ils suggèrent d'utiliser VNC:

Une approche consiste à exécuter l'application en plein écran et sans décoration dans son propre bureau VNC. Mettez ensuite le spectateur à l'échelle. Avec Vncdesk ( vncdesk-git de l'AUR), vous pouvez configurer un bureau par application, puis démarrer le serveur et le client avec une simple commande telle que vncdesk 2.

x11vnc a une option expérimentale -appshare, qui ouvre une visionneuse par fenêtre d'application. Peut-être que quelque chose pourrait être piraté avec ça.

Claus Andersen
la source
Excellente réponse, merci. J'accepterai volontiers la réponse. Pourquoi pas TrueType? 1) Je souhaite l'utiliser sur un ancien ordinateur lent. 2) La famille fixe a une excellente prise en charge des langues, comme décrit dans cl.cam.ac.uk/~mgk25/ucs-fonts.html Et une dernière chose: existe-t-il un moyen de simplement mettre à l'échelle une seule fenêtre dans X? Je pense que cela améliorera la réponse.
Ho1
1
W / R au besoin de l'affiche originale pour un large support de différentes langues, Vera est limité mais son spin-off DejaVu prend en charge de nombreux jeux de caractères différents. De ce point de vue, les polices espacées plus ou moins librement disponibles de MS sont très bonnes, Courier10 et Calibri. Je suis tombé amoureux, en quelque sorte, de Calibri!
gboffi
0

À l'heure actuelle, vous pouvez augmenter la taille de la police en maintenant le contrôle et le bouton droit de la souris (c.-à-d. ctrl+right mouse button) Et sélectionnez la taille de la police. Pour le définir par défaut, vous devez avoir une Xresourcesconfiguration. J'essaie et je mettrai à jour la réponse une fois que je l'aurai.

Mise à jour:

Vous pouvez créer un .Xresourcesfichier dans votre répertoire personnel et ajouter la ligne ci-dessous xterm*font: *-fixed-*-*-*-18-*. Fusionnez ensuite vos modifications avec l'utilitaire de ressources du serveur X à l'aide xrdb(c.-à-d. xrdb -merge ~/.Xresources) Ou vous pouvez redémarrer le Xégalement. Le nouveau xtermsdoit avoir la taille de police modifiée.

Thushi
la source
Merci pour votre réponse, j'utilise la plus grande police bitmap disponible pour une famille de polices fixes: 10x20 qui est utilisée pour une taille de police énorme , mais elle est également très petite sur les écrans HIDIP. Veuillez noter que je parle de polices bitmap et non de polices TrueType.
Ho1
0

Je ne suis pas sûr mais vous pouvez peut-être fusionner la police et la taille comme ceci:

xterm -fn helvetica -fs 20x10

petit test de polices

salutations, maniat1k

maniat1k
la source
Merci pour votre réponse. Cela fournit des polices plus grandes:, xterm -fs 20x10mais ce n'est pas la "famille de polices fixes": en.wikipedia.org/wiki/Fixed_%28typeface%29 , donc il ne contient pas de caractères internationaux que possède la famille de polices fixes.
Ho1