RepeatNow is a native C + SDL2 vocabulary trainer for TrimUI Brick (tg5040).
It imports standard Anki .apkg decks directly on device, focuses on vocabulary review flows, and ships as a NextUI-only RepeatNow.pakz.
- Direct
.apkgimport from sharedimports/or pak-bundleddata/imports/ - Supports
BasicandBasic (and reversed)style Anki note types - Anki-like default scheduling with
Again / Good / Easy - Per-deck review flow with local SQLite persistence
- Audio extraction and playback for supported Anki media references
- Simplified Chinese UI tuned for TrimUI Brick controls
Host builds and tests expect:
ccsqlite3development librariespython3
Packaging for tg5040 also expects:
zip- a working
aarch64-none-linux-gnu-gccoraarch64-linux-gnu-gcc - the TrimUI SDK userland fetched by
make tg5040-bootstrap
assets/ Icons and fonts bundled into the pak
packaging/ NextUI launcher and pak metadata templates
scripts/ Bootstrap and helper scripts
src/ Application sources
tests/ Host tests and APKG fixtures
vendor/ Third-party C sources
Build the host binary:
make hostRun the host-side test suite:
make testBootstrap the TrimUI SDK userland:
make tg5040-bootstrapBuild the TrimUI binary:
make tg5040Build the NextUI release package:
make nextui-releaseGenerated outputs:
build/host/bin/repeatnowbuild/host/bin/repeatnow_testsdist/RepeatNow.pakz
The host binary accepts a few useful commands for local verification:
./build/host/bin/repeatnow [--data DIR] [--app-dir DIR] [--font FILE] [command]Available commands:
uiscanimport <file.apkg>stats
Examples:
./build/host/bin/repeatnow --data ./tmp-data scan
./build/host/bin/repeatnow --data ./tmp-data import ./tests/fixtures/basic.apkg
./build/host/bin/repeatnow --data ./tmp-data statsCopy dist/RepeatNow.pakz to the SD card root and let NextUI import it automatically.
Manual layout inside the card:
Tools/tg5040/RepeatNow.pak/
- Shared data:
$SHARED_USERDATA_PATH/RepeatNow - Database:
$SHARED_USERDATA_PATH/RepeatNow/library.sqlite - Preferences:
$SHARED_USERDATA_PATH/RepeatNow/preferences.json - Imported media:
$SHARED_USERDATA_PATH/RepeatNow/media/ - Archived imports:
$SHARED_USERDATA_PATH/RepeatNow/imports/archived/
D-pad: move selectionA: confirm, flip,GoodB: backX:Againor open imports from homeY:Easyor open settings from homeL1: replay audio, otherwise page upR1: page down
Fixtures and host verification live under tests/. The test runner writes temporary files to tests/tmp/, which is intentionally ignored by git.