Add configurable plugin system and move hardcoded IP to config

Introduces a plugin registry so the display mode is selectable per
device via the NixOS module config (defaults to "calendar"). Moves
the hardcoded render URL base into config.base_url. Adds tests
exercising the plugin system with a synthetic ICS feed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kate Meerburg 2026-05-24 21:24:32 +02:00
parent 6188ecebb9
commit ddcb03d3dd
5 changed files with 175 additions and 17 deletions

View file

@ -35,10 +35,16 @@ in
type = json.type;
example = lib.literalExpression ''
{
unknown = {
urls = ["https://user.fm/calendar/....ics"];
refresh = 60;
model = "inkplate_10";
base_url = "http://192.168.50.124:2300";
devices = {
unknown = {
plugin = "calendar";
settings = {
urls = ["https://user.fm/calendar/....ics"];
};
refresh = 60;
model = "inkplate_10";
};
};
}
'';