{ packages = { plugins = ( { name = "Risorizer.glyphsFilter"; title = "Risorizer"; url = "https://github.com/mekkablue/Risorizer"; description = "Effect plug-in for adding a Risograph-like effect on your shapes."; screenshot = "https://raw.githubusercontent.com/mekkablue/Risorizer/master/Risorizer.png"; }, { name = "MagicRemove.glyphsPalette"; title = "Magic Remover"; url = "https://github.com/mekkablue/MagicRemove"; description = "Magic Remover (de: *Magic-Löscher,* es: *Borrador magico,* fr: *Gomme magique,* pt: *Apagador mágico*) is a button in the right-hand side palette that enables multiple-master deletion of selected nodes, anchors and components. Deleting (any number of) nodes will try to keep the shape, similar to what happens when you individually delete nodes."; screenshot = "https://raw.githubusercontent.com/mekkablue/MagicRemove/master/MagicRemove.png"; }, { name = "NodesCloseToZones.glyphsReporter"; title = "Nodes Close To Zones"; url = "https://github.com/moontypespace/NodesCloseToZones-Glyphs"; description = "*View > Show Nodes Close To Zones* Highlights nodes which are close to an alignment zone but are neither in nor on the boundary of an alignment zone (sensitivity is ≤ 4 units distance).\n*Right Click > New Tab: Nodes Close to Zone* opens a new tab listing all glyphs with potentially misaligned nodes.\nWritten by Olli Meier"; screenshot = "https://raw.githubusercontent.com/moontypespace/NodesCloseToZones-Glyphs/553d3fa3eeaf5897bf65f6c9222b4eb6b17a3fe9/screenshot_nodesHighlighted.png"; }, { name = "GlobalGlyph.glyphsReporter"; title = "Global Glyph"; url = "https://github.com/Nevu/Show-Global-Glyph"; description = "*View > Show Global Glyph* displays the glyph named `_global` in the background of other glyphs. This can give an alternative to global guidelines. See GitHub for some craft tips"; screenshot = "https://raw.githubusercontent.com/Nevu/Show-Global-Glyph/master/ShowGlobalGlyph.png"; }, { name = "GaugeTool.glyphsTool"; title = "Gauge Tool"; url = "https://github.com/weiweihuanghuang/GaugeTool"; description = "The tool shows an oval for a mouse cursor which can be used to gauge the width of strokes."; screenshot = "https://raw.githubusercontent.com/weiweihuanghuang/GaugeTool/master/images/gaugetool.gif"; }, { name = "Shadow.glyphsFilter"; url = "https://github.com/mekkablue/Shadow"; description = "*Filter > Shadow* (de: *Schatten*, fr: *Ombreur*, nl: *Schaduw*, es: *Sombrear*, zh: *🌖阴影*) turns your glyphs into shadowed versions of themselves."; screenshot = "https://raw.githubusercontent.com/mekkablue/Shadow/master/Shadow.png"; }, { name = "ShowItalic.glyphsReporter"; title = "Show Italic"; url = "https://github.com/mekkablue/ShowItalic"; description = "*View > Show Italic* (de: *Kursive*, es: *itálicas*, fr: *italique*, zh: *🥂意大利体*) displays the italic counterpart of the current upright glyph in Edit view (and vice versa), given that both the Upright and Italic fonts are opened in Glyphs, and given that the other font contains a glyph with the same name. It is useful for stepping through the glyphs and checking if there is an undesired deviation, e.g., a different diacritic height or different descender depth."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowItalic/master/ShowItalic.png"; }, { name = "SmartPlumblines.glyphsReporter"; title = "Smart Plumblines"; url = "https://github.com/Mark2Mark/Show-Smart-Plumblines"; description = "*View > Show Smart Plumblines* displays **live guidelines** at the center of each paths’ (red) and components’ (grey) bounding box.\nIf you select anything, it also displays the center of that selection (blue dashed).\nOne major feature is that the guidelines **automatically match your italic angle**.\nThis is useful for aligning objects by sight. As well as:\n\n- Align multiple paths and/or components\n- Setting up horizontal positions of anchors\n- Editing segments while easily keeping italic angle, etc.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Glyphsapp-Plugins/Screenshots/Screenshots/SmartPlumblines/SmPlL%2012.png?raw=true"; }, { name = "ShowDistanceAndAngleOfNodes.glyphsReporter"; title = "Show Distance and Angle"; url = "https://github.com/Mark2Mark/Show-Distance-And-Angle-Of-Nodes"; description = "Shows the distance and angle of 2 selected elements. Those can be nodes, but also components or anchors and they don’t have to be of the same kind.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Show-Distance-And-Angle-Of-Nodes/master/Images/Distance_And_Angle_01.png?raw=true"; }, { name = "RedArrow.glyphsReporter"; title = "Red Arrow"; url = "https://github.com/jenskutilek/RedArrow-Glyphs"; description = "*View > Red Arrows:* Now Glyphs users can also have red arrows!\nThis plugin points at possible outline errors, like FontAudit in FontLab Studio. This version works in Glyphs 2.3 and newer. When the plugin is active, red arrows will point to possible mistakes in your outlines."; screenshot = "https://raw.githubusercontent.com/jenskutilek/RedArrow-Glyphs/master/screenshot.png"; }, { name = "DrawBot.glyphsPlugin"; url = "https://github.com/schriftgestalt/DrawBotGlyphsPlugin"; description = "DrawBot inside Glyphs.\nMake a new drawBot from *File > New DrawBot,* or open a `.py` file with Cmd-O. *File > Save* as usual. Run the script by hitting the Run button (or pressing Cmd-⏎). Clean the output area by pressing Cmd-K.\n\nTo save a drawing as pdf, hit Cmd-E (*File > Export…*)"; screenshot = "https://raw.githubusercontent.com/schriftgestalt/DrawBotGlyphsPlugin/master/GlyphsLogoDrawBot.png"; }, { name = "ShowTopsAndBottoms.glyphsReporter"; title = "Show Tops and Bottoms"; url = "https://github.com/mekkablue/ShowTopsAndBottoms"; description = "*View > Show Tops And Bottoms* (es: *superiores e inferiores*, de: *Höchste und tiefste Stellen*, nl: *hoogste en laagste plekken*, fr: *les hauts et les bas*, zh: *🚧底部到顶点的数值*) displays the bounding box tops and bottoms for each glyph in the Edit view, and marks them red if they are not inside an alignment zone. Also highlights nodes *inside* zones if they are missing a metric line by 1 unit."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowTopsAndBottoms/master/ShowTopsAndBottoms.png"; }, { name = "OffsetPreview.glyphsReporter"; title = "Offset Preview"; url = "https://github.com/mekkablue/ShowOffsetCurveParameterPreview"; description = "*View > Show Offset Curve Parameter Preview* calculates the *GlyphsFilterOffsetCurve* parameters in active instances for the given glyph and draws those instances behind your paths. It quietly adds extremum and inflection nodes to your preview outlines. But it does not give you a full preview of the final instance, because it does not show the effect of any other parameters. It is focused on helping you spot path offset problems."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowOffsetCurveParameterPreview/master/OffsetPreview.png"; }, { name = "ShowInterpolation.glyphsReporter"; title = "Show Interpolation"; url = "https://github.com/mekkablue/ShowInterpolations"; description = "*View > Show Interpolations* (de: *Interpolationen*, es: *interpolaciones*, fr: *interpolations*, zh: *💗插值*) calculates all active instances for the given glyph and draws them behind your paths."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowInterpolations/master/ShowInterpolations.png"; minVersion = 944; }, // { // name = "ShowHandlesEverywhere.glyphsReporter"; // title = "Show Handles Everywhere"; // url = "https://github.com/mekkablue/ShowHandlesEverywhere"; // description = "*View > Show Handles Everywhere* displays **nodes & handles** for paths **in the background** (if *View > Show Background* is on), **on other layers** (if the layer is set to visible) as well as **in inactive glyphs** surrounding the current glyph (if *View > Fill Preview* is off)."; // screenshot = "https://raw.githubusercontent.com/mekkablue/ShowHandlesEverywhere/master/ShowHandlesEverywhere.png"; // }, { name = "ShowFilledPreview.glyphsReporter"; title = "Show Filled Preview"; url = "https://github.com/mekkablue/ShowFilledPreview"; description = "*View > Show Filled Preview* fills open paths with a dark gray color even while you are still drawing."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowFilledPreview/master/ShowFilledPreview.png"; }, { name = "ShowExportStatus.glyphsReporter"; title = "Show Export Status"; url = "https://github.com/mekkablue/ShowExportStatus"; description = "*View Show Export Status* displays a red cross over non-exporting glyphs in Edit View."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowExportStatus/master/ShowExportStatus.png"; }, { name = "ShowDistanceBetweenTwoPoints.glyphsReporter"; title = "Show Distance Between two Points"; url = "https://github.com/mekkablue/ShowDistanceBetweenTwoPoints"; description = "*View > Show Distance Between Two Points* displays the distance between two selected nodes when exactly two points are selected, ignoring intersections in between."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowDistanceBetweenTwoPoints/master/ShowDistanceBetweenTwoPoints.png"; }, { name = "ShowCoordinatesOfSelectedNodes.glyphsReporter"; title = "Show Coordinates of Selected Nodes"; url = "https://github.com/mekkablue/ShowCoordinatesOfSelectedNodes"; description = "*View > Show Coordinates of Selected Nodes* displays coordinates for selected on-curve nodes, as well as length and angle of the surrounding handles and line segments."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowCoordinatesOfSelectedNodes/master/ShowCoordinatesOfSelectedNodes.png"; }, { name = "ShowComponentOrder.glyphsReporter"; title = "Show Component Order"; url = "https://github.com/mekkablue/ShowComponentOrder"; description = "*View > Show Component Order* displays components in different colors depending on the order of the component. This way, you can step through your component-based glyphs (fn-arrows or Home/End on large keyboards) and quickly spot an order mistake."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowComponentOrder/master/ShowComponentOrder.png"; }, { name = "ShowAngledHandles.glyphsReporter"; title = "Show Angled Handles"; url = "https://github.com/mekkablue/ShowAngledHandles"; description = "*View > Show Angled Handles* (de: *Schräge Anfasser*, es: *manejadores inclinados*, fr: *les poignées inclinées*, zh: *⚖️路径检查工具*) highlights BCPs (‘handles’) which are not horizontal or vertical, quite-but-not-completely-straight line segments, duplicate path segments, crossed handles, and zero handles. Options in the context menu."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowAngledHandles/master/ShowAngledHandles.png"; }, { name = "Retractor.glyphsFilter"; url = "https://github.com/mekkablue/Retractor"; description = "*Filter > Retractor* deletes (‘retracts’) all Bézier control points (a.k.a. BCPs, handles), making sure only straight line segments remain. This can be useful if you want to be certain that accidentally added curve segments are removed in designs where this is necessary. Careful: it does *not* respect your node selection. If you want to only retract selected BCPs, simply press Delete."; }, { name = "FixZeroHandles.glyphsFilter"; title = "Fix Zero Handles"; url = "https://github.com/mekkablue/FixZeroHandles"; description = "*Filter > Fix Zero Handles* analyses the path structure of selected layers and will rearrange path segments that contain completely retracted handles, a.k.a. ‘zero handles’. Zero handles typically appear in outlines imported from other vector apps, such as Adobe Illustrator. Zero handles are considered bad style, or even an error, and can cause a range of problems, especially when you are trying to convert your outlines to TrueType curves."; screenshot = "https://raw.githubusercontent.com/mekkablue/FixZeroHandles/master/FixZeroHandles.png"; }, { name = "Disguiser.glyphsFilter"; url = "https://github.com/mekkablue/Disguiser"; description = "*Filter > Disguiser* replaces the layer with a rectangle covering its bounds. This is useful for sharing files that contain sensitive designs. If invoked on a partial selection, the Disguiser will place a rectangle only over the selected parts."; screenshot = "https://raw.githubusercontent.com/mekkablue/Disguiser/master/Disguiser.png"; }, { name = "CutAndShake.glyphsFilter"; title = "Cut and Shake"; url = "https://github.com/mekkablue/CutAndShake"; description = "*Filter > Cut and Shake* exercises cuts across selected glyphs, and then both moves and rotates the resulting parts by random amounts, for which the user can specify maximums."; screenshot = "https://raw.githubusercontent.com/mekkablue/CutAndShake/master/CutAndShake.png"; }, { name = "BroadNibber.glyphsFilter"; title = "Broad Nibber"; url = "https://github.com/mekkablue/BroadNibber"; description = "*Filter > Broad Nibber* turns monolines of all selected glyphs into broad-nib strokes."; screenshot = "https://raw.githubusercontent.com/mekkablue/BroadNibber/master/BroadNibber.png"; }, { name = "InsertInflections.glyphsFilter"; title = "Insert Inflections"; url = "https://github.com/mekkablue/InsertInflections"; description = "*Filter > Insert Inflections* inserts nodes on all inflections of all selected glyphs. This is useful for monoline workflows, where inflected paths need to be expanded to a closed stroke; and for conversion into TrueType outlines."; screenshot = "https://raw.githubusercontent.com/mekkablue/InsertInflections/master/InsertInflections.png"; }, { name = "Inverter.glyphsFilter"; url = "https://github.com/mekkablue/Inverter"; description = "*Filter > Inverter* provides a GUI for inverting glyphs. It puts an enclosing rectangle around your glyphs, slanted to the italic angle. You can set the top and bottom edge, as well as its overlap beyond its sidebearings."; screenshot = "https://raw.githubusercontent.com/mekkablue/Inverter/master/Inverter.png"; }, { name = "LayerGeek.glyphsFilter"; title = "Layer Geek"; url = "https://github.com/mekkablue/LayerGeek"; description = '*Filter > Layer Geek* provides a GUI for batch-executing Python and PyObjC methods on selected layers. For an overview of what you can do, click on the GitHub link:'; screenshot = "https://raw.githubusercontent.com/mekkablue/LayerGeek/master/LayerGeek.png"; }, { name = "Noodler.glyphsFilter"; url = "https://github.com/mekkablue/Noodler"; description = "*Filter > Noodler* (de: *Nudler*, fr: *Nouilleur*, es: *Fileteador*, zh: *🍜等线圆体*) turns monolines of all selected glyphs into noodles with rounded stroke endings."; screenshot = "https://raw.githubusercontent.com/mekkablue/Noodler/master/Noodler.png"; }, { name = "ShowRotated.glyphsReporter"; title = "Show Rotated"; url = "https://github.com/Mark2Mark/Show-Rotated"; description = "*View > Show Rotated* Superimposes the current glyph as a rotated copy of itself. Context Menu slider to adjust the rotation angle.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Glyphsapp-Plugins/Screenshots/ShowRotated/Screenshots/ShowRotated03_Mark-Froemberg.gif"; }, { name = "ShowSiblings.glyphsReporter"; title = "Show Siblings (Light)"; url = "https://github.com/Mark2Mark/Show-Siblings"; description = "*View > Show Siblings* Superimposes a group of predefined glyphs in the background of your letters. This can be both pretty helpful in the beginning of a design as well as at intermediate progress where quick proof overview is needed. The degree of a desired match depends on each design, of course. Current Scripts: Latin, Greek, Cyrillic and »Twins« (glyph alternates like *g.ss01* or *g.alt.*\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Glyphsapp-Plugins/Screenshots/ShowSiblings/Screenshots/screencapDemoFont.gif"; }, { name = "SyncedTabs.glyphsReporter"; title = "Synced Tabs"; url = "https://github.com/Mark2Mark/SyncedTabs"; description = "*View > Show Synced Tabs* keeps all tabs from all open fonts in sync with the currently active tab. In **realtime!**. It is based on the **great idea and script** [Sync Edit Views.py](https://github.com/Tosche/Glyphs-Scripts/blob/master/Sync%20Edit%20Views.py) by [Tosche](https://github.com/Tosche).\n**Options**: Synchronize Tools as well: type\n`Glyphs.defaults[#com.markfromberg.syncedTabs.doSyncTools#] = True`\n(or `False`) in Macro panel and swap the # by inch-quotes.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Synced-Tabs/master/Images/SyncedTabs_Gintronic_MarkFroemberg_still.png"; }, { name = "BlindFold.glyphsReporter"; title = "Blindfold"; url = "https://github.com/Mark2Mark/Blindfold"; description = "*View > Show Blindfold* Blackens out everything beyond the xHeight (or Cap-Height --> option in context menu). Useful for Spacing and Kerning because the visible leftover is what matters the most here.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Glyphsapp-Plugins/11561cf20d110e314943e6294edf47defbdb73bc/Screenshots/UncoverXHeight/UcXh%2001.png?raw=true"; }, { name = "ArrangeWindows.glyphsPlugin"; title = "Arrange Windows"; url = "https://github.com/Mark2Mark/ArrangeWindows"; description = "*Window > Arrange Windows* does just what it says.\n**Options:**\n*Arrange Windows & Macro Panel* [Option Key].\n*Arrange Windows On Screens* [Shift Key] if 2 Fonts and 2 Screens are present.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/ArrangeWindows/master/ArrangeWindows.gif"; }, { name = "Presenter.glyphsReporter"; title = "Presenter (Free)"; url = "https://github.com/Mark2Mark/Presenter-Free"; description = "Let your fonts shine in all glory to present them and save as image in seconds.\nUnlock tons of more features in the [Pro Version](https://markfromberg.com/projects/presenter/) \nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Presenter-Free/master/images/Presenter-000-markFromberg.png"; }, { name = "LabelColor.glyphsReporter"; title = "Label Color"; url = "https://github.com/Mark2Mark/Show-Label-Color"; description = "*View > Show Label Color* Displays each glyphs’s Label Color in the edit tab. Full width or left: glyph color, right: layer color.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Show-Label-Color/d054d4d05d6f16b2be49f055f2b06b27725b81c8/Screenshots/Show%20Label%20Color%2001.png?raw=true"; }, { name = "ReporterToggler.glyphsPalette"; title = "Reporter Toggler"; url = "https://github.com/Mark2Mark/Reporter-Toggler"; description = "Adds a menu to the Palette, which gives you instant access to all your reporter plugins. Quick’n’easy on/off switching with just a single click.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Reporter-Toggler/master/Images/ReporterToggler%2002.png"; }, { name = "ShowKerningGroups.glyphsReporter"; title = "Show Kerning Groups"; url = "https://github.com/Mark2Mark/Show-Kerning-Group-Reference"; description = "*View > Show Kerning Groups* displays all members of the currently active glyph’s kerning group to either side in miniature and realtime. Useful when setting up kerning groups and getting visual feedback right away. If you see elements sticking out of the right group, you know there might be a group member set wrong. Same for the left side. It is somehow related to the built-in feature \"Show Group Members\" by Georg Seifert, but this one does not need the caret to sit between a certain pair.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Show-Kerning-Group-Reference/12fd9ffaa0447f742dabce60a407ece582e1d6b2/Screenshots/KGR%2001.png?raw=true"; }, { name = "ShowNextFont.glyphsReporter"; title = "Show Next Font"; url = "https://github.com/guidoferreyra/ShowNextFont"; description = "*View > Show Next Font* shows in a light orange colour the same glyph of another opened font. It could be useful for visual comparison of italics with normal styles,or different versions of the same font."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/ShowNextFont/master/screen-nextfont.png"; }, { name = "ShowAnchorsCompatibility.glyphsReporter"; title = "Show Anchors Compatibility"; url = "https://github.com/guidoferreyra/ShowAnchorsCompatibility"; description = "*View > Show Anchors Compatibility* is a complementary tool for Show Masters compatibility for those cases where the masters are not compatible because the absence of wrong naming of an anchor. The plugin displays a red circle behind the anchor that is not present in all masters."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/ShowAnchorsCompatibility/master/screen-anchorscompat.png"; }, { name = "ShowNextFontAnchors.glyphsReporter"; title = "Show Next Font Anchors"; url = "https://github.com/guidoferreyra/ShowNextFontAnchors"; description = "*View > Show Next Font Anchors* shows in a light orange colour the list of anchors used in the glyph of the next font and in gray colour the list of current font anchors.\nIf anchors names and quantity matches between fonts it display the word \"OK\" in green. Useful to compare versions of fonts or regular vs italics."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/ShowNextFontAnchors/master/screen-nextfontanchors.png"; }, { name = "showCoordinates.glyphsReporter"; title = "Show Coordinates"; url = "https://github.com/guidoferreyra/showCoordinates"; description = "*View > Show Coordinates* is similar to the Measurement tool, but it constantly displays the node coordinates and the handles' delta values."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/showCoordinates/master/screen-coordinates.png"; }, { name = "Kernkraft.glyphsPlugin"; url = "https://github.com/bBoxType/Kernkraft"; description = "*Glyph > Kernkraft* and *Glyph > Kernschmelze* will help you to be easily confronted with all the necessary pairs your Font provides (no matter how extended the character set is).\n\nProgrammed by Mark Frömberg (@Mark2Mark).\nPlease contact me for any issues or ideas.\nBased on the way of kerning by bBox Type GmbH (bboxtype.com).\n\nNavigate in UI with your keyboard: ←, → and ⏎. Save notes for later.\n\nDepends on `vanilla` module to be installed. Please install via Glyphs Preferences > Addons > Modules"; screenshot = "https://raw.githubusercontent.com/bBoxType/Kernkraft/master/Kernkraft%2002.png"; }, { name = "ShowStems.glyphsReporter"; title = "Show Stems (Light)"; url = "https://github.com/Mark2Mark/Show-Stems"; description = "*View > Show Stems* shows a measurement line (even in edit mode) with all distances between the outlines. If any distance matches the saved metrics in the Glyphs Palette, it will highlight in green and tell you which one it matches. The vertical position is attached to the Glyphsapp measurement line and can be moved around the same way.\nShortcut: Cmd-Opt-Ctrl-S (like **S**tems)\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Show-Stems/master/Images/Show%20Stems%2003.png"; }, { name = "Erode.glyphsFilter"; url = "https://github.com/simoncozens/Erode"; description = "*Filter > Erode* simulates wear and tear on your glyphs by rubbing away random bits of the outlines, especially around corners."; screenshot = "https://raw.githubusercontent.com/simoncozens/Erode/master/Erode.png"; }, { name = "Unitizer.glyphsReporter"; url = "https://github.com/impallari/Unitizer"; description = "*View > Show Unitizer* displays unit guidelines in the background (correspondong to a value that you can configure at will) of the current glyph in Edit view. This is helpful for working in unitized fonts."; screenshot = "https://raw.githubusercontent.com/impallari/Unitizer/master/unitizer01.png"; }, { name = "ShowNodeIndexes.glyphsReporter"; title = "Show Node Indexes"; url = "https://github.com/mekkablue/ShowNodeIndexes"; description = "*View > Show Node Indexes* (es: *listado de nodos*, de: *Indexnummern*, nl: *Indexgetallen*) shows index numbers for the current glyph in Edit view. Toggle display of BCP indexes via context menu."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowNodeIndexes/master/ShowNodeIndexes.png"; }, { name = "DeleteSmallPaths.glyphsFilter"; title = "Delete Small Paths"; url = "https://github.com/mekkablue/DeleteSmallPaths"; description = "*Filter > Delete Small Paths* (es: *Borrar trazados pequeños*, de: *Kleine Pfade löschen*, fr: *Supprimer les petits tracés*) deletes all paths smaller than a threshold value in square units. It can be useful for cleaning up glyphs from vector debris."; screenshot = "https://raw.githubusercontent.com/mekkablue/DeleteSmallPaths/master/DeleteSmallPaths.png"; }, { name = "RekhaViewer.glyphsReporter"; title = "Rekha Viewer"; url = "https://github.com/mekkablue/Rekha"; description = "*View > Show Rekha* shows a Rekha line in Bengali, Devanagari and Gumurkhi letters. It takes its values from a custom parameter in *File > Font Info > Masters* called *Rekha*, with comma-separated values for height, thickness and overshoot. If a *rekha* anchor is present in the glyph, it will use it as the left edge of the Rekha line."; screenshot = "https://raw.githubusercontent.com/mekkablue/Rekha/master/RekhaViewer.png"; }, { name = "RekhaMaker.glyphsFilter"; title = "Rekha Maker"; url = "https://github.com/mekkablue/Rekha"; description = "*Filter > RekhaMaker* inserts a Rekha line in Bengali, Devanagari and Gumurkhi letters. Supply values for height, thickness and overshoot, and press the *Insert* button. If a *rekha* anchor is present in the glyph, it will use it as the left edge of the Rekha line."; screenshot = "https://raw.githubusercontent.com/mekkablue/Rekha/master/RekhaMaker.png"; }, { name = "RemoveKerningExceptions.glyphsFilter"; title = "Remove Kerning Exceptions"; url = "https://github.com/mekkablue/RemoveKerningExceptions"; description = "*Filter > Remove Kerning Exceptions* removes all kerning exception of selected glyphs in the current master, leaving group kerning intact. Its true power lies in its application as custom parameter. This can be useful in situations where you change the shape of a letter with a *Rename Glyphs* parameter, and its kerning exceptions do not apply anymore."; }, { name = "Heatmap.glyphsReporter"; url = "https://github.com/simoncozens/Heatmap"; branch = "binary"; description = "*View > Show Heatmap* visualizes the thickness of glyph stems, helping you to create even and consistent curves."; screenshot = "https://raw.githubusercontent.com/simoncozens/Heatmap/master/heatmap.png"; }, { name = "StemThickness.glyphsReporter"; title = "Stem Thickness"; url = "https://github.com/RafalBuchner/StemThickness"; description = "*View > Stem Thickness* shows how thick the stem is at the current mouse position."; screenshot = "https://raw.githubusercontent.com/RafalBuchner/StemThickness/master/images/ilu_StemThickness.png"; }, { name = "GlyphNote.glyphsPalette"; title = "Glyph Note"; url = "https://github.com/mekkablue/NotePalettes"; description = "Adds a Glyph Note Palette to your Palette (Cmd-Opt-P), displaying the note for the currently selected glyph."; screenshot = "https://raw.githubusercontent.com/mekkablue/NotePalettes/master/NotePlugins.png"; }, { name = "MakeCorner.glyphsFilter"; title = "Make Corner"; url = "https://github.com/mekkablue/MakeCorner"; description = "*Filter > Make Corner* reverses the functionality of the Round Corner filter, and turns curves into corners again."; screenshot = "https://raw.githubusercontent.com/mekkablue/MakeCorner/master/MakeCorner.png"; }, { name = "ShowUnderline.glyphsPlugin"; title = "Show Underline"; url = "https://github.com/schriftgestalt/ShowUnderline"; description = "Installs an icon into the bottom toolbar and draws a preview of the underline according to the parameters *underlineThickness* and *underlinePosition* in *File > Font Info > Masters*."; screenshot = "https://raw.githubusercontent.com/schriftgestalt/ShowUnderline/master/Screenshot.png"; }, { name = "ExtrudeTool.glyphsTool"; title = "Extrude Tool"; url = "https://github.com/danielgamage/Extrude-Tool"; description = "Tool for extruding selected path segments inwards or outwards. Great for quick, destructive path editing."; screenshot = "https://raw.githubusercontent.com/danielgamage/Extrude-Tool/master/images/screenshot.png"; }, { name = "SelectionPalette.glyphsPalette"; title = "SelectionPalette"; branch = "glyphs-2"; url = "https://github.com/danielgamage/SelectionPalette"; description = "Palette that provides selection commands such as *undo*, *grow*, *shrink*, and a pattern-recognizing *continue*, as well as selection operations to *add*, *remove*, or *select only* elements of a certain type."; screenshot = "https://raw.githubusercontent.com/danielgamage/SelectionPalette/master/Images/screenshot.png"; }, { name = "TraceImage.glyphsFilter"; title = "Trace Image"; url = "https://github.com/schriftgestalt/GlyphsTracePlugin"; description = "*Filter > Trace Image* is a plugin to trace bitmap images into editable paths. You can choose between the [porace](http://potrace.sourceforge.net) and the [autotrace](http://autotrace.sourceforge.net) algorithm."; }, { name = "SpeedPunk.glyphsReporter"; title = "Speed Punk"; url = "https://github.com/yanone/speedpunk"; description = "Understand and improve your outlines with this curvature comb visualization."; screenshot = "https://raw.githubusercontent.com/yanone/speedpunk/master/Resources/speedpunkglyphs.jpg"; }, { name = "LigatureCaret.glyphsReporter"; title = "Ligature Caret"; url = "https://github.com/FAlthausen/LigatureCaret"; description = "*View > Ligature Caret:* Select a `caret` anchor to show the cursor position in ligatures as a vertical line. Be aware that most software doesn’t take note of the font’s italic angle."; screenshot = "https://raw.githubusercontent.com/FAlthausen/LigatureCaret/master/LigatureCaretScreenshot.png"; }, { name = "PixelTool.glyphsTool"; title = "Pixel Tool"; url = "https://github.com/schriftgestalt/PixelTool"; description = "Adds a simple pixel drawing tool to the toolbar. It needs a `pixel` glyph in the font. And it is advised to have set the fonts grid to the size of the pixel."; }, { name = "ShowNextFontComponents.glyphsReporter"; title = "Show Next Font Components"; url = "https://github.com/guidoferreyra/ShowNextFontComponents"; description = "*View > Show Next Font Components* shows in a light orange colour the list of components used in the glyph of the next font and in gray colour the list of current font components. If anchors names and quantity matches between fonts it display the word \"OK\" in green."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/ShowNextFontComponents/master/screen-nextfontcomponents.png"; }, { name = "Obfuscator.glyphsFilter"; url = "https://github.com/guidoferreyra/Obfuscator"; description = "*Filter > Obfuscator* replaces glyphs for another one in the font. Useful for replacing glyphs in the demo versions of a font. See full readme on [the repository page](https://github.com/guidoferreyra/Obfuscator) for more info on how to use it."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/Obfuscator/master/screen-obfuscator.png"; }, { name = "RotateView.glyphsPlugin"; title = "Rotate View"; url = "https://github.com/aaronbell/RotateView"; description = "Allows one to rotate the currently-selected glyph to preview it from multiple angles"; screenshot = "https://github.com/aaronbell/RotateView/raw/master/RotateView-1.png"; }, { name = "ShowAllBackgrounds.glyphsReporter"; title = "Show All Backgrounds"; url = "https://github.com/mekkablue/ShowAllBackgrounds"; description = "*View > Show All Backgrounds* displays the background layers of inactive glyphs in Edit view, i.e., all glyphs except the one currently open for editing. It displays paths in a pinkish color, components in a pastel orange. It works best if you disable *View > Fill Preview*."; screenshot = "https://github.com/mekkablue/ShowAllBackgrounds/raw/master/ShowAllBackgrounds.png"; }, { name = "ShowCrosshair.glyphsReporter"; title = "Show Crosshair"; url = "https://github.com/mekkablue/ShowCrosshair"; description = "*View > Show Crosshair* (de: *Zeige Fadenkreuz*, es: *Mostrar cruz*, fr: *Afficher réticule*, jp: *カーソル照準*, zh: *✨显示准星线*) displays a crosshair at your mouse coordinates. Use the context menu to access extra options: mouse coordinates in the lower left corner, hiding the crosshair when the mouse is not dragging, and showing intersection thicknesses."; screenshot = "https://github.com/mekkablue/ShowCrosshair/raw/master/ShowCrosshair.png"; }, { name = "ShowVerticalMetrics.glyphsReporter"; title = "Show Vertical Metrics"; url = "https://github.com/mekkablue/ShowVerticalMetrics"; description = "*View > Show Vertical Metrics* (de: *Vertikalmaße*, es: *métricas verticales*) displays vertical metric parameters set in *File > Font Info > Masters.*"; screenshot = "https://github.com/mekkablue/ShowVerticalMetrics/raw/master/ShowVerticalMetrics.png"; }, { name = "SpaceBar.glyphsReporter"; title = "Space Bar"; url = "https://github.com/yanone/spacebar"; description = "Take control of spacing values across your masters and instances."; screenshot = "https://raw.githubusercontent.com/yanone/spacebar/master/spacebarglyphs.jpg"; }, { name = "ShowGlyphsInLabelColor.glyphsReporter"; title = "Show Glyphs in Label Color"; url = "https://github.com/mekkablue/ShowGlyphsInLabelColor"; description = "*View > Show Glyphs in Label Color* displays glyphs in Edit view in their respective label color."; screenshot = "https://github.com/mekkablue/ShowGlyphsInLabelColor/raw/master/ShowGlyphsInLabelColor.png"; }, { name = "Speedlines.glyphsFilter"; url = "https://github.com/mekkablue/Speedlines"; description = "*Filter > Speedlines* adds speedlines to your glyphs."; screenshot = "https://github.com/mekkablue/Speedlines/raw/master/Speedlines.png"; }, { name = "VerticalSkew.glyphsPalette"; title = "Vertical Skew"; url = "https://github.com/mekkablue/VerticalSkew"; description = "The *Vertical Skew* palette allows you to shear your artwork vertically. It reuses the transformation origin set in the *Transformations* palette."; screenshot = "https://github.com/mekkablue/VerticalSkew/raw/master/VerticalSkew.png"; }, { name = "PixelPenTool.glyphsTool"; title = "Pixel Pen Tool"; url = "https://github.com/Tosche/PixelPenTool"; description = "Component drawing tool that makes designing pixel-based fonts easier. Schriftgestalt's Pixel Tool is a similar alternate, but this one guides you more closely by setting up the source file suited for pixelation. It also has auto-eraser function."; screenshot = "https://raw.githubusercontent.com/Tosche/PixelPenTool/master/Images/PixelPenTool.gif"; }, { name = "ShowBlackFill.glyphsReporter"; title = "Show Black Fill"; url = "https://github.com/Tosche/ShowBlackFill"; description = "*View > Show Black Fill* shows the outline in near-black colour. It is an alternative of Mekkablue's *Show Filled Preview* (thanks for the idea!), for those who want a darker and sharper version."; screenshot = "https://github.com/Tosche/ShowBlackFill/raw/master/ShowBlackFill.png"; }, { name = "Waterfall.glyphsPlugin"; url = "https://github.com/Tosche/Waterfall"; description = "*Window > Waterfall* shows the font in different sizes. The text is independent of the Edit View Content. Massive thanks to Mark2Mark for the help!"; screenshot = "https://github.com/Tosche/Waterfall/raw/master/Waterfall.png"; }, { name = "SyncSelection.glyphsPlugin"; title = "Sync Layer Selections"; url = "https://github.com/mekkablue/SyncSelection"; description = "*Edit > Sync Layer Selections* keeps point, component and anchor selections in sync between all compatible layers of the same glyph."; screenshot = "https://github.com/mekkablue/SyncSelection/raw/master/SyncSelectionScreenshot.png"; minVersion = 920; }, { name = "LabelKey.glyphsPalette"; title = "Label Key"; url = "https://github.com/RobertPratley/labelKey"; description = "Adds a palette displaying a user defined key for Glyphs’ colour labelling. \nRefer to the full readme ([github.com/RobertPratley/labelKey](https://github.com/RobertPratley/labelKey)) for information on how to use it."; screenshot = "https://github.com/RobertPratley/labelKey/raw/master/labelKeyExample.png"; }, { name = "MetricsSolver.glyphsPlugin"; title = "Metrics Solver"; url = "https://github.com/jayKayEss/MetricsSolver"; description = "*Edit > Resolve All Metrics* updates all metrics across all masters and checks for bad metrics keys in a single step."; screenshot = "https://github.com/jayKayEss/MetricsSolver/raw/master/Extras/screenshot.png"; }, { name = "DeleteShortSegments.glyphsFilter"; title = "Delete Short Segments"; url = "https://github.com/mekkablue/DeleteShortSegments"; description = "*Filter > Delete Short Segments* deletes line segments from your paths that are shorter than 1 unit. (Or, more precisely, if both x and y distances of the segment are shorter than 1 unit.) This can be very useful for cleaning up roughened paths when you have a grid step finer than 1 unit."; screenshot = "https://github.com/mekkablue/DeleteShortSegments/raw/master/DeleteShortSegments.png"; }, { name = "ShowMarkPreview.glyphsReporter"; title = "Show Mark Preview"; url = "https://github.com/mekkablue/ShowMarkPreview"; description = "*View > Show Mark Preview* (de: *Akzent-Vorschau*, es: *previsualización de acentos*) is a displays mark-to-base and mark-to-mark attachment with the letters and marks you type in Edit view."; screenshot = "https://github.com/mekkablue/ShowMarkPreview/raw/master/ShowMarkPreview.png"; }, { name = "SyncMetricsKeys.glyphsPlugin"; title = "Sync Metrics Keys"; url = "https://github.com/underscoretype/glyphs-plugin-sync-metrics-keys.git"; description = "*Glyph > Sync Metrics Keys* will automatically sync sidebearing changes in the editor view to any glyphs with a linked metrics key."; screenshot = "https://raw.githubusercontent.com/underscoretype/glyphs-plugin-sync-metrics-keys/master/SyncMetricsKeys.png"; }, { name = "Skedge.glyphsPlugin"; url = "https://github.com/Mark2Mark/Skedge"; description = "*Window > Skedge* is a live python sketcher for Glyphsapp.\nWritten by Mark Frömberg (@Mark2Mark)"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/Skedge/master/Images/Skedge%2003.gif"; }, { name = "ShowStemRhythm.glyphsReporter"; url = "https://github.com/Mark2Mark/Show-Stem-Rhythm"; description = "*View > Show Stem Rhythm* Displays a dynamic stem pattern. Useful for SEA scripts. Italic angle is not respected in this free version.\nWritten by Mark Frömberg (@Mark2Mark)\nMore info here:"; screenshot = "https://raw.githubusercontent.com/Mark2Mark/show-stem-rhythm/master/Stem%20Rhythm%20-%20Mark%20Fromberg%2001.png"; }, { name = "ShowNodeCount.glyphsReporter"; title = "Show Node Count"; url = "https://github.com/Mark2Mark/Show-Node-Count"; descriptions = "*View > Show Node Count* Does what the name says 😅."; screenshot = "https://github.com/Mark2Mark/Glyphsapp-Plugins/raw/Screenshots/ShowNodeCount/Screenshots/ShowNodeCount_Mark-Froemberg.gif"; }, { name = "Backuper.glyphsPlugin"; url = "https://github.com/schriftgestalt/Backuper"; description = "A plugin that makes a copy of the file if opened in a new version of Glyphs"; }, { name = "MasterGrid.glyphsReporter"; title = "Master Grid"; url = "https://github.com/jenskutilek/MasterGrid"; description = "Set and display a grid that keeps different dimensions in different masters. Activate via *View > Show Master Grid*, edit or delete the grid via *Edit > Master Grid...*"; screenshot = "https://raw.githubusercontent.com/jenskutilek/MasterGrid/master/Images/screenshot.png"; }, { name = "word-o-mat.glyphsPlugin"; title = "Word-o-Mat"; url = "https://github.com/schriftgestalt/word-o-mat"; description = "Nina Stössinger’s plug-in for generating sample texts"; screenshot = "https://raw.githubusercontent.com/schriftgestalt/word-o-mat/master/screenshotGlyphs.png"; }, { name = "Rimmer.glyphsFilter"; url = "https://github.com/mekkablue/Rimmer"; description = "*Filter > Rimmer* adds rims around your glyphs."; screenshot = "https://raw.githubusercontent.com/mekkablue/Rimmer/master/Rimmer.png"; }, { name = "Touche.glyphsPlugin"; title = "Touché"; url = "https://github.com/schriftgestalt/Touche"; description = "Nina Stössinger’s plug-in for finding touching/colliding glyph pairs."; screenshot = "https://github.com/schriftgestalt/Touche/raw/master/screenshotGlyphs.png"; }, { name = "ImageFrame.glyphsPlugin"; title = "Image Frame"; url = "https://github.com/dyyybek/ImageFrame"; description = "*Window > Image Frame* keeps your favourite images for inspiration during work in this simple always-on-top window. Drag and drop to set a new image."; screenshot = "https://raw.githubusercontent.com/dyyybek/ImageFrame/master/screenshot.png"; }, { name = "SegmentLength.glyphsReporter"; title = "Show Segment Lengths"; url = "https://github.com/mekkablue/SegmentLength"; description = "*View > Show Segment Lengths* displays the approximate lengths of each path segment of the current glyph."; screenshot = "https://raw.githubusercontent.com/mekkablue/SegmentLength/master/SegmentLength.png"; }, { name = "Beowulferize.glyphsFilter"; title = "Beowulferize"; url = "https://github.com/mekkablue/Beowulferize"; description = "*Filter > Beowulferize* randomly moves glyph nodes around, creating an effect reminiscent of Letterror’s infamous Beowulf font, hence the name."; screenshot = "https://raw.githubusercontent.com/mekkablue/Beowulferize/master/Beowulferize.png"; }, { name = "RandomRotate.glyphsFilter"; title = "RandomRotate"; url = "https://github.com/mekkablue/RandomRotate"; description = "*Filter > Random Rotate* randomly rotates glyphs around their center."; screenshot = "https://raw.githubusercontent.com/mekkablue/RandomRotate/master/RandomRotate.png"; }, { name = "CollectHangul.glyphsPlugin"; title = "Collect-Hangul"; url = "https://github.com/nanife/CollectHangul_Glyphs"; description = "*Collect-Hangul* lets you select or input Korean hangul characters easily by selecting consonants and vowels.\n *한글 모으기*는 초성, 중성, 종성 자소 선택으로 한글 입력 및 선택을 쉽게할 수 있고, 선택된 결과를 저장할 수 있어 한글 폰트 제작에 매우 유용합니다.\n **requirements** : `vanilla` module - you can install via Glyphs Preferences > Addons > Modules \n **사용 환경** : Vanilla 모듈 - 글립스의 환경설정 > 애드온 > 모듈 에서 '모듈 설치'를 통해 설치 가능.\n http://www.linegap.com/portfolio-items/collect-hangul-in-glyphs/"; screenshot = "https://raw.githubusercontent.com/nanife/CollectHangul_Glyphs/master/mainView.png"; }, { name = "OffsetCurveWithAngle.glyphsFilter"; title = "Offset Curve with Angle"; url = "https://github.com/mekkablue/OffsetCurveWithAngle"; description = "*Filter > Offset Curve with Angle* provides a simple curve offset with an angle."; screenshot = "https://raw.githubusercontent.com/mekkablue/OffsetCurveWithAngle/master/OffsetCurveWithAngle.png"; }, { name = "Delete Duplicate Paths.glyphsFilter"; title = "Delete Duplicate Paths"; url = "https://github.com/mekkablue/DeleteDuplicatePaths"; description = "*Filter > Delete Duplicate Paths* deletes path duplicates. It does not care if the points are set to smooth (green) or not (blue), only if the coordinates are the same, and the closed/open status is the same."; }, { name = "FramesPerSecond.glyphsReporter"; title = "Frames Per Second"; url = "https://github.com/schriftgestalt/FramesPerSecond"; description = "Displays a the frames per second the edit view. This is useful for debugging."; }, { name = "Kern-A-Lytics.glyphsFilter"; title = "Kern-A-Lytics"; url = "https://github.com/schriftgestalt/kernalytics-rf-ext"; description = "Helps analyzing and fixing the consistency of kerning across all masters."; screenshot = "https://raw.githubusercontent.com/schriftgestalt/kernalytics-rf-ext/master/kern-a-lytics-Glyphs.png"; }, { name = "FilterListManager.glyphsPlugin"; title = "Filter List Manager (FLM)"; url = "https://github.com/source-foundry/FilterListManager"; description = "Glyphs filter list management with newline-delimited local and remote text files.\n\n*Edit > Update Filter Lists* updates filter lists with local and/or remote definition files\n*Edit > Restore Default Filter Lists* restores a default set of filter lists\n*Edit > Open GlyphsFilters Directory* opens the ~/GlyphsFilters directory which is used to define local and remote filter list definition files + file paths."; screenshot = "https://user-images.githubusercontent.com/4249591/43370298-dd03127c-934a-11e8-99cd-3b8138811b49.png"; }, { name = "Pixelate.glyphsFilter"; title = "Pixelate"; url = "https://github.com/mekkablue/Pixelate"; description = "*Filter > Pixelate* rasterises shapes with a user-defined pixel glyph."; screenshot = "https://raw.githubusercontent.com/mekkablue/Pixelate/master/Pixelate.png"; }, { name = "TTControlInstructions.glyphsPalette"; title = "TT Control Instructions Palette"; url = "https://github.com/mekkablue/TTControlInstructionsPalette"; description = "Palette for writing ttfAutohint control instructions while zoomed in."; }, { name = "Wordfinder.glyphsPlugin"; url = "https://github.com/underscoretype/glyphs-plugin-wordfinder"; description = "A simple Glyphs App plugin to find words that contain the selected glyphs"; screenshot = "https://raw.githubusercontent.com/underscoretype/glyphs-plugin-wordfinder/master/Wordfinder.png"; }, { name = "ChangeIncrement.glyphsPalette"; title = "Keyboard Increment"; url = "https://github.com/filipenegrao/Change-Keyboard-Increment"; description = "This is the new version of the Keyboard Increment Plug-in that allows you to change the default value for whatever value you want."; screenshot = "https://raw.githubusercontent.com/filipenegrao/Change-Keyboard-Increment/a2f95c60e47f6ab493bf1401433ecb57125882b5/keyboard-increment-plugin-darkmode.png"; }, { name = "MakeBoxes.glyphsFilter"; title = "Make Boxes"; url = "https://github.com/mekkablue/MakeBoxes"; description = "*Filter > Make Boxes* turns the glyph into a box reaching from LSB to RSB, and from descender to ascender, as set in *Font Info > Masters.* Useful as custom parameter for making a backdrop instance."; screenshot = "https://raw.githubusercontent.com/mekkablue/MakeBoxes/master/MakeBoxes.png"; }, { name = "ShowGlyphFocus.glyphsReporter"; title = "Show Glyph Focus"; url = "https://github.com/mekkablue/ShowGlyphFocus"; description = "*View > Show Glyph Focus* highlights the current glyph. Also handy for spotting open paths and overlaps."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowGlyphFocus/master/GlyphFocus.png"; }, { name = "ShowComponentsCompatibility.glyphsReporter"; url = "https://github.com/guidoferreyra/ShowComponentsCompatibility"; description = "*View > Show Components Compatibility* displays in a list the names of the components used in the current layer if a component is missing in other master it uses red color on the component name label."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/ShowComponentsCompatibility/master/screen-componentesCompat.png"; }, { name = "AnchorsPalette/Anchors.glyphsPalette"; title = "Anchors Palette"; url = "https://github.com/justanotherfoundry/freemix-glyphsapp"; description = "The palette shows the position of anchors in the selected glyphs. This helps you check for consistent positioning of anchors if multiple glyphs are selected. For example, select A–Z to see whether all top anchors are on the same height. Note that the fields are editable, so you can adjust the anchors’ x or y of multiple glyphs at once."; screenshot = "https://raw.githubusercontent.com/justanotherfoundry/freemix-glyphsapp/master/AnchorsPalette/AnchorsPalette.png"; }, { name = "AlignmentPalette/Alignment.glyphsPalette"; title = "Alignment Palette"; url = "https://github.com/justanotherfoundry/freemix-glyphsapp"; description = "This palette shows the position of the center of the glphs’s bounding box. This works with components, with multiple glyphs selected and is also editable. Useful for centering all case-sensitive punctuation vertically, or to check whether mathematical operands are on the same x position (use Glyphs’ built-in glyph info to check whether they have the same advance width). Note that the bounding box center may be .5 even if your font has a grid of 1 without subdivisions (i.e. integer coordinates). The node/path selection is intentionally ignored.\n\nThe Overshoots section displays the overshoot of the selected glyph(s) relative to each alignment zone."; screenshot = "https://raw.githubusercontent.com/justanotherfoundry/freemix-glyphsapp/master/AlignmentPalette/AlignmentPalette.png"; }, { name = "SuffixesPalette/Suffixes.glyphsPalette"; title = "Suffixes Palette"; url = "https://github.com/justanotherfoundry/freemix-glyphsapp"; description = "This palette shows the name(s) of the selected glyph(s), split by suffix. The fields are editable. This is useful for quickly changing the suffix of multiple glyphs at once."; screenshot = "https://raw.githubusercontent.com/justanotherfoundry/freemix-glyphsapp/master/SuffixesPalette/SuffixesPalette.png"; }, { name = "GlyphSILE.glyphsPlugin"; title = "GlyphSILE"; url = "https://github.com/simoncozens/GlyphSILE.glyphsplugin"; description = "Embeds the SILE typesetter into Glyphs, allowing you to create and view complex font proofs while you edit."; screenshot = "https://raw.githubusercontent.com/simoncozens/GlyphSILE.glyphsplugin/master/GlyphSILE.png"; }, { name = "ShowHintsAlsoInOtherMasters.glyphsReporter"; title = "Show PS Hints Also in Other Masters"; url = "https://github.com/mekkablue/ShowHintsAlsoInOtherMasters"; description = "*View > Show PS Hints Also in Other Masters* displays hints from the hint-origin master also in masters other than the hint-origin. The main idea is to find stem hint overlaps that could cause Hint Replacement."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowHintsAlsoInOtherMasters/master/ShowHintsAlsoInOtherMasters-Preview.png"; }, { name = "SetPalette.glyphsPalette"; title = "Set Palette"; url = "https://github.com/mekkablue/SetPalette"; description = "Palette for toggling stylistic sets in Edit view."; screenshot = "https://raw.githubusercontent.com/mekkablue/SetPalette/master/SetPalette.png"; }, { name = "LayerWhale.glyphsPalette"; title = "Layer Whale"; url = "https://github.com/aiaf/LayerWhale"; description = "A design workflow tool.\n\n- Record layer history\n- Design using *checkpoints*\n- Help declutter your Layers palette!\n- Playback & export time-lapse animations of glyphs."; screenshot = "https://raw.githubusercontent.com/aiaf/LayerWhale/master/LayerWhale.png"; }, { name = "KernIndicator.glyphsReporter"; title = "Kerning Values"; url = "https://github.com/mekkablue/KerningValues"; description = "*View > Show Kerning Values* shows the kerning values above the typed text in Edit view."; screenshot = "https://raw.githubusercontent.com/mekkablue/KerningValues/master/KerningIndicators.png"; }, { name = "SnapKiller.glyphsPlugin"; title = "Snap Killer"; url = "https://github.com/mekkablue/SnapKiller"; description = "*Edit > Kill Snapping* (de: *Bearbeiten > Einrasten unterdrücken*, es: *Editar > Evitar magnetismo entre los nodos*) reduces the amount of magnetic snapping in Edit view in Glyphs 2.5."; }, { name = "DeCasteljauBezier.glyphsPlugin"; title = "De Casteljau"; url = "https://github.com/luke-snider/de-casteljau-for-GlyphsApp"; description = "*Edit > De Casteljau* is a live visualisation tool of the De Casteljau curve algorithm."; // screenshot = "https://raw.githubusercontent.com/luke-snider/de-casteljau-for-GlyphsApp/master/deCasteljau_screen2.png"; }, { name = "ShowCharacter.glyphsReporter"; title = "Show Character"; url = "https://github.com/mekkablue/ShowCharacter"; description = "*View > Show Character* (de: *Zeichen anzeigen,* fr: *Affiche caractère,* zh: 👩‍🏫参考字) displays the glyph you are editing in the system font."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowCharacter/master/ShowCharacter.png"; }, { name = "MasterSelector.glyphsPlugin"; title = "Master Selector"; url = "https://github.com/AlphabetType/MasterSelector"; description = "*Window > Master Selector* helps to navigate complex multi master files."; screenshot = "https://raw.githubusercontent.com/AlphabetType/MasterSelector/master/images/MasterSelector.gif"; }, { name = "Show Nodes Outside Paths.glyphsReporter"; title = "Show Nodes Outside Paths"; url = "https://github.com/mekkablue/ShowNodesOutsidePaths"; description = "*View > Show Nodes Outside Paths* will visualize nodes that are not located inside a path. This can be useful if you need to make sure that a node is just inside another path, without zooming in too far."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowNodesOutsidePaths/master/Show%20Nodes%20Outside%20Paths.png"; }, { name = "Scrawl.glyphsTool"; title = "Scrawl Tool"; url = "https://github.com/jenskutilek/Scrawl-Glyphs"; description = "TypeCooker™-style drawing for Glyphs. A tool for pixel-based drawing and erasing in edit view, best used with a pen tablet."; screenshot = "https://raw.githubusercontent.com/jenskutilek/Scrawl-Glyphs/master/data/ui.png"; }, { name = "Scrawl.glyphsReporter"; title = "Scrawl Viewer"; url = "https://github.com/jenskutilek/Scrawl-Glyphs"; description = "Displays drawings from Scrawl Tool when other tools are active. Activate via *View > Show Scrawl*."; }, { name = "Show Smooth Node Angle and Proportion.glyphsReporter"; title = "Show Smooth Node Angle and Proportion"; url = "https://github.com/harbortype/ShowSmoothNodeAngleAndProportion"; description = "*View > Show Smooth Node Angle and Proportion* will highlight the nodes that may produce kinks in yellow. When you select it, it will tell you the angle between the handles and their proportions. If any one of the values match the other masters (becoming light gray), a kink will not happen."; screenshot = "https://raw.githubusercontent.com/harbortype/ShowSmoothNodeAngleAndProportion/master/images/preview.png"; }, { name = "ShowCenterLines.glyphsReporter"; title = "Show Center Lines"; url = "https://github.com/mekkablue/ShowCenterLines"; description = "*View > Show Center Lines* (de: *Mittellinien anzeigen,* es: *Mostrar lineas centrales,* fr: *Afficher lignes centrales*) will display a subtle crosshair in the middle of the current selection. Respects italic angle and Dark Mode. Add the center lines as guides via the context menu."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowCenterLines/master/ShowCenterLines.png"; }, { name = "FillBackgroundPath.glyphsReporter"; title = "Fill Background Path"; url = "https://github.com/markmonroy/FillBackgroundPath"; description = "*View > Show Fill Background Path* is a simple Reporter plugin that fills the background path of the selected glyph with a semi-transparent \"non-photo blue\" color (#a4dded)."; screenshot = "https://raw.githubusercontent.com/markmonroy/FillBackgroundPath/master/FillBackgroundPath.png"; }, { name = "CaseChange/CaseChange.glyphsPalette"; title = "Change Case"; url = "https://github.com/Ricard-Garcia/Glyphs_plugins"; description = "A palette with three buttons in order to change the case of Edit View’s text"; screenshot = "https://raw.githubusercontent.com/Ricard-Garcia/Glyphs_plugins/master/CaseChange/Image/ChangeCase.png"; }, { name = "AddCaps.glyphsFilter"; title = "Add Caps"; url = "https://github.com/mekkablue/AddCaps"; description = "Automatically add cap components to your outline. This makes most sense for script typefaces in order to facilitate overlaps at where the letter shapes are supposed to connect."; }, { name = "BaseReductor.glyphsFilter"; title = "BaseReductor"; url = "https://github.com/mekkablue/BaseReductor"; description = "*Filter > BaseReductor* will reduce diacritics to their base glyphs, e.g. äáàāą will appear as aaaa. This can be useful as custom parameter in trial font instances."; screenshot = "https://raw.githubusercontent.com/mekkablue/BaseReductor/master/BaseReductorAnimation.gif"; }, { name = "SuperTool.glyphsTool"; title = "SuperTool"; url = "https://github.com/simoncozens/SuperTool/"; description = "Multitool providing curvature visualization, curve harmonization, Tunni line manipulation, path simplification, digital callipers and more"; screenshot = "https://raw.githubusercontent.com/simoncozens/SuperTool/master/supertool-screenshot.png"; }, { name = "ShowAnchorsWithDuplicateCoordinates.glyphsReporter"; title = "Show Anchors with Duplicate Coordinates"; url = "https://github.com/mekkablue/ShowAnchorsWithDuplicateCoordinates/"; description = "*View > Show Anchors with Duplicate Coordinates* (de: *Anker mit selben Koordinaten anzeigen*, es: *Mostrar anclas con mismas coordenadas*, fr: *Afficher ancres avec mêmes coordinées*, pt: *Mostrar âncoras com as mesmas coordenadas*) highlights ‘overlapping’ anchors (2+ anchors with the same coordinates)."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowAnchorsWithDuplicateCoordinates/master/ShowAnchorsWithDuplicateCoordinates.png"; }, { name = "SF Symbol Template.glyphsFileFormat"; title = "SF Symbol Template"; url = "https://github.com/schriftgestalt/SFSymbolTemplate"; description = "*File > Import > Symbol Template* and *File > Export > SF Symbol* help open and create SF Symbol Template files. [See the tutorial](https://glyphsapp.com/tutorials/creating-an-sf-symbol) for details."; }, { name = "OptimizeStartNodes.glyphsFilter"; title = "Optimize Start Node Placement"; url = "https://github.com/LucasFonts/Glyphs-OptimizeStartNodes"; description = "*Filter > Optimize Start Nodes* will optimize the placement of start nodes so that they immediately follow after a straight line segment if possible."; screenshot = "https://raw.githubusercontent.com/LucasFonts/Glyphs-OptimizeStartNodes/master/round.png"; }, { name = "Stitcher.glyphsFilter"; title = "Stitcher"; url = "https://github.com/mekkablue/Stitcher"; description = "*Filter > Stitcher* will distribute components along an (open) path at a certain interval. Components will be placed according to the origin point (0,0) or, if available, an *origin* anchor in the original glyph. The *Balance Components* option stretches the distribution along the *complete* path, so that components are placed on the first and last point of the (open) path. Hint: If used as custom parameter, use as *PreFilter* rather than *Filter.*"; screenshot = "https://raw.githubusercontent.com/mekkablue/Stitcher/master/Stitcher.png"; }, { name = "Inliner.glyphsFilter"; title = "Inliner"; url = "https://github.com/mekkablue/Inliner"; description = "*Filter > Inliner* will will expand a skeleton path to an inlined stroke. *Stroke Width* is the complete width of the (double) stroke. *Inline Width* is the width of the white gap inside the stroke."; screenshot = "https://raw.githubusercontent.com/mekkablue/Inliner/master/Inliner.png"; }, { name = "ShowOnlySelectedHandles.glyphsReporter"; title = "Show Only Selected Handles"; url = "https://github.com/mekkablue/ShowOnlySelectedHandles"; description = "*View > Show Only Selected Handles* (de: *Nur ausgewählte Anfasser anzeigen,* fr: *Montrer seulement les poignées sélectionnées,* es: *Mostrar los manejadores seleccionados*) will display handles only when they are selected."; screenshot = "https://raw.githubusercontent.com/mekkablue/ShowOnlySelectedHandles/master/ShowOnlySelectedHandles.png"; }, { name = "MasterSwitcher.glyphsPalette"; title = "Master Switcher"; url = "https://github.com/mekkablue/MasterSwitcher"; description = "This palette extension allows you to step through font masters. Use the left button to step to the previous master, and the right button to step to the next master. Use the middle button for jumping half the masters."; screenshot = "https://raw.githubusercontent.com/mekkablue/MasterSwitcher/master/MasterSwitcher.png"; }, { name = "NodeNamer.glyphsPalette"; title = "Node Namer"; url = "https://github.com/mekkablue/NodeNamer"; description = "*Node Namer* (de: *NodeNamer*, es: *Nombrar los nodos*, fr: *Nommer les nœuds*, zh: 锚点名称) is a small item in the Palette sidebar (*Window > Palette,* Cmd-Opt-P) that allows you to set and delete node names."; screenshot = "https://raw.githubusercontent.com/mekkablue/NodeNamer/master/NodeNamer.png"; }, { name = "System7Shadow.glyphsFilter"; title = "System 7 Shadow"; url = "https://github.com/mekkablue/System7Shadow"; description = "*System 7 Shadow* (de: *System-7-Schattem*) reproduces a shadow around a glyph that looks like the old Chicago Shadowed pixelfonts by Susan Kare which came bundled with the old Mac System 7."; screenshot = "https://raw.githubusercontent.com/mekkablue/System7Shadow/master/System7Shadow.png"; }, { name = "Scrambler.glyphsPalette"; title = "Scrambler"; url = "https://github.com/FEDER-CO/Scrambler"; description = "*Scrambler* is a palette extension that creates a new tab with a generated random sequence of selected glyphs. Useful at the initial design stages or to have a feel of the rhythm of the typeface. Works with numbers or non-latin characters."; screenshot = "https://raw.githubusercontent.com/FEDER-CO/Scrambler/master/Scrambler.png"; }, { name = "SimplePreview.glyphsPlugin"; title = "SimplePreview"; url = "https://github.com/nanife/SimplePreview_Glyphs"; description = "*Simple Preview* lets you preview texts which is in editing window. You can control text size and text directions in this preview plugin.\n *간단미리보기*는 편집창에서 편집 중인 텍스트들을 미리보기하는 플러그인으로, 글립스의 자체 미리보기에서 가로모드만 지원되는 단점을 보완하기 위해, 세로쓰기 및 가로쓰기 모드를 지원합니다.\n **requirements** : `Vanilla` module - you can install via Glyphs Preferences > Addons > Modules \n **사용 환경** : Vanilla 모듈 - 글립스의 환경설정 > 애드온 > 모듈 에서 '모듈 설치'를 통해 설치 가능.\n "; screenshot = "https://raw.githubusercontent.com/nanife/SimplePreview_Glyphs/master/simplePreview_demo.png"; }, { name = "ItalicExtremes.glyphsFilter"; title = "Italic Extremes"; url = "https://github.com/joachimvu/ItalicExtremes"; description = "*Italic Extremes* lets you add nodes on specified angles, and optionally remove horizontal/vertical extremes and other way around. Supports multiple angles, can be used on selected nodes/segments only, and available as a Custom Parameter for use on export."; screenshot = "https://raw.githubusercontent.com/joachimvu/ItalicExtremes/master/ItalicExtremes.png"; }, { name = "Backdrop.glyphsReporter"; title = "Backdrop"; url = "https://github.com/hejpaul/glyphs-backdrop"; description = "*View > Show Backdrop* displays similar glyphs in the background. This makes it easier to keep your glyphs consistent."; screenshot = "https://raw.githubusercontent.com/hejpaul/glyphs-backdrop/master/images/screenshot.png"; }, { name = "Thicker Outlines.glyphsReporter"; title = "Thicker Outlines"; url = "https://github.com/schriftgestalt/ThickerOutlines"; description = "Draw a thicker outline to stand out more over a background image"; }, { name = "Rhythm_Influencer/RhythmInfluencer.glyphsPlugin"; title = "Rhythm Influencer"; url = "https://github.com/Artengar/Glyphs_Plugins/"; description = "The Rhythm Influencer assists with fast creating variations on (most) letters. Activate it via *Edit > Rhythm Influencer*. [Read the instructions](http://artengar.com/pages/rhythm_influencer.html) for correct use and its current development status."; screenshot = "https://raw.githubusercontent.com/Artengar/Glyphs_Plugins/master/Rhythm_Influencer/rhythm_influencer.jpg"; }, { name = "ShowAnchorCloud.glyphsReporter"; title = "Show Anchor Cloud"; url = "https://github.com/simoncozens/ShowAnchorCloud"; description = "*Show Anchor Cloud* displays a mark cloud for all glyphs which use the selected anchor, regardless of name. It also allows the user to filter which mark glyphs are displayed in the cloud."; screenshot = "https://raw.githubusercontent.com/simoncozens/ShowAnchorCloud/master/ShowAnchorCloud.png"; }, { name = "FastScripts.glyphsPalette"; title = "FastScripts"; url = "https://github.com/ViktorRubenko/FastScripts"; description = "Add up to 20 of your favorite scripts for quick access from the right-side palette"; screenshot = "https://raw.githubusercontent.com/ViktorRubenko/FastScripts/master/FastScriptsScreenshot.png"; }, { name = "LT-Global-Background.glyphsReporter"; title = "Leedotype Global Background"; url = "https://github.com/Leedotype/global-background"; screenshot = "https://raw.githubusercontent.com/Leedotype/global-background/main/images/screenshot.png"; description = "특정 글립의 아웃라인을 배경에 가이드로 깔아놓고 볼 수 있는 플러그인입니다. *보기* > *LT Global Background 보기* 를 눌러 실행합니다.\n\n *View* > *Show LT Global Background* displays the outline of a selected glyph in the background, similar to the *Global Mask* functionality in Fontlab V."; }, { name = "Show TrueType Curves.glyphsReporter"; title = "Show TrueType Curves"; url = "https://github.com/harbortype/ShowTrueTypeCurves"; description = "*View > Show TrueType Curves* draws the contents of the active layer as quadratic curves in the background. This will give you an idea of how the points will be when exporting as TTF. By default it uses the static font TT conversion, the same as running the _Paths > Other > Convert to Quadratic_ command, but you can select the variable font conversion (slower) in the context menu."; screenshot = "https://raw.githubusercontent.com/harbortype/ShowTrueTypeCurves/main/images/showTrueTypeCurves.png"; }, { name = "ShowGuideSheets.glyphsReporter"; title = "Guide Sheets"; url = "https://github.com/ButTaiwan/ShowGuideSheets"; description = "Show guide sheets for the glyph you are editing. 在字符編輯畫面中顯示背景稿紙。 編集ビューの背景に原稿用紙を表示します。 See [readme](https://github.com/ButTaiwan/ShowGuideSheets) for details."; screenshot = "https://raw.githubusercontent.com/ButTaiwan/ShowGuideSheets/master/ShowGuideSheets.png"; }, { name = "SmartSelectTool.glyphsTool"; title = "Smart Select Tool"; url = "https://github.com/ButTaiwan/SmartSelectTool"; description = "Selecting CJK paths more easiler and faster. 加快選取漢字外框,呵護您的食指。 CJK文字のアウトラインを楽々選択することができます。 See [readme](https://github.com/ButTaiwan/SmartSelectTool) for details."; }, { name = "showMasterName.glyphsReporter"; title = "Show Master Name"; url = "https://github.com/guidoferreyra/ShowMasterName"; description = "The plugin will show in the top left corner of the Edit view a text with the master name and the axes locations. It can be useful to know 'where you are' in projects with large number of masters."; screenshot = "https://raw.githubusercontent.com/guidoferreyra/ShowMasterName/main/preview.png"; }, { name = "DragToKern.glyphsTool"; title = "Mouse Kerning and Spacing"; url = "https://github.com/LucasFonts/Glyphs-MoveableSidebearings"; description = "Edit kerning and spacing by dragging glyphs with the mouse."; screenshot = "https://raw.githubusercontent.com/LucasFonts/Glyphs-MoveableSidebearings/master/media/screenshot.png"; } ); }; }