InfiniTime/src/displayapp/fonts
2022-03-08 21:34:20 +01:00
..
icons_sys_48.ttf Big UI and navigation Rewrite 2021-04-04 03:08:51 +01:00
jetbrains_mono_42.c Update font readme, update fonts, add missing files 2022-03-08 21:34:20 +01:00
jetbrains_mono_76.c Update font readme, update fonts, add missing files 2022-03-08 21:34:20 +01:00
jetbrains_mono_bold_20.c Update font readme, update fonts, add missing files 2022-03-08 21:34:20 +01:00
jetbrains_mono_extrabold_compressed.c Further updates to font readme. 2022-03-08 21:34:20 +01:00
JetBrainsMono-Bold.ttf Update font readme, update fonts, add missing files 2022-03-08 21:34:20 +01:00
JetBrainsMono-Regular.ttf Update font readme, update fonts, add missing files 2022-03-08 21:34:20 +01:00
lv_font_navi_80.c Big UI and navigation Rewrite 2021-04-04 03:08:51 +01:00
lv_font_navi_80.json Big UI and navigation Rewrite 2021-04-04 03:08:51 +01:00
lv_font_sys_48.c Further updates to font readme. 2022-03-08 21:34:20 +01:00
lv_font_sys_48.json Big UI and navigation Rewrite 2021-04-04 03:08:51 +01:00
navigation.ttf Big UI and navigation Rewrite 2021-04-04 03:08:51 +01:00
open_sans_light.c Update font readme, update fonts, add missing files 2022-03-08 21:34:20 +01:00
open_sans_light.ttf Add PineTimeStyle watchface (#334) 2021-06-29 20:20:27 +02:00
README.md Further updates to font readme. 2022-03-08 21:34:20 +01:00

Fonts

Generate the fonts:

  • Open the LVGL font converter
  • Enter the settings for the font that you wish to convert
  • Click on Convert, download the file and place it in src/DisplayApp/Fonts

How to add new symbols:

  • Browse this cheatsheet and pick symbols
  • For each symbol, add its hex code (0xf641 for the 'Ad' icon, for example) to the Range list (Remember to keep this readme updated with newest range list)
  • Convert this hex value into a UTF-8 code using this site
  • Define the new symbols in src/displayapp/screens/Symbols.h:
static constexpr const char* newSymbol = "\xEF\x86\x85";

Small font

  • Name: jetbrains_mono_bold_20
  • Size: 20
  • Bpp: 1 bit-per-pixel
  • Do not enable font compression or horizontal subpixel rendering
  • Load the file JetBrainsMono-Bold.tff (use the file in this repo to ensure the version matches) and specify the following range: 0x20-0x7e, 0x410-0x44f
  • Add a 2nd font, load the file FontAwesome5-Solid+Brands+Regular.woff and specify the following range: 0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252, 0xf569, 0xf201, 0xf06e, 0xf015, 0xf072
  • Fix an error in the font conversion.

Replace the following:

/* U+0030 "0" */
0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f,
0xdf, 0xf7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
0x8f, 0xc0,

with

/* U+0030 "0" */
0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
0x8f, 0xc0,

(there are two changes: 7f -> 7e and f7 -> b7)

Medium font

  • Name: jetbrains_mono_42
  • Size: 42
  • Bpp: 1 bit-per-pixel
  • Do not enable font compression or horizontal subpixel rendering
  • Load the file JetBrainsMono-Regular.tff (use the file in this repo to ensure the version matches) and specify the following range: 0x25, 0x30-0x3a

Large font

  • Name: jetbrains_mono_76
  • Size: 76
  • Bpp: 1 bit-per-pixel
  • Do not enable font compression or horizontal subpixel rendering
  • Load the file JetBrainsMono-Regular.tff (use the file in this repo to ensure the version matches) and specify the following range: 0x25, 0x2D, 0x2F, 0x30-0x3a

Digital watchface font

  • Name: jetbrains_mono_extrabold_compressed
  • Size: 80
  • Bpp: 1 bit-per-pixel
  • Do not enable font compression or horizontal subpixel rendering
  • Load the file JetBrainsMono-ExtraBold.tff (use the file in this repo to ensure the version matches) and specify the following range: 0x30-0x3a

PineTimeStyle font

  • Name: open_sans_light
  • Size: 150
  • Bpp: 1 bit-per-pixel
  • Do not enable font compression or horizontal subpixel rendering
  • Load the file open_sans_light.tff (use the file in this repo to ensure the version matches) and specify the following symbols: 0123456789

Symbols font (Used in QuickSettings for example)

  • Name: lv_font_sys_48
  • Size: 48
  • Bpp: 1 bit-per-pixel
  • Do not enable font compression or horizontal subpixel rendering
  • Load the file icons_sys_48.tff (use the file in this repo to ensure the version matches) and specify the following range: 0xe902, 0xe904-0xe907, 0xe90b-0xe90c

Navigation font

To create the navigtion.ttf I use the web app icomoon this app can import the svg files from the folder src/displayapp/icons/navigation/unique and create a ttf file the project for the site is lv_font_navi_80.json you can import it to add or remove icons

You can also use the online LVGL tool to create the .c

ttf file : navigation.ttf name : lv_font_navi_80 size : 80px Bpp : 2 bit-per-pixel range : 0xe900-0xe929

$lv_font_conv --font navigation.ttf -r '0xe900-0xe929' --size 80 --format lvgl --bpp 2 --no-prefilter -o lv_font_navi_80.c