katibOS (كاتب — "writer") is an Arabic-first writing device OS built on the MicroJournal rev_8 hardware. A distraction-free digital typewriter: turn it on, write, sync. Originally forked from unkyulee/micro-journal and trimmed to the rev_8 OS only.
- Arabic input — RTL/BiDi + pixel-accurate contextual shaping (line wrapping included)
- Arabic-first menu/UX: file titles, rename, file browser
- Editor Options (Ctrl+,): text flow, line spacing, text align (incl. justify), theme, status bar
- Distraction-free hidden status bar (reclaims a text line; top-left toasts)
- Classic-Mac menu UI: striped title bars, dialog windows, an icon grid for Settings, and shortcuts shown as inverted keycaps (Ctrl+. jumps straight there)
- Google Drive two-way sync, and OTA Wi-Fi updates (Settings → Check for Update)
firmware/ |
The OS — PlatformIO project (ESP32-S3). Build envs: microjournal and waveshare. |
firmware/emulator/ |
SDL desktop emulator (build & run the OS with no hardware). |
firmware/tests/ |
Host unit tests. |
firmware/doc/KATIBOS.md |
Detailed design / feature doc. |
Version: KATIBOS_VERSION in firmware/src/app/app.h.
Hardware (enclosure STLs, build guide) lives upstream: unkyulee/micro-journal › micro-journal-rev-8.
cd firmware
# Device (ESP32-S3)
pio run -e microjournal # build (MicroJournal; use -e waveshare for the Waveshare board)
pio run -e microjournal -t upload # flash over USB
# SDL emulator (desktop, no hardware)
cd emulator && make && ./microjournal-emuFirmware is published as GitHub Releases with a firmware_microjournal.bin asset (the name the
device's SD-card updater also expects). The device reads a manifest to find newer builds:
- Bump
KATIBOS_VERSIONinapp.h. pio run -e microjournal→.pio/build/microjournal/firmware.bin.gh release create vX.Y --target main --title "katibOS X.Y" firmware_microjournal.bin.- Update
firmware/latest.json(version+ asseturl) and push.
Device config.json points at the raw manifest:
"update": { "url": "https://raw.githubusercontent.com/alfarhan/katibos/main/firmware/latest.json" }First install must be over USB/SD (OTA can't bootstrap itself); after that, updates are over the air.
Based on unkyulee/micro-journal. Licensed under LICENSE.txt.