Arabic and Hebrew for the Pebble Smartwatch.
Out of the box, Pebble can't display any right-to-left language properly, for three reasons:
- The system fonts have no glyphs for RTL languages like Hebrew and Arabic.
- The text renderer has no concept of RTL - so even if you install custom fonts, the text comes out backwards.
- In the case of Arabic script, the renderer does not attempt any contextual text-shaping, so you get س ل ا م instead of سلام.
This project fixes all three issues through a custom firmware image and language pack, allowing Hebrew, Arabic, and other languages written with the Arabic script to be displayed.
- Python 2.x and 3.x
- The GCC toolchain for ARM (
arm-none-eabi-...
)- On Ubuntu run
sudo apt-get install binutils-arm-none-eabi gcc-arm-none-eabi
- On Ubuntu run
hb-shape
command-line tool- On Ubuntu run
sudo apt-get install libharfbuzz-bin
- On Ubuntu run
- A Mac with the Tahoma and Times New Roman type families installed (or modify the shamelessly-hardcoded paths in
fonts/compose.py
) - 1700-1900 bytes of free space in the target platform's firmware image - the generator will fail if not enough free space is available.
Run generator.py <hw_rev> <out.pbz> [<out.pbl>]
to generate a firmware package out.pbz
for the specified Pebble hw_rev
, and (optionally) an accompanying language pack out.pbl
.
This tool automatically downloads parts of the Pebble Developer SDK, so its use requires agreement to the Pebble Developer Terms of Use and SDK License Agreement.
To perform steps of the process individually, use patch.py
, fonts/compose.py
, fonts/pfo_merge.py
, fonts/text_shaper.py
, and fonts/fix_ijam.py
.