feat: config files, settings screen, hardware check
Build Android APK / build (push) Failing after 5m7s
Build Server .exe / build (push) Failing after 2m27s

- Add config.py with multi-source config (YAML, .env, env vars)
- Add .env.example and config.yaml.example
- Add settings API endpoints (GET/POST /api/v1/settings)
- Add status endpoint (GET /api/v1/status) with hardware subsystem check
- Add settings screen to web client (protected by API token)
- Add localization strings for settings UI
- Add tests for config module and new endpoints
- Update README with config documentation
This commit is contained in:
Imrayya
2026-07-01 13:32:08 +00:00
parent 8e2212f035
commit 871a3cc174
16 changed files with 1341 additions and 55 deletions
+101
View File
@@ -342,6 +342,107 @@ body {
overflow-x: hidden;
}
/* Settings button */
.settings-btn {
position: absolute;
top: 10px;
right: 10px;
background: var(--bg);
color: var(--fg);
border: 2px solid var(--border);
width: 40px;
height: 40px;
font-size: 1.2em;
cursor: pointer;
z-index: 100;
font-family: inherit;
}
/* Settings screen */
#settings-screen {
justify-content: flex-start;
padding-top: 40px;
}
#settings-screen h1 {
font-size: 1.5em;
border-bottom: 2px solid var(--border);
padding-bottom: 8px;
margin-bottom: 12px;
}
#settings-screen p {
margin-bottom: 12px;
color: var(--dim);
}
#settings-token-input {
background: var(--bg);
color: var(--fg);
border: 2px solid var(--border);
padding: 10px;
width: 100%;
margin-bottom: 10px;
font-family: inherit;
font-size: 1em;
}
#settings-access-btn,
#settings-save-btn,
#settings-back-btn {
background: var(--bg);
color: var(--fg);
border: 2px solid var(--border);
padding: 10px 20px;
font-size: 1em;
cursor: pointer;
margin-right: 10px;
margin-bottom: 10px;
font-family: inherit;
}
#settings-content {
margin-top: 20px;
}
#settings-content .panel {
margin-bottom: 15px;
}
#settings-content h2 {
font-size: 0.9em;
margin-bottom: 8px;
color: var(--dim);
}
#settings-pin,
#settings-token {
background: var(--bg);
color: var(--fg);
border: 2px solid var(--border);
padding: 10px;
width: 100%;
font-family: inherit;
font-size: 1em;
}
#settings-status {
margin-top: 15px;
padding: 10px;
border: 2px solid var(--border);
background: var(--panel-bg);
}
.status {
color: var(--fg);
}
.error {
color: var(--dim);
font-size: 0.9em;
margin-top: 10px;
}
/* E-Ink specific: no transitions, sharp edges */
* {
transition: none !important;