Aucun caractère de boîte après avoir changé la police Grub par défaut

13

J'ai pu changer la police par défaut de Grub, en utilisant

grub-mkfont -s 16 -o /boot/grub/grubfont.pf2 font.tty

puis en ajoutant la ligne suivante à / etc / default / grub:

GRUB_FONT=/boot/grub/grubfont.pf2

Et bien sûr

sudo update-grub

Et la nouvelle police est apparue et tout (n'oubliez pas de choisir une police à espacement fixe). Mais , les caractères "encadrés" (autour des entrées) ne s'affichent jamais correctement. Je suppose que la plupart des polices n'ont tout simplement pas ce jeu de caractères. Est-il possible d'ajouter ces caractères? Peut-être même les copier à partir de la police unicode.pf2 par défaut? Si ce n'est pas vraiment possible, connaissez-vous des polices qui ont ces caractères?

Mise à jour:

J'ai essayé beaucoup de choses différentes, telles que la conversion de ttf en bdf puis en pf2, et j'ai essayé de convertir uniquement les caractères ascii avec l'option --range=0x0-0x7f, mais aucun ne semblait le faire fonctionner parfaitement. J'ai le sentiment que c'est parce que je génère une police plus grande que celle par défaut, et les glyphes par défaut ne peuvent donc pas être utilisés.

Je vais essayer de voir si je peux le faire fonctionner avec une taille de police plus petite, bien que ce soit l'une des raisons pour lesquelles je voulais changer la police.

LasseValentini
la source
1
Essayez BURG, c'est très agréable et a beaucoup de thèmes
Extender
Mais OP veut changer la police - pas le thème GRUB. Hors du sujet.
WindowsEscapist

Réponses:

8

En théorie, grub-mkfont permet de passer plusieurs polices. Dans ce cas, si vous pouvez transmettre un lien vers Unifont ou une autre police avec une couverture plus large en même temps. La police Grub produite sera une combinaison de la couverture des deux polices d'entrée.

Remarque: une amélioration récente des performances du chargeur de polices au démarrage Grub signifie que les glyphes dans un fichier de police Grub doivent être dans un ordre croissant spécifique, mais malheureusement, la modification n'a pas été apportée à l' grub-mkfontutilitaire en même temps! C'est maintenant un bug:

  • Bogue n ° 729470 "grub-mkfont génère des polices que grub ne peut pas utiliser (caractères de police non dans l'ordre croissant: 0 <= 0)"

BTW, si vous êtes intéressé, ce bogue a été découvert à la suite d'expériences portant sur l'utilisation de la police Ubuntu Mono en développement Ubuntu Mono dans les menus de démarrage de Grub et sur le même problème que vous venez de rencontrer!

sladen
la source
1
Je vais laisser reposer jusqu'à ce qu'ils obtiennent la police Ubuntu Mono chargée dans grub - c'est ce que je cherchais en premier lieu :) Merci beaucoup.
LasseValentini
9

Fondamentalement, ce que vous voulez faire, c'est utiliser l'opérateur de plage pour limiter les caractères que contient votre nouvelle police grub. Si vous n'utilisez pas l'opérateur de plage, vous obtiendrez tous les glyphes, y compris les éléments de boîte erronés ou incorrects de votre police cible.

Par exemple:

grub-mkfont -s 16 --range=0x0-0x7f -o /boot/grub/grubfont.pf2 font.tty

Générera une police avec uniquement des caractères ASCII, tout ce que votre police n'a pas devrait se désintégrer gracieusement à la police par défaut, les boîtes et les flèches devraient donc provenir de la police par défaut. Veuillez consulter ce site Web pour plus d'informations:

http://grub.enbug.org/gfxterm

Martin Owens -doctormo-
la source
1
Cela aurait du sens, mais j'ai toujours des glyphes étranges, peut-être parce que la police unicode n'est pas chargée du tout? Je vais essayer de redéfinir la police par défaut, puis réessayer.
LasseValentini
1
Vous devriez peut-être d'abord charger une police de console, puis charger votre police ttf ascii uniquement.
Martin Owens -doctormo-
1
Avez-vous essayé de charger plusieurs polices? la police unicode /usr/share/grub/unicode.pf2 doit contenir la case et les flèches dont vous avez besoin. Vous devriez pouvoir charger les polices en utilisant loadfont l'une après l'autre jusqu'à ce que vous obteniez l'effet souhaité.
Martin Owens -doctormo-
5

IIRC J'ai rencontré ce que vous décrivez en utilisant tous les glyphes:


(source: xrmb2.net )

C'est peut-être un problème avec grub-mkfont, peut-être cela a à voir avec la police, je ne sais pas. :(

Ce qui a fonctionné pour moi:

  1. Utilisation gbdfedpour générer le fichier 'bdf' à partir d'une police de console (par exemple '/usr/share/consolefonts/Lat15-VGA16.psf'): Fichier> Importer> Police de la console, puis Fichier> Enregistrer sous ...
  2. Conversion uniquement des caractères ASCII avec grub-mkfont:

    grub-mkfont --output=out.pf2 --range=0x0-0x7f out.bdf
htorque
la source
1
Il semble que mon principal problème est que je souhaite utiliser une police OpenType (ttf) et non une police conçue pour les consoles. J'ai essayé ce qui précède avec un fichier ttf, mais cela n'a pas aidé sur ce problème particulier. Merci beaucoup pour une solution à un problème similaire :).
LasseValentini
3

Si vous exécutez grub-mkfont avec l' indicateur -v , il vous montrera combien de glyphes vous obtenez. Si vous en obtenez plus d'un millier, le caractère de bordure doit être là. Limiter la portée ne fera qu'empirer les choses. La police DejaVuSansMono affiche correctement tous les caractères et contient plus de 3000 glyphes dans le .pf2. De nombreuses autres polices obtiennent les flèches à droite mais pas la bordure.

daithib8
la source
2

utilisez une police unicode .. Cela a fonctionné presque très bien (comme arialuni.ttf, affiche tous les caractères comme requis) .. Mon problème est avec l'espacement des caractères un peu plus grand ... et cela se produit avec chaque police que j'ai testée.

sarathkcm
la source
1

Vous pouvez obtenir ceci pour s'afficher correctement en chargeant à la fois la police par défaut et la police souhaitée.

Ensuite, définissez la police sur la police souhaitée.

Lorsque les caractères de la boîte ne sont pas trouvés, la police standard qui est également chargée agira par défaut et les caractères nécessaires seront fournis.

mchid
la source
0

Je me rends compte que ce fil est ancien, mais je le lisais aujourd'hui et j'ai trouvé une autre réponse non encore fournie ... alors voici:

Si vous obtenez des caractères étranges dans GRUB après avoir changé de police, c'est parce que ces caractères n'existaient pas dans le fichier .ttf que vous avez utilisé pour créer le fichier .pf2.

Les caractères utilisés pour créer la bordure sont:

  • U + 2501
  • U + 2503
  • U + 250F
  • U + 2513
  • U + 2517
  • U + 251B

Les autres caractères généralement manquants dans un fichier .ttf sont les flèches qui sont:

  • U + 2191
  • U + 2193

Vous pouvez utiliser FontForge (logiciel open source) pour copier et coller ces caractères à partir d'un fichier .ttf contenant les caractères inclus dans le fichier .ttf que vous essayez d'utiliser, ce qui n'est pas le cas. Après avoir généré un nouveau .ttf avec FontForge, vous pouvez utiliser grub-mkfont pour créer votre fichier .pf2 qui contient tous les caractères appropriés.

notorious.dds
la source