Powerline: Gnome 3.22-Unterstützung

Erstellt am 1. Okt. 2016  ·  44Kommentare  ·  Quelle: powerline/powerline

Folgendes sehe ich nach dem Upgrade von Gnome 3.22:

output

ctmux linux sforeign bug bug

Hilfreichster Kommentar

Da dies immer noch problematisch ist, können OS X / macOS-Benutzer in einer neuen Version von iTerm2 auf dieses Problem stoßen, wenn in Ihrem Profil die Zeichenbreite für Unicode Version 9 verwendet wird. Die Problemumgehung besteht darin, das Kontrollkästchen unter "Einstellungen" -> "Profile" zu deaktivieren -> Text -> Unicode.

Alle 44 Kommentare

Powerline legt fest, was angezeigt werden soll. Das korrekte Schreiben auf das Terminal liegt in der Verantwortung von tmux. Ihr Screenshot sieht so aus, als ob es einen gibt

  1. tmux denkt fälschlicherweise, dass das Terminal eine Zelle breiter ist als es tatsächlich ist.
  2. Es gibt ein Zeichen, für das tmux glaubt, es sei eine Zelle breit, und der Terminalemulator glaubt, es sei zwei Zellen breit.

Powerline kann damit nichts anfangen. Sie können das Problem umgehen, indem Sie einen anderen Zeichensatz top_level auf ascii oder nur ein beleidigendes Zeichen herausfinden und überschreiben). Dies ist jedoch ein tmux-Fehler.

Sieht so aus, als ob @frol auch auf Gnome ist. Ich hatte keine Probleme mit tmux 2.3.1, das laut Arch-Paketmanagern am 30. September aktualisiert wurde. Sieht eher nach einem Problem mit dem Gnome-Terminal und möglicherweise der Stromleitung aufgrund eines mysteriösen Fehlers aus. tmux ohne Powerline funktioniert in Gnome 3.22 einwandfrei.

Funktioniert gut mit urxvt!

In powerline.json ändern:

image

zu

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

@mrmodolo Ja , das hilft!

@burningTyger Ich verwende testing Repos, also habe ich am selben Tag Tmux 2.3.1 und Gnome 3.22 bekommen und dachte nur, dass es Tmux-Inkompatibilität ist, aber es scheint, dass ich falsch lag.

@mrmodolo das vorherige Zeichenfolge leer gelassen, wodurch sie auch

In meiner Konfiguration ist "" das UTF8- Zeichen f017 .
Sie können das Symbol in VIM drucken:
Wechseln Sie in den Einfügemodus.
STRG + v und geben Sie dann uf017 ein

Welches Unicode-Zeichen ist das Uhrensymbol, das Probleme verursacht (in einem Screenshot mit gelbem Hintergrund in einem vorherigen Kommentar)?

(Hinweis: U + F017 befindet sich im Bereich für den privaten Gebrauch. Auf meinem System wird es ähnlich wie das Tilde-Symbol (~) angezeigt. Vielleicht wird dieses Symbol jedoch als Uhr auf Ihrem System angezeigt. Wenn ja, was hat @ getan?

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

Im VIM-Typ:
STRG + v und geben Sie dann uf231A ein

Jetzt habe ich das!
image
Ich benutze Arch, aber Ubuntu verwendet standardmäßig  in Powerline!

Also ... verstehe ich das richtig:

  • mit U + 231A funktioniert es falsch,
  • mit U + F017 statt an derselben Position funktioniert es richtig?

(Oder ist es umgekehrt? Tut mir leid, dass ich ziemlich verloren bin.)

In meinem Fall funktioniert U + F017 an derselben Position einwandfrei!
Meine Konfigurationsdatei lautet:

"Zeit": {
"vor": ""
},

Als ich zuerst den Gnome-Terminal-Bugreport las, dachte ich, es sei eine Bash / Zsh-Powerline-Eingabeaufforderung, die sich schlecht benahm. Wenn ich mir den Screencast hier ansehe, sehe ich eher, dass es sich um eine Powerline-TMux-Statusleiste handelt.

Könnte mich bitte jemand auf die schnellste und kürzeste Dokumentation verweisen, die ich befolgen sollte, um tmux für Powerline zu konfigurieren (damit ich diesen Fehler reproduzieren kann)? Ich habe noch nie Powerline verwendet und bin auch mit tmux kaum vertraut. Google liefert viel zu viele Ergebnisse. Ich bin froh, dieses Problem zu debuggen, aber ich habe keine Zeit, mich mit dem Powerline-Ökosystem vertraut zu machen. Danke im Voraus!

Ich benutze arch ...
yaourt -S Python-Powerline

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

Wenn das Problem mit tmux darin besteht, dass U + 231A breiter ist als das GNOME-Terminal, sollte das Problem ohne Stromleitung perfekt reproduzierbar sein: Stellen Sie einfach sicher, dass eine Option status- dieses Symbol enthält (Hinweis: Ich bin nicht sicher, ob und welche Rendering-Optimierungen tmux verwendet, also sollte status-right etwas enthalten).

Danke für die Auskunft!

Ich bin auf Ubuntu Yakkety (gtk + gnome 3.20 / glib 2.50.0 [das zu gnome 3.22 gehört] / glibc 2.24) mit tmux-2.3 und gnome-terminal / vte git manuell kompiliert. Ich kann diesen Fehler nicht reproduzieren (weder mit Powerline noch mit einem einfachen Statusrecht).

Wenn das Problem darin besteht, dass tmux denkt, dass U + 231A breiter ist, denkt das GNOME-Terminal

Dies würde das aktuelle Problem nicht erklären. Dann würde tmux ein Zeichen weniger drucken (weil es denkt, dass eines breiter ist) und daher nicht die gesamte Breite ausfüllen. Ich denke, es ist das Gegenteil: tmux hält es für einen normalen Charakter, während gnome-terminal es für doppelt breit hält. Daher läuft es über.

Wie unter https://bugzilla.gnome.org/show_bug.cgi?id=762052#c30 angegeben , verwendet gnome-terminal (vte) g_unichar_iswide () anstelle von wcwidth () (das von xterm und wahrscheinlich auch von tmux verwendet wird). .

Könnten Sie bitte diese versuchen:

echo $'\u231A' | wc -L

Dies gibt die wcwidth () von glibc aus. Ich gehe davon aus, dass die Ausgabe 1 sein wird.

echo ABCDE; echo a$'\u231A'cde

Sind Groß- und Kleinbuchstaben richtig ausgerichtet? Ich denke, dass sie es in xterm tun, während sie es im Gnome-Terminal nicht tun (die Uhr belegt 2 Zellen).

Könnten Sie bitte Ihre Version von glib und glibc teilen? Meine wilde Vermutung ist, dass Sie glib 2.50.1 haben, dessen Änderungsprotokoll "Unicode-Unterstützung auf Unicode 9.0.0 aktualisieren" und möglicherweise Unicode 9.0.0 die Breite dieses Codepunkts erhöht.

Sieht so aus, als ob meine wilde Vermutung wahr war:

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

Die Codepunkte für Uhr und Sanduhr (und vielleicht noch viel mehr) wurden durch Unicode 9.0.0 erweitert.

gnome-terminal verwendet die neue Breite, wenn es mit glib 2.50.1 oder neuer ausgeführt wird, während xterm und tmux auf glibc basieren, dessen neueste Version (2.24) immer noch die alte Breite verwendet.

Ich kann den hier verlinkten Gnome-Terminal-Fehlerbericht nicht finden, daher dient er hier als Referenz:
https://bugzilla.gnome.org/show_bug.cgi?id=772812
https://bugzilla.gnome.org/show_bug.cgi?id=772890

Sind Groß- und Kleinbuchstaben richtig ausgerichtet? Ich denke, dass sie es in xterm tun, während sie es im Gnome-Terminal nicht tun (die Uhr belegt 2 Zellen).

Es gibt noch einen weiteren möglichen Fehler, den ich mit diesem Symbol habe: Sowohl konsole als auch tmux denken, dass es eine Zelle breit ist, aber die Schriftwiedergabebibliothek wird nicht (kann nicht?) Angewiesen, sie in diese Anzeigezelle zu skalieren (die tatsächliche Glyphe wird entnommen eine andere Schriftart, weil der Terminus diese Glyphe nicht hat), was zu so etwas führt

e is off compared to E

. Dies führt nicht zu den Problemen, die hier auftreten, aber dies kann dazu führen, dass Ihr Test zu falschen Ergebnissen führt.

konsole ist der einzige Emulator, von dem ich weiß, dass er so verrückt ist, sich nicht an Zellen auszurichten.

In allen anderen Emulatoren kann das Uhrensymbol in die Zelle von c überlaufen, aber die Buchstaben liegen genau untereinander: entweder Cc, Dd, Ee oder (wie ich es im Gnome-Terminal mit glib-2.50 erwarte .1) DC und Ed werden ausgerichtet.

Ich habe das gleiche Problem auf Termite mit Arch x86 + tmux. Das Bearbeiten des Überwachungssymbols in Themes / Powerline.json ändert jedoch nichts.

Erschien heute in Debian Stretch (Test). Ich benutze LXDE und Tilda.
tmux version 2-3-1
Tilda Version 1.3.1-1 + b1

Ich weiß wirklich nicht, an welchen glib / glibc-Paketen Sie interessiert sind, also habe ich einen Screenshot gemacht:
zrzut ekranu z 2016-10-19 14-10-01

Update: Dies ist die Schriftart _Liberation Mono für Powerline_, aber die Ausgabe von _Linux Libertine Mono_ ist dieselbe (und vermutlich auch die anderer).

Bearbeiten: Das Bearbeiten des Uhrensymbols (U + 231A oder U + F017) funktioniert auch bei mir nicht. Irgendwelche Vorschläge?
Edit2: In meinem Screenshot habe ich mich geirrt und wc -l anstelle von wc -L , aber in diesem Beispiel ist die Ausgabe dieselbe. 1.
Edit3: Endlich funktioniert tmux + powerline wieder, danke! Uhrzeichen gelöscht von/ usr / local / lib / ..., wie oben erwähnt und von Die lokale Datei meines Benutzers in
~/.local/lib/python2.7/site-packages/powerline/config_files/themes/powerline.json
Nach dem Neustart funktioniert es wie ein Zauber.

@dunemkk , was meinst du mit dem Löschen der Uhr in / usr / local / lib?

@ s0r00t Mein schlechtes. Mein Kommentar wurde aktualisiert.
Jetzt sehe ich, dass dieser Ort überhaupt nicht erwähnt wurde.

Zuerst wusste ich nicht einmal, dass ich eine powerline.json -Datei im Verzeichnis meines Benutzers habe. Ich habe festgestellt, dass die Datei in ist
/usr/local/lib/python2.7/dist-packages/powerline/config_files/themes/powerline.json
(da ich für zsh / tmux / vim eine ähnliche Positionsbindungs-Powerline verwendet habe) und mich nicht darum gekümmert habe, zu überprüfen, ob sie sich irgendwo anders in meinem System befindet. Wahrscheinlich hat es deshalb nicht funktioniert. ; P.

Das Engagement von ahaasler hat mir geholfen: https://github.com/ahaasler/dotfiles/commit/aafef1f7a0b5a1d398c8ac33062b5d223b9a25a6

Danke, ich habe es behoben.

Lief wie am Schnürchen.
Zu Ihrer Information :

Andere mögliche, aber nicht getestete Zeichen sind:
U + 23F0 (Wecker)
U + 1F570 (Kaminsimsuhr)
U + 1F570 bis U + 1F567 (Div. Zifferblätter)

Danke für die Arbeit!

Da dies immer noch problematisch ist, können OS X / macOS-Benutzer in einer neuen Version von iTerm2 auf dieses Problem stoßen, wenn in Ihrem Profil die Zeichenbreite für Unicode Version 9 verwendet wird. Die Problemumgehung besteht darin, das Kontrollkästchen unter "Einstellungen" -> "Profile" zu deaktivieren -> Text -> Unicode.

Dieses Problem plötzlich auf Ubuntu 16.10 zu haben - letzte Woche ist dies nicht geschehen. seltsam. Wahrscheinlich hat sich während eines Apt-Get-Updates oder eines Pip-Upgrades etwas geändert.

Also, was ist die offizielle Lösung?

@binarykitchen gleich hier seit gestern auch!

Eine Lösung gefunden

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

Bearbeiten Sie dann ~ / .config / powerline / theme / powerline.json und suchen Sie einen Block mit der Aufschrift:

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

Ich habe den Wert für "vor" durch "◴" ersetzt.

@CVirus danke aber in meinem Fall gab es schon diesen Watch Char.

Aber ich hatte die JSON-Datei nicht in meinem .config-Ordner ... könnte das die Ursache sein?

Und einige Kommentare oben in diesem Thread besagen, dass das Uhrzeichen entfernt oder ersetzt werden soll. Verwirrt.

@binarykitchen Ersetzen Sie die Uhr, die Sie haben, durch die, die ich eingefügt habe, oder durch eine andere Figur

@CVirus reicht aus - muss ich nach dem Ersetzen des Zeichens etwas neu starten, um zu verdeutlichen? meine Maschine, die zsh-Sitzung?

und um klar zu sein, passiert es nur während einer tmux-Sitzung mit meinem Remote-Server. und ich korrigiere nur diesen json auf meiner Seite, dem Client, nicht auf der Serverseite.

Gib mir Bescheid ...

@binarykitchen Sie müssen den Prozess neu starten, in dem Powerline lebt. Höchstwahrscheinlich bedeutet dies Powerline-Daemon, aber nicht Shell oder TMXX. Obwohl zsh hier etwas Besonderes ist: Wenn Sie zpython installiert haben, befindet sich powerline in einem Shell-Prozess. Dies ist nur dann wahrscheinlich, wenn Sie zpython selbst installiert haben.

@ ZyX-ich danke - keine Ahnung, ob ich zpython installiert habe und übrigens, ich habe Powerline über apt-get installiert, nicht pip.

und zu meiner letzten Frage: "Es passiert nur während einer tmux-Sitzung mit meinem Remote-Server" - wie kann ich herausfinden, ob das Powerline-Problem auf der Client- oder Serverseite liegt?

@binarykitchen Welche Anwendung auch immer Powerline verwendet, sie verwendet Powerline auf der Seite, auf der sie ausgeführt wird.

@ ZyX-I "Unabhängig davon, welche Anwendung Powerline verwendet, wird Powerline auf der Seite verwendet, auf der sie ausgeführt wird."

-> Mein Problem ist, dass ich, wenn ich eine SSH-Sitzung über TMX ausführe, anfange zu glauben, dass es ein Problem mit der Powerline-Installation auf der Serverseite ist. Aber je mehr ich über Powerline lese, desto mehr denke ich, dass es sich um ein clientseitiges Problem handelt. es ist wirklich abstrakt ...

habe meinen Computer neu gestartet und der Fehler tritt immer noch auf - irgendwelche anderen Hinweise? hier verzweifelt ...

Wenn ich nicht bald eine richtige SSH-Sitzung haben kann, um meinen Server zu überprüfen, muss ich powerline deinstallieren :(

Ich habe nur die Stoppuhr anstelle der Uhr verwendet, um dies zu beheben. Also habe ich in /usr/share/powerline/config_files/themes/powerline.json diese Zeilen geändert

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

zu

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

@binarykitchen Die Konfiguration wird von der eingeschalteten Stromleitung der Maschine übernommen. Das Anzeigen des Symbols erfolgt auf dem Client. Derzeit wird vorgeschlagen, die Konfiguration zu ändern.

Wenn Sie keine Designs konfiguriert haben, aktualisieren Sie einfach alle Stromleitungen, um die Version zu entwickeln. Jetzt wird standardmäßig ein Design ohne problematische Symbole verwendet.

versuchte die Stoppuhr zu reparieren, aber nein, das hat nicht geholfen

Ich glaube, ich werde Powerline einfach deinstallieren - sorry Leute

@binarykitchen Vielleicht verwenden Sie einfach ein Leerzeichen anstelle von

@binarykitchen Nur das Ändern der Datei reicht nicht aus. Sie müssen Powerline auch dazu bringen, die neue Konfiguration zu verwenden (möglicherweise ist ein Neustart am einfachsten). Vielleicht ist es ein Powerline-Daemon, der die alten Einstellungen verwendet, so dass das Töten auch funktionieren kann, aber ich bin mir nicht sicher.

@ liuhuiping2013 hast du die obigen Kommentare überhaupt gelesen?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen