Comment utiliser Fixedsys dans le terminal Gnome, ou partout où des fonts mono-espacées sont requirejses

Je pense que la police Fixedsys est l’une des fonts monospaces les plus lisibles pour la programmation. Il n’a aucun antialiasing, avec des lignes verticales de 2 pixels de large pour la plupart. Près d’idéal pour les hauteurs de points de moniteur actuelles, à mes yeux (littéralement). Voici un échantillon:

Échantillon Fixedsys

Après des années de Windows à la maison (pour des raisons familiales) et de serveurs Linux au travail accessibles via Cygwin sous Windows (pour des raisons de stratégie d’entreprise), avec Fixedsys comme police shell et IDE, j’ai finalement décidé de passer à Ubuntu à la maison.

Eclipse et gedit ne posent aucun problème, ils acceptent une version corrigée de la police Fixedsys Excelsior TTF que vous pouvez trouver ici au commentaire n ° 16 (nom du fichier: FSEX301-L2.ttf). Mais le terminal Gnome accepte uniquement les fonts à espacement fixe.

Bien que Fixedsys Excelsior soit essentiellement monospace, il contient des glyphes plus grands (principalement pour les langues orientales), ainsi que des ligatures. Apparemment TOUS les caractères doivent avoir la même largeur pour qu’une police soit reconnue comme étant monospace, Fixedsys Excelsior ne peut pas être sélectionné dans tous les contextes dans lesquels des fonts monospaces sont requirejses, y compris gnome-terminal.

Quel est donc le moyen le plus simple et le plus propre d’utiliser un clone Fixedsys dans des contextes qui acceptent uniquement les fonts à espacement fixe?

C’est la solution que j’ai trouvée. Je l’ai testé minutieusement à plusieurs resockets, et j’utilise la police résultante à plusieurs endroits depuis plus de 2 ans, mais sachez que certaines parties de la procédure peuvent aller de la sous-optimale à la mauvaise.

Avant de vous demander “pourquoi ne rendez-vous pas la police obtenue”, la réponse est: “parce que je ne suis pas sûr de pouvoir le faire”. Le copyright de la police est une matière complexe.


Télécharger la police corrigée Fixedsys Excelsior (fichier FSEX301-L2.ttf , commentaire 16)

Installez FontForge (par exemple, à partir du Centre de logiciel Ubuntu)

Cliquez avec le bouton droit sur le fichier FSEX301-L2.ttf et ouvrez-le avec FontForge. Dans la fenêtre Load Bitmap Fonts qui apparaît, cliquez sur No.

Cliquez sur Fichier → Exécuter le script … , puis copiez et collez le texte suivant dans la fenêtre qui apparaît:

 SelectAll() foreach if (GlyphInfo("Width") != 80) DetachAndRemoveGlyphs() else b = GlyphInfo("BBox") if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130) DetachAndRemoveGlyphs() endif endif endloop SelectNone() 

Puis sélectionnez FF et cliquez sur OK (cela prendra un moment, vous devrez attendre que la fenêtre Execute Script disparaisse)

Cliquez sur Elément → Informations sur la police … Dans PS Names, changez le nom de la police , le nom de famille et le nom pour les humains , par exemple, en ajoutant Mono (les espaces ne sont autorisés que dans les deuxième et troisième chaînes).

Dans la même fenêtre Informations sur la police , sélectionnez OS / 2 .
Dans le Misc. onglet changer la famille PFM à Monospace .
Dans l’onglet Mesortingcs, définissez Win Descent Offset et HHead Descent Offset sur 0 (*) .
Dans l’onglet Panose , définissez Proportion sur Monospaced .

Dans la même fenêtre Informations sur la police , sélectionnez Recherches .
Dans les tabs GSUB et GPOS , sélectionnez chaque ligne, puis cliquez sur Supprimer .

Dans la même fenêtre Informations sur la police , cliquez sur OK et dans Modifier l’identifiant unique? fenêtre qui apparaît, cliquez sur Modifier .

Si vous le souhaitez, vous pouvez modifier une ou plusieurs fonctionnalités douteuses de Fixedsys. Par exemple, le caractère zéro est décalé d’un pixel vers la droite. Pour revenir au centre, double-cliquez dessus, puis cliquez sur Mésortingques → Définir le port … , définissez le port sur 10 et cliquez sur OK . Vous pouvez également modifier la forme des caractères, mais conservez toujours les points de contrôle par multiples de 10 et la largeur par 80.

Cliquez sur Elément → Coups de carte disponibles … , puis, dans la fenêtre qui s’affiche, définissez Taille des pixels sur 16 et cliquez sur OK .

Cliquez sur Fichier → Générer les fonts … , choisissez un autre répertoire et / ou un autre nom de fichier si nécessaire, assurez-vous que le format de sortie est TrueType , puis cliquez sur Enregistrer . Dans la fenêtre Taille standard non standard qui apparaît, cliquez sur Oui . Dans la fenêtre Erreurs détectées qui apparaît ensuite, cliquez sur Enregistrer (ne vous inquiétez pas).

Quittez FontForge ( Fichier → Quitter ). Dans la fenêtre Police modifiée qui apparaît, cliquez sur Ne pas enregistrer .


Déplacez le fichier généré dans le sous-répertoire .fonts de votre répertoire personnel (créez-le s’il n’existe pas).

Ouvrez le terminal Gnome. Cliquez sur Édition → Profils … Dans un profil (je vous suggère d’en créer un nouveau), remplacez la police par Fixedsys Excelsior 3.01-L2 Mono (ou le nom que vous avez appelé la version mono de Fixedsys Excelsior), de taille 12 (qui est le uniquement “vraie” taille Fixedsys). Si vous le souhaitez, vous pouvez également désactiver le texte en gras. Je suggère du texte noir sur fond blanc, mais c’est une question de goût.

La variante en gras de cette police équivaut à répéter le caractère décalé d’un pixel vers la droite (cela diffère de FSEX301-L2.ttf , où elle apparaît lissée). Ce n’est pas très lisible – mais avez-vous vraiment besoin de gras? Je ne. Le problème ne concerne que les contextes dans lesquels le gras ne peut pas être désactivé (pas même, par exemple, en modifiant la coloration syntaxique), en particulier dans les cas où l’espacement des caractères est également incrémenté d’un pixel, ce qui rompt les alignements (ce n’est pas le cas dans gnome. -Terminal). Je n’ai pas encore trouvé de solution à cette dernière nuisance. Les suggestions sont les bienvenues.


(*): inutile depuis la sortie de FontForge du 2012-07-31 (in 14.04 LTS – Trusty Tahr)

Excellente solution de Walter Tross, mais si vous ne voulez pas tout faire, voici le lien de téléchargement:

FixedsysExcelsiorIIIb-L2_Mono.ttf