Forum Linux.général Le shell, les polices de caractères, et les caractères bizarres

Posté par . Licence CC by-sa
Tags :
2
12
nov.
2013

Salut ! Une image animée valant toute les explications, je commencerai par là :
Gif animé de mon prompt

Vous voyez le truc bizarre ?

J'avoue que je suis un peu perdu dans les fontes sous linux.
J'utilise l'excellente police monofur (patchée maison avec powerline, pour avoir les semblant de flèches, mais là n'est pas le problème (j'avais déjà le bug avant le patch))

Vraisemblablement, l'auteur de monofur n'a pas poussé le vice jusque dessiné tout les symboles UTF8. Du coup, j'imagine que pour les afficher, 'on' va chercher un peu plus loin dans des polices de fallback (mais qui exactement ? X ? Kde ? La police directement ?)
Il semblerai que les glyphes ne soient pas tous de la meme taille, ce qui crée ce truc bizarre de décallage des caractère dès qu'il y a un non ASCII dans la ligne.
Tout se passe bien en dehors de la ligne de commande.

J'ai passé une bonne partie de ma journée a chercher en vain des pistes de solutions. Peut etre quelqu'un peut m'aiguiller, ou du moins, nommer le problème ?
Comment choisir la police utilisée pour les symboles que ne contient pas ma police préféré ? Éventuellement, comment réglé la taille des glyphes ? Est-ce que je me trompe complétement et ferait mieux d'installer ubuntu ?

Arthur

tl;dr :
* monofur font
* Konsole
* extra utf 8 symboles

  • # 2 width character

    Posté par (page perso) . Évalué à 2.

    Il semble que ton "€" (ou ce qui y ressemble) utilise plus d'un caractère (en largeur)

    Une recherche du "konsole 2 width character" dans mon moteur de recherche favori me donne ce lien : https://bugs.kde.org/show_bug.cgi?id=59162

    Je sais pas si ça correspond réellement à ton pb, mais ça y ressemble. Par contre c'est super vieux (2003), mais c'est une piste.

    Matthieu Gautier|irc:starmad

    • [^] # Re: 2 width character

      Posté par . Évalué à 0.

      C'est la relation d'appartenance

      En effet, le problème survient avec des caractères codés sur plus d'un octet (pas les accents, heureusement). Par contre le bug que tu m'as pointé semble corrigé (un peu plus bas dans la discussion)

      Je viens de remarquer que si le symbole est le premier caractère, l'affichage du reste de la ligne est correct, et je n'ai plus l'effet de défilement haut/bas en avancant le curseur. Le charactère par contre, semble tronquer au délà de la largeur normale d'un caractère.

      Je n'ai aucun problème dans n'importe quel autre logiciel, meme police, meme taille.
      Je n'ai aucun problème en utilisant une autre police (Déjà Vu Sans Mono, au hasard).
      Je m'oriente vers un problème de fontconfig ? La doc fait peur d'y mettre les mains

      Arthur

      • [^] # Re: 2 width character

        Posté par . Évalué à 5.

        Je n'ai aucun problème dans n'importe quel autre logiciel, meme police, meme taille.
        Je n'ai aucun problème en utilisant une autre police (Déjà Vu Sans Mono, au hasard).
        Je m'oriente vers un problème de fontconfig ? La doc fait peur d'y mettre les mains

        amusant ton lien de cause à effet,
        le probleme ne se produit que dans la 'konsole' ou le terminal, avec un shell et un prompt customisé

        et tu accuses fontconfig ?

        moi je crois plutot à un bug d'interpretation de la font par ton logiciel de terminal

  • # Je ne suis pas seul

    Posté par . Évalué à 3.

    Ca a l'air de coller à la description de ce bug
    https://bugs.kde.org/show_bug.cgi?id=297390

    Désolé pour le bruit

    • [^] # Re: Je ne suis pas seul

      Posté par (page perso) . Évalué à 1.

      Ne t’excuse pas trop vite, parce que perso, je viens de découvrir Powerline grâce à toi, et ça me plaît beaucoup (tout du moins pour sa partie Shell).

      Je suis en train de tester tout ça (installation du bousin + des polices sans problème particulier) et je déborde déjà de questions, du genre :

      • Comment fait-on une installation pour l'ensemble du système ?
      • Existe-t-il une liste des trucs qu'il fait ? (utilisateur courant, SSH, code de retour de la dernière commande, et puis quoi d'autre ?)

      ’Fin bref, si tu as des liens et/ou des infos, « ça m'intéresse aussi ».

      • [^] # Re: Je ne suis pas seul

        Posté par . Évalué à 1.

        Powerline c'est uniquemement un patch pour police de caractères, pour faire joli

        Si tu veux des informations supplémentaire dans ton prompt (genre c'est possible d'avoir le code de retour d'une commande uniquement si différent de 0, ou bien l'état d'un répertoire git), va voir du coté de zsh et de oh-my-zsh

        • [^] # Re: Je ne suis pas seul

          Posté par (page perso) . Évalué à 1.

          Le Powerline dont tu donnes le lien dans ton journal, c'est bien plus qu'une police complémentaire ! C'est un bidule en Python qui fait, entre autres, ce que je liste dans mon précédent commentaire (et on en a un extrait dans ton animation).

          Par contre, du coup, je comprends à l’instant que toi, tu utilises ce projet exclusivement pour avoir ces caractères supplémentaires, c’est là que je me suis gouré.

          Désolé de la confusion.

      • [^] # Re: Je ne suis pas seul

        Posté par (page perso) . Évalué à 2.

        Personnellement, j'ai utilisé powerline dans le shell, tmux, ipython et vim. Je ne l'utilise plus que dans vim. Parce que finalement c'est lent et que le shell sait déjà tout faire et pour tmux et ipython, ça ne rajoute rien qui me soit indispensable. Pour vim, ça fait une belle barre de statut sans passer trop de temps sur la configuration.

        Pour ce qui est de l'installation pour tous les utilisateurs du système, c'est compliqué, faut modifier les fichiers de config (ou alors modifier ceux dans /etc mais…). Mais après, ce ne sont que des scripts python, donc pas de difficultés à ce que ce soit à un endroit où tout le monde peut l'utiliser.

        Pour le caractère qui fait le >, le patch des polices n'est pas indispensable pour tous les émulateurs de terminal : https://powerline.readthedocs.org/en/latest/installation/linux.html#font-installation explique comment installer une police qui se substituera à la police par défaut pour les 4 caractères qu'utilise powerline sans patcher les polices (donc plus adapté à une installation system-wide).

        Ce qui est dispo est essentiellement ça https://github.com/Lokaltog/powerline/blob/develop/powerline/segments/common.py Les autres fichiers dans le dossier segments proposent des fonctions propres à certaine des applications.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.