Fonts - joneavila/aesthetic GitHub Wiki
Font Selection Considerations
When selecting fonts for applications or themes:
- Choose fonts that support multiple languages beyond English. Check the muOS translation status for currently supported languages.
- Prefer fonts with higher weight (e.g., bold variants) as they offer improved legibility and contrast on small displays.
- Aesthetic uses the following fonts, which have good character support and higher weight options:
- Cascadia Code (Bold)
- Inter (Extra Bold)
- JetBrains Mono (Bold)
- Nunito (Bold)
- Retro Pixel (Thick)
- Always verify font licenses before using them in your theme or project.
Custom Header and Footer Fonts
To set different fonts for header and footer sections:
- Create binary font files
- Add them to your theme at these locations:
font/footer/default.bin
font/header/default.bin
For more information, see: muOS Themes > Custom Fonts
Font Freezing
Fonts often include features that can be enabled or disabled, such as character variants. To create a version with specific features enabled or disabled (known as "freezing"), use FontFreeze.
Converting Fonts to Binary Format
Convert font files to the required .bin
format using the provided script:
./utils/convert_font_to_binary.sh <path-to-font> [size]
# Example
./utils/convert_font_to_binary.sh assets/fonts/jetbrains_mono/jetbrains_mono_bold.ttf 24
Aesthetic uses three standard font sizes for theme generation: 16 ("Regular"), 24 ("Large"), and 32 ("Extra Large").
Font File Size Optimization
Reduce font file sizes by including only necessary glyphs:
# Install required tools
pip install fonttools
# Create a subset with specified characters only
pyftsubset font.otf --output-file=font-subset.otf --text="abc123"
# Inspect the resulting font
ttx -l font-subset.otf
For more information, see: Fonttools Installation