Lilex is the modern programming font containing a set of ligatures for common programming multi-character combinations.
This is just a font rendering feature: underlying code remains ASCII-compatible. This makes it easier to read and understand the code. In some cases, the ligatures connect closely related characters (==
, ---
), while in others they optically align the glyphs (..
, ??
).
Compiled versions are available under releases. Bleeding edge builds can be downloaded in the build workflow artifacts.
- Download font.
- Unzip the archive and install the font:
- Mac: Select
Lilex-VF.ttf
in thevariable
folder and double-click it. Click theInstall Font
button. - Windows: Select
Lilex-VF.ttf
in thevariable
folder, right-click it, then clickInstall
from the menu.
- Mac: Select
- From the
Code
menu (File
on Windows) go toPreferences
→Settings
, or use keyboard shortcut ⌘+, (Ctrl+, on Windows). - In the
Editor: Font Family
input box typeLilex
. - To enable ligatures, go to
Editor: Font Ligatures
, clickEdit in settings.json
, and copy"editor.fontLigatures": true
into file.
If you want to enable stylistic sets, list them instead of true
. Like:
"editor.fontLigatures": "'calt', 'ss02', 'ss04'"
- From the
iTerm2
menu go toSettings
. UnderProfiles
, find theText
tab. - If you have more than one profile, select the one you want to change. Or change the default one (with an asterisk).
- Click on the font name under the 'Font' heading, find
Lilex
and select it.
Note I recommend using ExtraThick instead of Regular for iTerm2, so the letter thickness will roughly match VS Code.
There are 6 font weights available in Lilex, ranging from Thin to Bold. In addition, a variable font is available.
The font has support for Latin, Cyrillic and Greek. It also includes ligatures and powerline symbols.
A full glyph table can be found on the preview page.
The font has additional styles for some characters, so it can be configured to better fit your needs. Instructions on how to activate OpenType features in your IDE can be found on the internet, or build your own variation of the font with forced features
Some ligatures also have additional options. For example, certain arrows are initially switched off to avoid conflicts with logical operations.
Lilex uses generated ligatures for arrows, so they can be infinite. Combine that to assemble your unique arrows.
There is also a full set of single-character arrows (↑
, ↓
, etc.) in the font.
At the moment building is possible on Ubuntu and macOS. First, install the system dependencies.
brew install cairo freetype harfbuzz pkg-config
sudo apt install python3-setuptools ttfautohint build-essential libffi-dev libgit2-dev
Clone the repository and navigate to the project folder:
git clone https://github.com/mishamyrt/Lilex
cd Lilex
And then setup python virtual environment:
make configure
Now run the command to build Lilex.
make build
or
./scripts/lilex.py build
The builder gives you the ability to forcibly enable any font features. This works by moving their code to the calt. If the ligatures work, the selected features will also work.
To do this, build the binaries from the source file with the features:
./scripts/lilex.py --features 'ss01,zero' build
- Author: Mikhael Khrustik
- Based on: IBM Plex Mono
- Inspired by: Fira Code