How gniziemazity/leo works
LEO is a Windows teaching tool that advances through lesson-plan code and auto-types it into the active editor. The README describes plan loading, editing, formatting, cursor jumping, pause and playback; sampled code shows Tkinter UI wiring, block management, progress highlighting and AutoHotkey script generation. Progress is shared with the AHK process through temporary files. AHK internals and some BlockManager methods were not fully sampled, so uncertain runtime links are omitted.
Main entry points: BlockManager.py Block manager · Main.py App startup · TopBar.py Top controls · RightBar.py Edit controls
Components 14
Lesson interface
- App startup
code/Main.py - Top controls
code/TopBar.py - Edit controls
code/RightBar.py
Plan editing
- Lesson blocks
code/TextArea.py - Block manager
code/BlockManager.py - JSON lesson plan
plans/Demo.json
Typing playback
- Text helpers
code/Utils.py - AutoHotkey runner
code/BlockManager.py
Progress coordination
- Progress files
tmp/cnt.txt - Sync counter
tmp/sync.txt - Safe counter
tmp/safe_cnt.txt - Last-load path
tmp/last_load.txt
Other components
- Teacher
- Active code editor
Connections 17
- Teacher → App startup: opens
- App startup → Top controls: creates
- App startup → Edit controls: creates
- App startup → Block manager: creates
- Top controls → Block manager: invokes actions
- Edit controls → Block manager: invokes actions
- Block manager → Lesson blocks: creates and edits
- Block manager → JSON lesson plan: loads and saves
- Block manager → Last-load path: records path
- Block manager → Text helpers: counts and maps keys
- Block manager → Progress files: writes count
- Block manager → Sync counter: writes count
- AutoHotkey runner → Progress files: reads and updates
- AutoHotkey runner → Active code editor: types lesson
- Block manager → AutoHotkey runner: launches script
- Block manager → Safe counter: copies for reading
- Block manager → Safe counter: reads for highlighting