feat: Seamless sleep/wake screens for displaying book pages during deep sleep (#2064)

<img width="605" height="454" alt="image"
src="https://github.com/user-attachments/assets/bfd84afe-3b58-436e-9a5d-539af3ec3d4e"
/>

Actualized "Last" sleep screen setting from previous PRs, rebranded as a
~~`Seamless Sleep`~~ `Page as Sleep Screen` option with more
improvements.


https://github.com/user-attachments/assets/59029ba6-007e-4841-abfa-f680d7e98b79

---

New option: `Page as Sleep Screen` - `Never (default)`, `After Timeout`,
`Always`

When enabled, it seamlessly sleeps on timeout or power off, making a
fast refresh for the moon icon. When waking up, we still show the last
page, instead of the boot screen, making it fully seamless.

I tried different icons such as "refresh arrow" and others, but they
looked not as nice as 3 simple dots.

With this mode, the device turns off 4 seconds faster. And has 6 seconds
less delay when turning back on. Much more responsive.

Previously, even a 10-minute timeout sometimes wasn't enough, and I'd
worry about seeing the book cover. It's now easier to use a shorter
sleep timeout: if I get distracted during a reading session but don't
want to stop, the new screen is much more inviting to come back to.

---

Did you use AI tools to help write this code? _**PARTIALLY**_.

---

Test v1.3.0 firmware.bin file
[download](https://github.com/user-attachments/files/28015193/firmware.zip)

Based on PRs #410 and #495

Closes #400, #1649

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Eloren1
2026-05-19 18:45:28 -04:00
committed by GitHub
co-authored by Claude Sonnet 4.6
parent 082b5f295b
commit 41e6e15229
35 changed files with 202 additions and 23 deletions
+2
View File
@@ -206,6 +206,8 @@ STR_THEME_CLASSIC: "Класічная"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Кампенсацыя выцвітання"
STR_SEAMLESS_SLEEP: "Старонка як экран сну"
STR_AFTER_TIMEOUT: "Пасля таймаўту"
STR_REMAP_FRONT_BUTTONS: "Пераназначыць пярэднія кнопкі"
STR_OPDS_BROWSER: "OPDS браўзер"
STR_COVER_CUSTOM: "Вокладка + Свой"
+2
View File
@@ -234,6 +234,8 @@ STR_THEME_CLASSIC: "Clàssic"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Ampliat"
STR_SUNLIGHT_FADING_FIX: "Correcció de l'esvaïment pel sol"
STR_SEAMLESS_SLEEP: "Pàgina com a repòs"
STR_AFTER_TIMEOUT: "Després del temps"
STR_REMAP_FRONT_BUTTONS: "Reassigna els botons frontals"
STR_OPDS_BROWSER: "Navegador OPDS"
STR_COVER_CUSTOM: "Portada + Personalitzat"
+2
View File
@@ -212,6 +212,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Oprava blednutí na slunci"
STR_SEAMLESS_SLEEP: "Stránka jako spánek"
STR_AFTER_TIMEOUT: "Po vypršení"
STR_REMAP_FRONT_BUTTONS: "Přemapovat přední tlačítka"
STR_OPDS_BROWSER: "Prohlížeč OPDS"
STR_COVER_CUSTOM: "Obálka + Vlastní"
+2
View File
@@ -234,6 +234,8 @@ STR_THEME_CLASSIC: "Klassisk"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Sollysfading-rettelse"
STR_SEAMLESS_SLEEP: "Side som dvaleskærm"
STR_AFTER_TIMEOUT: "Efter timeout"
STR_REMAP_FRONT_BUTTONS: "Omtildel frontknapper"
STR_OPDS_BROWSER: "OPDS Browser"
STR_COVER_CUSTOM: "Omslag + Brugerdefineret"
+2
View File
@@ -234,6 +234,8 @@ STR_THEME_CLASSIC: "Klassiek"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Uitgebreid"
STR_SUNLIGHT_FADING_FIX: "Zonlicht vervaging fix"
STR_SEAMLESS_SLEEP: "Pagina als slaapscherm"
STR_AFTER_TIMEOUT: "Na timeout"
STR_REMAP_FRONT_BUTTONS: "Knoppen voorzijde wijzigen"
STR_OPDS_BROWSER: "OPDS-browser"
STR_COVER_CUSTOM: "Omslag + Aangepast"
+2
View File
@@ -62,6 +62,8 @@ STR_CAT_READER: "Reader"
STR_CAT_CONTROLS: "Controls"
STR_CAT_SYSTEM: "System"
STR_SLEEP_SCREEN: "Sleep Screen"
STR_SEAMLESS_SLEEP: "Page as Sleep Screen"
STR_AFTER_TIMEOUT: "After Timeout"
STR_SLEEP_COVER_MODE: "Sleep Screen Cover Mode"
STR_HIDE_BATTERY: "Hide Battery %"
STR_EXTRA_SPACING: "Extra Paragraph Spacing"
+2
View File
@@ -211,6 +211,8 @@ STR_THEME_CLASSIC: "Klassinen"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Auringonvalon haalistumiskorjaus"
STR_SEAMLESS_SLEEP: "Sivu lepotilassa"
STR_AFTER_TIMEOUT: "Aikakatkon jälkeen"
STR_REMAP_FRONT_BUTTONS: "Uudelleenmääritä etupainikkeet"
STR_OPDS_BROWSER: "OPDS-selain"
STR_COVER_CUSTOM: "Kansi + mukautettu"
+2
View File
@@ -235,6 +235,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Correction lisibilité au soleil"
STR_SEAMLESS_SLEEP: "Page comme veille"
STR_AFTER_TIMEOUT: "Après délai"
STR_REMAP_FRONT_BUTTONS: "Configurer boutons façade"
STR_OPDS_BROWSER: "Navigateur OPDS"
STR_COVER_CUSTOM: "Couverture + Perso"
+2
View File
@@ -233,6 +233,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Anti-Verblassen"
STR_SEAMLESS_SLEEP: "Seite als Ruhebild"
STR_AFTER_TIMEOUT: "Nach Timeout"
STR_REMAP_FRONT_BUTTONS: "Vordere Tasten belegen"
STR_OPDS_BROWSER: "OPDS-Browser"
STR_COVER_CUSTOM: "Umschlag + Eigenes"
+2
View File
@@ -231,6 +231,8 @@ STR_THEME_CLASSIC: "Klasszikus"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Napfény halványulás javítás"
STR_SEAMLESS_SLEEP: "Oldal alvóképernyő"
STR_AFTER_TIMEOUT: "Időtúllépés után"
STR_REMAP_FRONT_BUTTONS: "Elülső gombok átállítása"
STR_OPDS_BROWSER: "OPDS böngésző"
STR_COVER_CUSTOM: "Borító + Egyéni"
+2
View File
@@ -242,6 +242,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra esteso"
STR_SUNLIGHT_FADING_FIX: "Correzione luce solare"
STR_SEAMLESS_SLEEP: "Pagina come standby"
STR_AFTER_TIMEOUT: "Dopo timeout"
STR_REMAP_FRONT_BUTTONS: "Rimappa pulsanti frontali"
STR_OPDS_BROWSER: "Browser OPDS"
STR_SEARCH: "Cerca"
+2
View File
@@ -207,6 +207,8 @@ STR_THEME_CLASSIC: "Классикалық"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra кеңейтілген"
STR_SUNLIGHT_FADING_FIX: "Күн сәулесінен солу түзету"
STR_SEAMLESS_SLEEP: "Бет – ұйқы экраны"
STR_AFTER_TIMEOUT: "Таймауттан кейін"
STR_REMAP_FRONT_BUTTONS: "Алдыңғы түймелерді қайта баптау"
STR_OPDS_BROWSER: "OPDS шолғышы"
STR_COVER_CUSTOM: "Мұқаба + Өзгертілген"
+2
View File
@@ -231,6 +231,8 @@ STR_THEME_CLASSIC: "Klasikinė"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Ext."
STR_SUNLIGHT_FADING_FIX: "Blyškumo pataisa"
STR_SEAMLESS_SLEEP: "Puslapis miego ekrane"
STR_AFTER_TIMEOUT: "Po skirtojo laiko"
STR_REMAP_FRONT_BUTTONS: "Keisti mygtukus"
STR_OPDS_BROWSER: "OPDS naršyklė"
STR_COVER_CUSTOM: "Viršelis + Kita"
+2
View File
@@ -242,6 +242,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Przeciwdziałanie blaknięciu od słońca"
STR_SEAMLESS_SLEEP: "Strona jako ekran snu"
STR_AFTER_TIMEOUT: "Po upływie czasu"
STR_REMAP_FRONT_BUTTONS: "Skonfiguruj przednie przyciski"
STR_OPDS_BROWSER: "OPDS Browser"
STR_SEARCH: "Szukaj"
+2
View File
@@ -212,6 +212,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Ajuste desbotamento ao sol"
STR_SEAMLESS_SLEEP: "Página como repouso"
STR_AFTER_TIMEOUT: "Após tempo limite"
STR_REMAP_FRONT_BUTTONS: "Remapear botões frontais"
STR_OPDS_BROWSER: "Navegador OPDS"
STR_COVER_CUSTOM: "Capa + personalizado"
+2
View File
@@ -234,6 +234,8 @@ STR_THEME_CLASSIC: "Clasic"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Corecţie estompare lumină"
STR_SEAMLESS_SLEEP: "Pagină ca repaus"
STR_AFTER_TIMEOUT: "După timeout"
STR_REMAP_FRONT_BUTTONS: "Remapare butoane frontale"
STR_OPDS_BROWSER: "Browser OPDS"
STR_COVER_CUSTOM: "Copertă + Personalizat"
+2
View File
@@ -242,6 +242,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Компенсация выцветания"
STR_SEAMLESS_SLEEP: "Страница как экран сна"
STR_AFTER_TIMEOUT: "По таймауту"
STR_REMAP_FRONT_BUTTONS: "Переназначить передние кнопки"
STR_OPDS_BROWSER: "OPDS браузер"
STR_SEARCH: "Поиск"
+2
View File
@@ -231,6 +231,8 @@ STR_THEME_CLASSIC: "Klasična"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra razširjena"
STR_SUNLIGHT_FADING_FIX: "Popravek bledenja na soncu"
STR_SEAMLESS_SLEEP: "Stran kot zaslon sna"
STR_AFTER_TIMEOUT: "Po izteku"
STR_REMAP_FRONT_BUTTONS: "Prenastavi sprednje gumbe"
STR_OPDS_BROWSER: "OPDS brskalnik"
STR_COVER_CUSTOM: "Naslovnica + po meri"
+2
View File
@@ -242,6 +242,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extendido"
STR_SUNLIGHT_FADING_FIX: "Corrección de desvanecimiento"
STR_SEAMLESS_SLEEP: "Página como reposo"
STR_AFTER_TIMEOUT: "Tras tiempo"
STR_REMAP_FRONT_BUTTONS: "Reconfigurar botones frontales"
STR_OPDS_BROWSER: "Navegador OPDS"
STR_SEARCH: "Buscar"
+2
View File
@@ -242,6 +242,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra utökad"
STR_SUNLIGHT_FADING_FIX: "Fix för solskensmattning"
STR_SEAMLESS_SLEEP: "Sida som viloskärm"
STR_AFTER_TIMEOUT: "Efter timeout"
STR_REMAP_FRONT_BUTTONS: "Ändra frontknappar"
STR_OPDS_BROWSER: "OPDS-webbläsare"
STR_SEARCH: "Sök"
+2
View File
@@ -211,6 +211,8 @@ STR_THEME_CLASSIC: "Klasik"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Genişletilmiş"
STR_SUNLIGHT_FADING_FIX: "Güneş Işığı Solma Düzeltmesi"
STR_SEAMLESS_SLEEP: "Sayfa uyku ekranı"
STR_AFTER_TIMEOUT: "Zaman aşımında"
STR_REMAP_FRONT_BUTTONS: "Ön Tuşları Yeniden Ata"
STR_OPDS_BROWSER: "OPDS Tarayıcı"
STR_COVER_CUSTOM: "Kapak + Özel"
+2
View File
@@ -242,6 +242,8 @@ STR_THEME_LYRA: "Lyra"
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Виправлення вицвітання на сонці"
STR_SEAMLESS_SLEEP: "Сторінка як екран сну"
STR_AFTER_TIMEOUT: "Після таймауту"
STR_REMAP_FRONT_BUTTONS: "Налаштувати передні кнопки"
STR_OPDS_BROWSER: "Браузер OPDS"
STR_SEARCH: "Пошук"