Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
cd "$(dirname "$0")/../builtinFonts"
|
|
|
|
|
|
|
|
|
|
echo "// The contents of this file are generated by ./lib/EpdFont/scripts/build-font-ids.sh"
|
|
|
|
|
echo "#pragma once"
|
|
|
|
|
echo ""
|
|
|
|
|
|
2025-12-31 01:28:25 +10:00
|
|
|
echo "#define BOOKERLY_12_FONT_ID ($(
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
ruby -rdigest -e 'puts [
|
2025-12-31 01:28:25 +10:00
|
|
|
"./bookerly_12_regular.h",
|
|
|
|
|
"./bookerly_12_bold.h",
|
|
|
|
|
"./bookerly_12_bolditalic.h",
|
|
|
|
|
"./bookerly_12_italic.h",
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
2025-12-31 01:28:25 +10:00
|
|
|
echo "#define BOOKERLY_14_FONT_ID ($(
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
ruby -rdigest -e 'puts [
|
2025-12-31 01:28:25 +10:00
|
|
|
"./bookerly_14_regular.h",
|
|
|
|
|
"./bookerly_14_bold.h",
|
|
|
|
|
"./bookerly_14_bolditalic.h",
|
|
|
|
|
"./bookerly_14_italic.h",
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
2025-12-31 01:28:25 +10:00
|
|
|
echo "#define BOOKERLY_16_FONT_ID ($(
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
ruby -rdigest -e 'puts [
|
2025-12-31 01:28:25 +10:00
|
|
|
"./bookerly_16_regular.h",
|
|
|
|
|
"./bookerly_16_bold.h",
|
|
|
|
|
"./bookerly_16_bolditalic.h",
|
|
|
|
|
"./bookerly_16_italic.h",
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
2025-12-31 01:28:25 +10:00
|
|
|
echo "#define BOOKERLY_18_FONT_ID ($(
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
ruby -rdigest -e 'puts [
|
2025-12-31 01:28:25 +10:00
|
|
|
"./bookerly_18_regular.h",
|
|
|
|
|
"./bookerly_18_bold.h",
|
|
|
|
|
"./bookerly_18_bolditalic.h",
|
|
|
|
|
"./bookerly_18_italic.h",
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define NOTOSANS_12_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./notosans_12_regular.h",
|
|
|
|
|
"./notosans_12_bold.h",
|
|
|
|
|
"./notosans_12_bolditalic.h",
|
|
|
|
|
"./notosans_12_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define NOTOSANS_14_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./notosans_14_regular.h",
|
|
|
|
|
"./notosans_14_bold.h",
|
|
|
|
|
"./notosans_14_bolditalic.h",
|
|
|
|
|
"./notosans_14_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define NOTOSANS_16_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./notosans_16_regular.h",
|
|
|
|
|
"./notosans_16_bold.h",
|
|
|
|
|
"./notosans_16_bolditalic.h",
|
|
|
|
|
"./notosans_16_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define NOTOSANS_18_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./notosans_18_regular.h",
|
|
|
|
|
"./notosans_18_bold.h",
|
|
|
|
|
"./notosans_18_bolditalic.h",
|
|
|
|
|
"./notosans_18_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define OPENDYSLEXIC_8_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./opendyslexic_8_regular.h",
|
|
|
|
|
"./opendyslexic_8_bold.h",
|
|
|
|
|
"./opendyslexic_8_bolditalic.h",
|
|
|
|
|
"./opendyslexic_8_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define OPENDYSLEXIC_10_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./opendyslexic_10_regular.h",
|
|
|
|
|
"./opendyslexic_10_bold.h",
|
|
|
|
|
"./opendyslexic_10_bolditalic.h",
|
|
|
|
|
"./opendyslexic_10_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define OPENDYSLEXIC_12_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./opendyslexic_12_regular.h",
|
|
|
|
|
"./opendyslexic_12_bold.h",
|
|
|
|
|
"./opendyslexic_12_bolditalic.h",
|
|
|
|
|
"./opendyslexic_12_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define OPENDYSLEXIC_14_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./opendyslexic_14_regular.h",
|
|
|
|
|
"./opendyslexic_14_bold.h",
|
|
|
|
|
"./opendyslexic_14_bolditalic.h",
|
|
|
|
|
"./opendyslexic_14_italic.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define UI_10_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./ubuntu_10_regular.h",
|
|
|
|
|
"./ubuntu_10_bold.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define UI_12_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
|
|
|
|
"./ubuntu_12_regular.h",
|
|
|
|
|
"./ubuntu_12_bold.h",
|
|
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|
|
|
|
|
|
|
|
|
|
echo "#define SMALL_FONT_ID ($(
|
|
|
|
|
ruby -rdigest -e 'puts [
|
2025-12-31 01:28:25 +10:00
|
|
|
"./notosans_8_regular.h",
|
Aleo, Noto Sans, Open Dyslexic fonts (#163)
## Summary
* Swap out Bookerly font due to licensing issues, replace default font
with Aleo
* I did a bunch of searching around for a nice replacement font, and
this trumped several other like Literata, Merriwether, Vollkorn, etc
* Add Noto Sans, and Open Dyslexic as font options
* They can be selected in the settings screen
* Add font size options (Small, Medium, Large, Extra Large)
* Adjustable in settings
* Swap out uses of reader font in headings and replaced with slightly
larger Ubuntu font
* Replaced PixelArial14 font as it was difficult to track down, replace
with Space Grotesk
* Remove auto formatting on generated font files
* Massively speeds up formatting step now that there is a lot more CPP
font source
* Include fonts with their licenses in the repo
## Additional Context
Line compression setting will follow
| Font | Small | Medium | Large | X Large |
| --- | --- | --- | --- | --- |
| Aleo |

|

|

|

|
| Noto Sans |

|

|

|

|
| Open Dyslexic |

|

|

|

|
2025-12-30 18:21:47 +10:00
|
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
|
|
|
))"
|