• Stars
    star
    324
  • Rank 129,708 (Top 3 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created almost 3 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Graphical font editor (GTK + Rust)

gerb License Build Status Latest Version netbsd aur

  1. *gerb ʰ-: reconstructed Proto-Indo-European root, meaning to carve
  2. gerb: a font editor in gtk3 and Rust

Editing a glyph inside gerb.
Editing a glyph.

See the Screenshots section.

gerb is a GUI font editor and IDE. It is not production ready, but all the basics are implemented.

It uses the UFOv3 format and can import:1

  • UFOv2 directories
  • Glyphs files

and export:2

  • OpenType files (.otf)
  • TrueType files (.ttf)
ℹ️ Interested in contributing? Consult CONTRIBUTING.md.

Features

  • import from other font source formats
  • export to .otf and .ttf
  • configurable shortcuts system
  • unlimited undos
  • embedded python shell and API for scripting and plugins (work in progress)
  • git integration (work in progress)
  • themeable (work in progress)

Future features

Screenshots 3

Alternative software

  • FontForge is the indisputable FOSS font editor. Realistically this is the only choice one has for making a professional quality typeface with free software.

Some other projects in development are:

  • runebender: development seems to have slowed down (as of Wed 15 Mar 2023). Unfortunately, the project —while excellent— looks like it is encumbered by its UI toolkit's development. In contrast, gerb uses the standard FOSS UI toolkit, gtk.
  • MFEK: it's focused on splitting every functionality into micro-libraries. gerb's technical goal is shipping a font editor.

Install

Packages

Packages are available:

It is also installable from crates.io: cargo install gerb

Prebuilt GNU/Linux & macos amd64 binaries

See 'Releases' for binaries of tagged releases built in the CI.

Build

To build, you will need Rust's cargo tool. You can get it from your distribution's packages, or directly with the official rustup tool. If the build fails because of missing system libraries, see the Dependencies section of the README.

Download or clone the git repository with your method of choice, e.g.:

git clone https://github.com/epilys/gerb.git
cd gerb
cargo build --release

Dependencies

Needs gtk-3. For the python feature you'll need libpython3.9 or greater.

On Debian and relatives:

apt install libgtk-3-dev

On macOS you can install dependencies with Homebrew:

brew install librsvg gtk+3 gnome-icon-theme

Run & Configuration

You can open a UFOv3 project from the GUI ( File->Open or Ctrl+O ) or directly in the command line with the -u flag. Assuming the project directory is "/path/to/font.ufo":

# Directly calling the binary:
gerb -u /path/to/font.ufo
# Running through cargo
cargo run --release -- -u /path/to/font.ufo

Configuration of various settings is stored at the $XDG_CONFIG_HOME/gerb directory in a TOML file. The usual location would be $HOME/.config/gerb/config.toml. dconf is not used but PRs that add dconf support are welcome.

Footnotes

  1. Import is performed with fontTools and glyphsLib.

  2. Export is performed with ufo2ft.

  3. The screenshot typeface is Sporting Grotesque.

More Repositories

1

bb

simple toy process viewer in rust https://crates.io/crates/bb
Rust
223
star
2

bibliothecula

document organizer with tags and full-text-search, in a simple and clean sqlite3 schema
Python
163
star
3

rsqlite3

sqlite3 Rewritten in RiiR Rust 🦀🦀🦀 /s
Rust
157
star
4

rlr

interactive pixel screen ruler and protractor
Rust
59
star
5

nntpserver.py

No-dependency, single file NNTP server library for developing modern, rfc3977-compliant (bridge) NNTP servers.
Python
51
star
6

bitmappers-companion

zine/book about bitmap drawing algorithms and math with code examples in Rust
Rust
46
star
7

vfsstat.rs

Example sqlite3 Dynamic Loadable Extension in Rust - vfs and vtab modules - port of vfsstat.c
Rust
33
star
8

buke

full text search manpages
Rust
29
star
9

tade

tade is a discussion/forum/link aggregator application. It provides three interfaces: a regular web page, a mailing list bridge and an NNTP server
Python
24
star
10

kitkat

Kit-kat clock utility rewritten in Rust using minifb
Rust
19
star
11

sic

link aggregator community organised by tags (with no javascript)
Python
17
star
12

ocaml-prolog

prolog interpreter in ocaml
OCaml
7
star
13

sqlite-carelink

An sqlite3 schema for glucose sensor readings from Medtronic Minimed Carelink
Python
4
star
14

ChaucerFont

A font based on William Morris' Chaucer typeface from the Kelmscott Chaucer edition
TeX
4
star
15

anatomy-of-melancholy-latex

The 17th century book "The Anatomy Of Melancholy" by Robert Burton typeset with XeLaTeX.
TeX
3
star
16

libssg

static site generation library - make your own static site generator
Rust
2
star
17

iconbar

mirror of http://iconbar.sourceforge.net/
C
1
star
18

fantastic-rust-gtk-adventure

Rust
1
star
19

tony

Rust
1
star
20

qemu-virtio-snd

C
1
star
21

libarmv8

Rust
1
star
22

scrcpy-input.py

scrcpy doesn't support non-ascii (unicode) key input. This tool copies your input to system clipboard and then synchronises it with android's clipboard and pastes it with Alt-v command. Obviously this will overwrite your clipboard contents. Make sure you focus on the text input on the scrcpy window before you attempt to paste. (see README for demo pics)
Python
1
star