Check The GitHub Repository

Sugar Font Editor Activity

Kids Make Fonts

Latest Proposal and Timeline


By Yash Agarwal (GSoC Student)

After much discussion, we have finally decided to move on with the work and use Python/Gtk 3 for making this font editor activity. Now using Python allows me to take advantage of libraries like defcon, glyphLib and many more mentioned here in Dave’s Reading List One great example is Trufont, a python based libre font editor, which harnesses some of the above mentioned Libraries.

Feature List

This font editor Activity is planned to include the following features and follow the Sugar Human Interface Guidelines: The activity will be following the mode/toolbar UX design as summarized by Dave here. Here a primary toolbar will show the different modes and changing the mode will switch the workspace and the secondary toolbar accordingly.

1: A glyph editing interface together with text preview

2: Font Manager

3: A Testing interface for the Font Manager


I have divided the project into measurable milestones, with 12 weeks at 40 hours a week becoming 6 milestones of 2 weeks each:

Milestone 1: Glyph Editor Basic Version

I will use the Sugar Human Interface Guidelines to build basic GUI functionality like Toolbar(s), Navbar , Work Space, etc.

The entire activity will be made as a Sugar Activity in Python.

Here a few more Mock-UI for the different screens/workspaces eli's mocks

1.0 Build the glyph picker class, to select which glyphs to edit

1.1 Build the glyph class and the methods required for manipulating it

1.2 Implement PostScript bezier outline editing feature which will be similar to the Glyph editor currently found in Trufont

Image of Glyph Editing Interface

Milestone 2: Font Manager

2.0 Activate/Deactivate: Build an interactive grid display for showing all fonts in the system, a button to activate/deactivate them, and allow the user to create ‘collections’ within the library (like playlists in a music player)

2.1 Scan for .otf/.ttf type font files in the filesystem and add them to the library

2.2 Import/Export: open files using python and defcon and export/generate .otf and .ttf files with fontmake

2.3 Complete documentation and organising code if needed according to sugar labs Activity Teams mentioned specification

TODO: Make a Mock-UI for this mode

Time for mid way evaluation: I will finish the above 2 mentioned Milestones before the midway evaluation deadline 27th June. I will be requiring days off from 31st May to 4th June due to some Academic Work during that period as discussed with Dave Crossland. I will compensate for the lost time in the weeks and weekends after it.

Milestone 3: The Multi Glyph editing screen together with an live preview feature (also an detailed testing mode)

3.0 This will include a canvas where the user can insert glyphs in the editing workspace by selecting the glyphs from a character tool bar, here is a UI mockup for it made by Dave and Eli UI Mockup

3.1 Detailed Testing Stage/Paragraph View

3.1.1 This module will only show a text box in which the written text is rendered in the font currently being edited/created

3.1.2 There will not be any editing option in this module- this is just to get a visual feedback of the font in question

3.1.3 This module will also contain predefined text templates eg. “the quick brown fox jumps over the lazy dog” and a export image button to save a image of the rendered font

Milestone 4: Glyph Editor with Added Functionality 1 + Packaging

4.0 Implement Basic curve offsetting (used in skeleton based glyph design) here is a link describing this

4.1 Get the code integrated in the main sugar distribution

Milestone 5: Glyph Editor with Added Functionality 2

5.0 Implement Cap curve offsetting

Milestone 6: Packing up things/Catching up with Backlogs/Detailed Documentation

6.0 This period will act as a buffer time to manage any spillovers from the previous Milestones and for more detailed documentation.