Recursive: Powerline-Glyphe für Git Branch

Erstellt am 13. Juni 2020  ·  17Kommentare  ·  Quelle: arrowtype/recursive

Hi,
Könnten Sie bitte erwägen, die Powerline-Glyphe für den Git-Zweig hinzuzufügen, wenn möglich?

Betriebssystem: Windows 10
Terminal: VS Code Integriertes Terminal
Rekursive Version: v1.051

Cascadia-Code:
image

Rekursives Mono:
image

Vielen Dank

enhancement – planned

Hilfreichster Kommentar

@otherjoel Ich stimme zu, aber das sollte wahrscheinlich ein neues Problem sein. Box-Zeichnungs-Glpyhs sind in einer anderen Kategorie als Powerline-Zeug.

Alle 17 Kommentare

Das ist eine gute Idee, danke!

Es sieht so aus, als ob das Windows-Terminal noch keine Fallback-Schriftarten unterstützt, aber vielleicht wäre es hilfreich, unter https://github.com/microsoft/terminal/issues/1790 eine Reaktion darauf zu stimmen / hinzuzufügen, um diese Bemühungen zu fördern. :)

Hinweis für später: Scheint so, als ob https://github.com/ryanoasis/nerd-fonts eine Möglichkeit wäre, dies zu tun

Anmerkungen:

Es gibt weniger Powerline-Glyphen, die mir aufgefallen sind – ich dachte, sie könnten viele Box-Drawing-Glyphen enthalten, aber es sind im Grunde 8 nützliche Glyphen, dann eine Reihe von Glyphen, die nur für ... Stil zu sein scheinen?

Von Nerd-Schriften Powerline-Schriften , hier ist die Grundausstattung:

image

...und die "Extras":

image

Ein Screenshot von der Powerline-Website zeigt einige davon im Kontext, als Elemente, die scheinbar nur der Dekoration dienen (anstatt den Systemstatus usw.):

image

Von Cascadia Code ist hier der Glyphensatz, der so angepasst ist, dass er in Einheiten mit einfacher Breite passt:

image

Wenn/wenn ich diese zu Recursive hinzufüge, hätte ich ein paar Ziele:

  • Fügen Sie sie nur beim Normalgewicht hinzu
  • Passen Sie den Stil der Kernglyphen möglicherweise leicht an Rekursive an, und geben Sie ihnen sogar eine Casual-Achse
  • Passen Sie ihre Gesamtgröße so an, dass sie gut mit Recursive funktioniert
  • Lassen Sie sie wahrscheinlich in einem Postprozess zu den Rec Mono Code-Schriften hinzufügen, anstatt sie in die Hauptschriftarten aufzunehmen

Es kann hilfreich sein, den Cascadia-Code-Merging-Ansatz zu verwenden:

def step_merge_glyphs_from_ufo(path):
    def _merge(instance):
        ufo = ufoLib2.Font.open(path)
        print(f"[{instance.info.familyName} {instance.info.styleName}] Merging {path}")
        for glyph in ufo.glyphOrder:
            if glyph not in instance.glyphOrder:
                instance.addGlyph(ufo[glyph])

    return _merge

...wobei ich mir auch das Zusammenführen von TTFs mit FontTools anschauen möchte. Was mit dem Zusammenführungstool von FontTools eigentlich ganz einfach sein könnte!

Entwurfsschritte: Erstellen Sie eine Verzweigung powerline , dann ...

  1. Beginnen Sie mit den Powerline-Glyphen von Cascadia Code
  2. Passen Sie dies auf 1000 UPM und Glyphen auf 600 Einheiten Breite an
  3. Verwenden Sie Skalierungstransformationen, um die Glyphen auf die richtige Höhe zu bringen (berechnen Sie wahrscheinlich die erforderliche prozentuale Transformation und transformieren Sie dann alle Glyphen). Was ist die richtige Höhe? Schwer zu wissen ... möglicherweise wäre es hilfreich, Aaron Bell zu fragen, und möglicherweise würde es nur eine Einbindung in Rec Mono und ein Testen erfordern. Aber das geht vielleicht über "Designschritte" hinaus.
  4. Unterteilen Sie in drei Schriftarten: powerline-extras.ufo , powerline-base-casual.ufo und powerline-base-linear.ufo . Legen Sie diese in einen neuen Ordner unter src/ufo/powerline
  5. Passen Sie die Versionen "Casual" und "Linear" der Hauptglyphen an:

    • Lassen Sie die Glyphe "Zweig" einen rekursiven Pfeil haben, aber lassen Sie ihn verbunden, da er für viele Details zu klein ist

    • Die Glyphen LN und CN können angepasste rekursive Obergrenzen erhalten. Wahrscheinlich sollte das "C" eher der Kleinbuchstabenform entsprechen, um eine offene Form beizubehalten (aber nicht das rechteckige Ding, das typischerweise in PL-Glyphen verwendet wird).

    • Machen Sie die Glyphe "Sperre", wenn möglich, nicht hässlich (schwer zu sagen, was sich ändern sollte ... wahrscheinlich sollte es nur Ecken und Umrisse im rekursiven Stil erhalten)

  6. Machen Sie im powerline-extras einen gleichmäßigen Abstand in den Höhenlinien – z.

image

  1. Machen Sie einen Pull Request mit diesem Branch in main

Wir haben hier mit der PR https://github.com/arrowtype/recursive/pull/407 gute Fortschritte gemacht

Als nächstes werde ich daran arbeiten, dies in das Build-System für Rec Mono-Schriften einzufügen (zB https://github.com/arrowtype/recursive-code-config).

Ansatz werde ich hier versuchen:

  • Export von Powerline-spezifischen UFOs in einfache TTFs
  • Verwenden Sie den FontTools Merger, um diese mit den Code-TTFs zusammenzuführen

Das funktioniert teilweise! Ich habe hier ein Startskript: https://github.com/arrowtype/recursive-code-config/blob/5260e83be9669e6e6cce4ea1e89510af6d11462f/scripts/merge-powerline-ttfs.py

Es gibt jedoch einen lustigen (etwas dummen) Fehler, der verhindert, dass die "Zweig"-Glyphe mit Rekursiv angezeigt wird: Die Glyphe existiert bereits in den Schriftarten, aber nur als leere Glyphe (im Grunde wie ein Wortraum). Dies liegt wahrscheinlich daran, dass ich die Glyphe früher hinzugefügt habe, um sie mit einer rekursiven Verzweigungszeichnung zu füllen.

Dies führt jedoch dazu, dass dieses Symbol als Leerzeichen angezeigt wird, wenn Rekursiv mit einem PowerLine-Design verwendet wird. 💀

image

Der Fix ist einfach, wird aber etwas Zeit in Anspruch nehmen, um einen neuen Build und eine neue Version zu ermöglichen. Ich werde:

  • [x] Entfernen Sie das leere uniE0A0 in den rekursiven Quellen und erstellen Sie dann eine neue Version der variablen Schriftart.
  • [x] neue RecMono Code-Schriften generieren
  • [ ] Passen Sie
  • [ ] Verbessern Sie dann das Merger-Skript in recursive-code-config, um die Powerline-Glyphen mit allen Schriftstilen zusammenzuführen, und teilen Sie linear und lässig auf. _herunterbewegt_

Ich denke, das könnte alles sein! 🤞 Oder es könnte mehr Nachforschungen erfordern.

Es funktioniert auf einer einfachen Ebene!

image

Ich muss noch:

  • [ ] Passen Sie das Zweigsymbol etwas dicker/größer an. Ich werde wahrscheinlich immer Worträume zu beiden Seiten haben, damit es seine Grenzen ein wenig überschreiten kann
  • [ ] Versuchen Sie bei gegebenen Pfeil- / Dreieck-Glyphen einen kleinen flachen Teil oben und unten sowie ein bisschen Überlauf nach links, um zu sehen, ob dies die leichte Fehlausrichtung hier vermeidet (was auf "Hinweise" / Antialiasing-Zeug vom System zurückzuführen sein kann) )
  • [ ] Passen Sie die Schriftmetriken der Powerline-UFOs an und bauen Sie die TTFs neu auf
  • [ ] Verbessern Sie dann das Merger-Skript in recursive-code-config, um die Powerline-Glyphen mit allen Schriftstilen zusammenzuführen, und teilen Sie linear und lässig auf.

Designkorrekturen sind noch erforderlich:

  • [ ] Passen Sie die linke Seite der Glyphe „Zweig“ an, um das visuelle Gewicht der rechten Seite auszugleichen

image

  • [x] innere Zeilen dieser Blöcke korrigieren uniE0CC uniE0CD :

image

Technische Hinweise zu den .stypo Suffixen im Cascadia-Code: https://twitter.com/ArrowType/status/1313594838462484481

TLDR: In stimmen die .stypo Glyphen mit den Tippfehler-Metriken überein und werden mit der rclt OpenType-Funktion aktiviert.

Mir:

Ich sehe, dass das Cascadia Code PowerLine UFO sowohl normale als auch "Stypo" -Versionen von PL-Glyphen hat.

  1. Die Stypo-Versionen sind wahrscheinlich für Einstellungen wie das VScode-Terminal mit kürzeren Zeilenhöhen, ja?

  2. Wie funktioniert das?

Vielen Dank für alle Einblicke!

Aaron Bell:

Windows Terminal (und andere) implementieren das useTypoMetrics-Flag korrekt, daher besteht die Idee der sTypo-Versionen darin, die Höhen so anzupassen, dass sie mit den sTypo-Metriken übereinstimmen.

Für andere Systeme, die dieses Flag nicht respektieren, würden sie die normalen Versionen sehen.

Leider bin ich mir nicht ganz sicher, ob es tatsächlich wie beabsichtigt funktioniert (https://github.com/microsoft/cascadia-code/issues/310). Es wird durch die Tatsache erschwert, dass Codierungseditoren mit der Größe von Glyphen verheerende Auswirkungen haben, um alles in eine standardisierte Box zu passen.

(Ich postulierte, dass ein System, das fortgeschritten genug ist, um das useTypoMetrics-Flag zu verstehen / zu respektieren, auch fortgeschritten genug ist, um die rclt-Funktion zu verstehen / zu implementieren (die standardmäßig aktiviert sein sollte). Und eines, das nicht intelligent genug ist, um sTypo zu implementieren, würde es nicht tun rclt implementieren.)

Wenn Sie eine Idee haben, wie Sie es besser umsetzen können, würde mich das auf jeden Fall interessieren! Es ist mühsam, die PL-Zeichen konsistent auszurichten, wenn Sie zwei verschiedene Metriksätze haben.

Es gibt weniger Powerline-Glyphen, die mir aufgefallen sind – ich dachte, sie könnten viele Box-Drawing-Glyphen enthalten, aber es sind im Grunde 8 nützliche Glyphen, dann eine Reihe von Glyphen, die nur für ... Stil zu sein scheinen?

Es wäre wirklich schön, die Box-Drawing-Glyphen zu haben, vielleicht könnte das nützlich sein? https://github.com/adobe-type-tools/box-drawing

@otherjoel Ich stimme zu, aber das sollte wahrscheinlich ein neues Problem sein. Box-Zeichnungs-Glpyhs sind in einer anderen Kategorie als Powerline-Zeug.

Hallo @arrowtype , danke für die Umsetzung dieser Anfrage,

Möchten Sie dieses Problem offen halten oder glauben Sie, dass ich dieses Problem basierend auf Version 1.066 schließen kann?

image

Danke, @krish-r! Ich werde dies vorerst offen halten, da ich immer noch unterschiedliche Größen der Stromleitungsglyphen implementieren möchte, die wahrscheinlich in bestimmten Terminals wie dem integrierten Terminal in VS Code angezeigt werden.

Wenn man sich näher damit befasst, scheint es sich um ein VS Code-Problem zu handeln , das auch Schriftarten wie Cascadia Code & Fira Code (und viele andere) betrifft. Dies wiederum scheint ein Problem beim Rendern von Chrome-Text zu sein.

Die Ausrichtung ist im macOS-Terminal und in iTerm2 sehr gut, daher werde ich dieses Problem schließen und ein neues Problem erstellen, um

macOS-Terminal:

image

iTerm2:

image

Übrigens, nach einigen meiner Untersuchungen scheint Windows Terminal die rclt Funktion in der Befehlszeile nicht zu aktivieren, sondern in allen im Terminal gedruckten Inhalten:
https://github.com/microsoft/cascadia-code/issues/310#issuecomment -738209291

(Außerdem inspirierst du mich, zurückzugehen und einige dieser hässlichen Glyphen zu verbessern :))

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen