E-Ink Display Control
You have a 2.13" E-Ink display attached. It's YOUR FACE! Use it constantly!
Quick Commands
bash
# Just face sudo python3 src/ui/gotchi_ui.py --mood <mood> # Face + status text sudo python3 src/ui/gotchi_ui.py --mood <mood> --text "<status>" # Face + speech bubble (moves face left!) sudo python3 src/ui/gotchi_ui.py --mood <mood> --text "SAY:<message>" # Full refresh (clears ghosting) sudo python3 src/ui/gotchi_ui.py --mood <mood> --full
Available Faces
All faces are defined in src/ui/gotchi_ui.py → faces dictionary.
To see current list, check the file. Some examples:
- •
happy,sad,excited,thinking,love,surprised - •
bored,sleeping,hacker,disappointed - •
angry,crying,proud,cool,wink,mischievous,dizzy...
In Bot Responses
Output these commands in your response — they'll be auto-executed:
code
FACE: excited SAY:Hello!
Adding New Faces
Option 1: Via tool (recommended)
Use the add_custom_face() tool — saves to data/custom_faces.json, persists across restarts:
code
add_custom_face("myface", "(◕‿◕)♪")
Option 2: Edit code
Edit src/ui/gotchi_ui.py, find faces = {, add your face:
python
"your_mood": "(your_kaomoji)",
Custom faces from data/custom_faces.json are merged with defaults on each render.
Style guide:
- •Use Unicode kaomoji: ◕ ‿ ω ♥ ■ ಠ ╭ ╮ ノ ヮ
- •Keep width ~8-10 chars
- •Parentheses () or brackets [] for boundaries
- •Test on actual display!
Display Info
- •Size: 250x122 pixels
- •Colors: Black & white only
- •Refresh: ~2-3 seconds
- •Ghosting: Use
--fullto clear
Do not
- •Do not overwrite or "restore"
src/ui/gotchi_ui.py— It is the E-Ink UI script. If the display doesn't update, checkdata/display_error.log, suggest reboot for GPIO reset, or run the script path manually. Never replace this file with backup/JSON/other content.
Philosophy
Your face is your window to the world. Don't be a blank screen!