Powerline: Prise en charge de Gnome 3.22

Créé le 1 oct. 2016  ·  44Commentaires  ·  Source: powerline/powerline

Voici ce que je vois après la mise à niveau de Gnome 3.22:

output

ctmux linux sforeign bug bug

Commentaire le plus utile

Comme cela pose toujours problème, les utilisateurs d'OS X / macOS sur une nouvelle version iTerm2 peuvent rencontrer ce problème si votre profil est configuré pour utiliser les largeurs de caractères Unicode version 9 - la solution de contournement consiste simplement à décocher cette case sous Préférences -> Profils -> Texte -> Unicode.

Tous les 44 commentaires

Powerline détermine ce qu'il faut afficher, l'écriture correcte sur le terminal est de la responsabilité de tmux. Votre capture d'écran semble être

  1. tmux pense à tort que le terminal est une cellule plus large qu'il ne l'est réellement.
  2. il y a un caractère pour lequel tmux pense qu'il a une largeur de cellule et l'émulateur de terminal pense qu'il fait deux cellules.

Powerline ne peut rien faire avec cela. Vous pouvez contourner le problème en choisissant un autre jeu de caractères (par exemple, définir le thème top_level sur ascii ou découvrir et remplacer un seul caractère incriminé), mais c'est un bogue tmux.

On dirait que @frol est aussi sur Gnome. Je n'ai eu aucun problème avec tmux 2.3.1 qui a été mis à jour selon les gestionnaires de paquets Arch le 30 septembre. Cela ressemble plus à un problème avec le terminal Gnome et peut-être avec Powerline à cause d'un bug mystérieux. tmux sans Powerline fonctionne très bien dans Gnome 3.22.

Fonctionne bien avec urxvt!

Dans powerline.json change:

image

à

            "time": {
                    "before": " "
            },

@mrmodolo Oui, ça aide!

@burningTyger J'utilise testing repos, donc j'ai eu Tmux 2.3.1 et Gnome 3.22 le même jour et j'ai juste pensé que c'était une incompatibilité Tmux, mais il semble que j'avais tort.

@mrmodolo le symbole de la montre est le coupable mais l'autre symbole n'est pas disponible dans ma police Powerline, donc j'ai juste laissé la chaîne avant vide, ce qui le résout pour le moment aussi. Je vous remercie.

Dans ma configuration, "" est le caractère UTF8 f017 .
Vous pouvez imprimer le symbole dans VIM:
Passer en mode insertion;
CTRL + v puis tapez uf017

Quel caractère Unicode est le symbole de la montre qui pose des problèmes (dans une capture d'écran sur fond jaune dans un commentaire précédent)?

(Remarque: U + F017 est dans la zone d'utilisation privée, sur mon système, il apparaît de la même manière que le symbole tilde (~), mais c'est peut-être celui qui apparaît comme une montre sur votre système ?? Si oui, qu'est-ce que @ mrmodolo recommande réellement de changer ??)

$ printf "% d \ n" \ 'image
8986
$ echo "obase = 16; 8986" | avant JC
231A

En type VIM:
CTRL + v puis tapez uf231A

Maintenant j'ai ça!
image
J'utilise Arch, mais Ubuntu utilise  en courant porteur par défaut!

Alors ... est-ce que je comprends bien:

  • avec U + 231A cela ne fonctionne pas correctement,
  • avec U + F017 au lieu de cela à la même position, cela fonctionne correctement?

(Ou est-ce l'inverse? Désolé, je suis assez perdu.)

Dans mon cas, U + F017 à la même position fonctionne très bien!
Mon fichier de configuration est:

"temps": {
"avant": ""
},

En lisant d'abord le rapport de bogue de gnome-terminal, j'ai pensé que c'était une invite de courant porteur bash / zsh qui se comportait mal. En regardant le screencast ici, il me semble plutôt que c'est une barre d'état Powerline tmux.

Quelqu'un pourrait-il s'il vous plaît me diriger vers la documentation la plus rapide et la plus courte que je devrais suivre pour configurer tmux sur Powerline (afin que je puisse reproduire ce bogue)? Je n'ai jamais utilisé Powerline, et je ne connais guère non plus tmux, et Google donne beaucoup trop de résultats. Je suis heureux de déboguer ce problème, mais je n'ai pas le temps de me familiariser avec l'écosystème CPL. Merci d'avance!

J'utilise arch ...
yaourt -S python-powerline

Dans .tmux.conf ...
run-shell "powerline-daemon -q"
source "/usr/lib/python3.5/site-packages/powerline/bindings/tmux/powerline.conf"

Si le problème vient du fait que tmux pense que U + 231A est plus large, le terminal GNOME pense que c'est le cas, alors le problème devrait être parfaitement reproductible sans Powerline: faites simplement en sorte qu'une option status- contienne ce symbole (note: je ne suis pas sûr si et quelles optimisations de rendu utilise tmux, donc status-right doit contenir quelque chose).

Merci pour l'information!

Je suis sur Ubuntu Yakkety (gtk + gnome 3.20 / glib 2.50.0 [qui appartient à gnome 3.22] / glibc 2.24) avec tmux-2.3 et gnome-terminal / vte git compilé manuellement. Je ne peux pas reproduire ce bug (ni avec Powerline, ni avec un simple status-right).

Si le problème vient du fait que tmux pense que U + 231A est plus large, le terminal GNOME pense

Cela n'expliquerait pas le problème actuel. Ensuite, tmux afficherait un caractère de moins (car il pense que l'un est plus large) et par conséquent, il ne remplirait pas toute la largeur. Je pense que c'est le contraire: tmux pense que c'est un caractère régulier, tandis que gnome-terminal pense que c'est un double de large. Par conséquent, il déborde.

Comme indiqué sur https://bugzilla.gnome.org/show_bug.cgi?id=762052#c30 , gnome-terminal (vte) utilise g_unichar_iswide () au lieu de wcwidth () (qui est utilisé par xterm et probablement aussi par tmux) .

Pourriez-vous s'il vous plaît essayer ces:

echo $'\u231A' | wc -L

Cela imprime la wcwidth () de la glibc, je suppose que la sortie sera 1.

echo ABCDE; echo a$'\u231A'cde

Les lettres majuscules et minuscules s'alignent-elles correctement? Je suppose que dans xterm ils le font, alors que dans gnome-terminal ils ne le font pas (la montre occupe 2 cellules).

Pourriez-vous s'il vous plaît partager votre version de glib et glibc? Je suppose que vous avez glib 2.50.1 dont le journal des modifications dit "Mettre à jour le support Unicode vers Unicode 9.0.0" et peut-être Unicode 9.0.0 a augmenté la largeur de ce codet.

On dirait que ma supposition sauvage était vraie:

ftp://ftp.unicode.org/Public/8.0.0/ucd/EastAsianWidth.txt

2313..231F;N     # So    [13] SEGMENT..BOTTOM RIGHT CORNER

ftp://ftp.unicode.org/Public/9.0.0/ucd/EastAsianWidth.txt

2313..2319;N     # So     [7] SEGMENT..TURNED NOT SIGN
231A..231B;W     # So     [2] WATCH..HOURGLASS
231C..231F;N     # So     [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER

Les points de code de la montre et du sablier (et peut-être beaucoup plus) se sont élargis grâce à Unicode 9.0.0.

gnome-terminal utilise la nouvelle largeur s'il fonctionne avec glib 2.50.1 ou plus récent, alors que xterm et tmux s'appuient sur la glibc dont la dernière version (2.24) utilise toujours l'ancienne largeur.

Je ne trouve pas le rapport de bogue de gnome-terminal lié ici, alors le voici pour votre référence:
https://bugzilla.gnome.org/show_bug.cgi?id=772812
https://bugzilla.gnome.org/show_bug.cgi?id=772890

Les lettres majuscules et minuscules s'alignent-elles correctement? Je suppose que dans xterm ils le font, alors que dans gnome-terminal ils ne le font pas (la montre occupe 2 cellules).

Il y a un autre problème possible que j'ai avec ce symbole: konsole et tmux pensent qu'il fait une cellule de large, mais la bibliothèque de rendu de polices n'est pas (ne peut pas être?) Dit de la mettre à l'échelle dans cette cellule d'affichage (le glyphe réel est extrait de une autre police parce que terminus n'a pas ce glyphe), ce qui donne quelque chose comme

e is off compared to E

. Cela n'entraîne pas les problèmes que rencontrent les gens ici, mais cela peut entraîner des résultats incorrects dans votre test.

konsole est le seul émulateur que je connaisse qui fasse cette folie de ne pas s'aligner sur les cellules.

Dans tous les autres émulateurs, le symbole de la montre peut déborder sur la cellule de c , mais les lettres seront exactement en dessous les unes des autres: soit Cc, Dd, Ee, ou (comme je m'y attend dans gnome-terminal avec glib-2.50 .1) Dc et Ed s'aligneront.

J'ai le même problème sur Termite, avec Arch x86 + tmux. Cependant, la modification de l'icône de la montre dans themes / powerline.json ne change rien.

Apparu aujourd'hui dans Debian Stretch (test). J'utilise LXDE et Tilda.
tmux version 2-3-1
tilda version 1.3.1-1 + b1

Je ne sais vraiment pas quels paquets glib / glibc vous intéressent, j'ai donc fait une capture d'écran:
zrzut ekranu z 2016-10-19 14-10-01

Mise à jour: Il s'agit de la police _Liberation Mono pour Powerline_, mais la sortie de _Linux Libertine Mono_ est la même (et d'autres aussi, je suppose).

Edit: La modification de l'icône de la montre (U + 231A ou U + F017) ne fonctionne pas non plus pour moi. Aucune suggestion?
Edit2: Dans ma capture d'écran, je me suis trompé et j'ai utilisé wc -l au lieu de wc -L , mais dans cet exemple, la sortie est la même. 1.
Edit3: Enfin, tmux + powerline fonctionne à nouveau, merci! Signe d'horloge supprimé de/ usr / local / lib / ..., comme mentionné ci-dessus et depuis le fichier local de mon utilisateur dans
~/.local/lib/python2.7/site-packages/powerline/config_files/themes/powerline.json
Après le redémarrage, cela fonctionne comme un charme.

@dunemkk , qu'entendez-vous par suppression de l'horloge de connexion / usr / local / lib?

@ s0r00t Mon mal. Mis à jour mon commentaire.
Maintenant, je vois que cet endroit n'a pas du tout été mentionné.

Au début, je ne savais même pas que j'avais le fichier powerline.json dans le répertoire de mon utilisateur. J'ai trouvé que ce fichier est dans
/usr/local/lib/python2.7/dist-packages/powerline/config_files/themes/powerline.json
(puisque j'ai utilisé une ligne de liaison de localisation similaire pour zsh / tmux / vim) et je n'ai pas pris la peine de vérifier si c'est ailleurs dans mon système. C'est probablement pourquoi cela n'a pas fonctionné. ; P

Le commit d'ahaasler m'a aidé: https://github.com/ahaasler/dotfiles/commit/aafef1f7a0b5a1d398c8ac33062b5d223b9a25a6

Merci, je l'ai réparé.

A fonctionné comme un charme.
Pour info: U + 23F2 avec deux espaces derrière, ressemble à l'ancien (sauf non cassé). Seulement avec une horloge au lieu d'une montre.

Les autres caractères possibles mais non testés sont:
U + 23F0 (réveil)
U + 1F570 (horloge de cheminée)
U + 1F570 à U + 1F567 (faces d'horloge div.)

Merci pour le travail!

Comme cela pose toujours problème, les utilisateurs d'OS X / macOS sur une nouvelle version iTerm2 peuvent rencontrer ce problème si votre profil est configuré pour utiliser les largeurs de caractères Unicode version 9 - la solution de contournement consiste simplement à décocher cette case sous Préférences -> Profils -> Texte -> Unicode.

avoir ce problème soudainement sur Ubuntu 16.10 - la semaine dernière, cela ne s'est pas produit. bizarre. probablement quelque chose a changé pendant une mise à jour apt-get ou une mise à niveau de pip, je ne m'en souviens pas.

alors quelle est la solution officielle?

@binarykitchen même ici depuis hier aussi!

Trouvé une solution

cp /usr/share/powerline/config_files/themes/powerline.json ~ / .config / powerline / themes /

puis éditez ~ / .config / powerline / themes / powerline.json et trouvez un bloc qui dit:

                "time": {
                        "before": "  "
                },

J'ai remplacé la valeur de "avant" par "◴"

@CVirus merci mais dans mon cas, il y avait déjà ce caractère de montre.

Mais je n'avais pas le fichier json dans mon dossier .config ... cela pourrait-il en être la cause?

Et certains commentaires en haut de ce fil disent de supprimer ou de remplacer le caractère de la montre. Confus.

@binarykitchen remplace l'horloge que vous avez par celle que j'ai collée ou a par n'importe quel autre caractère

@CVirus fera l'affaire - pour clarifier, dois-je redémarrer quelque chose après avoir remplacé le personnage? ma machine, la session zsh?

et pour être clair, cela ne se produit que lors d'une session tmux sur mon serveur distant. et je ne corrige que json de mon côté, le client, pas du côté du serveur.

faites le moi savoir ...

@binarykitchen Vous devez redémarrer quel que soit le processus dans lequel se trouve Powerline. Cela signifie probablement powerline-daemon, mais pas shell ou tmux. Bien que zsh soit spécial ici: si vous avez installé zpython, Powerline vivra dans un processus shell. Il est peu probable que cela se produise à moins que vous n'installiez vous-même zpython.

@ ZyX-I merci - aucune idée si j'ai installé zpython et btw, j'ai installé Powerline via apt-get, pas pip.

et re ma dernière question: "cela n'arrive que pendant une session tmux sur mon serveur distant" - comment puis-je savoir si le problème CPL est du côté client ou serveur?

@binarykitchen Quelle que soit l'application qui utilise Powerline, elle utilise Powerline du côté où elle est exécutée.

@ ZyX-I "Quelle que soit l'application qui utilise Powerline, elle utilise Powerline du côté où elle est exécutée."

-> mon problème est que, lorsque j'exécute une session ssh sur tmux, je commence à croire que c'est un problème avec l'installation CPL côté serveur. mais plus je lis sur Powerline, je suppose que c'est un problème côté client. c'est vraiment abstrait ...

ont redémarré ma machine et le bogue se produit toujours - d'autres indices? devenir désespéré ici ...

si je ne peux pas avoir une session ssh appropriée bientôt pour vérifier mon serveur, je vais devoir désinstaller Powerline :(

J'ai juste utilisé le chronomètre au lieu de l'horloge pour résoudre ce problème. Donc dans /usr/share/powerline/config_files/themes/powerline.json , j'ai changé ces lignes

"time": {
    "before": "◴ "
},

à

"time": {
    "before": "⏱ "
},

@binarykitchen La configuration est tirée de la ligne électrique de la machine activée. L'affichage du symbole se produit sur le client. Le correctif actuellement suggéré modifie la configuration.

Si vous n'avez pas configuré de thèmes, mettez simplement à jour toutes les lignes électriques pour développer la version, il utilise maintenant le thème sans symboles problématiques par défaut.

essayé le correctif du chronomètre mais non, cela n'a pas aidé

Je pense que je vais simplement désinstaller Powerline - désolé les gars

@binarykitchen Utilisez peut-être simplement un espace au lieu des icônes d'horloge.

@binarykitchen Il ne suffit pas de changer le fichier. Vous devez également faire en sorte que Powerline utilise la nouvelle configuration (peut-être que le redémarrage est le plus simple). Peut-être que c'est Powerline-daemon qui utilise les anciens paramètres, ce qui peut aussi fonctionner, mais je ne suis pas sûr.

@ liuhuiping2013 avez-vous même lu les commentaires ci-dessus?

Cette page vous a été utile?
0 / 5 - 0 notes