From c4f9c60742409c8edb2f13c50bbb7ab8d9997218 Mon Sep 17 00:00:00 2001 From: Michael Cummings <3028512+kodermike@users.noreply.github.com> Date: Sun, 3 Aug 2025 12:43:17 -0700 Subject: [PATCH] [Kobo] Enable wake on page turn buttons (#13669) Adds menu items (toggles) and functionality to turn a kobo back on with the page turn buttons. Fix #13668 --- frontend/device/input.lua | 9 +++++++++ frontend/ui/elements/common_settings_menu_table.lua | 12 ++++++++++++ frontend/ui/elements/filemanager_menu_order.lua | 1 + frontend/ui/elements/reader_menu_order.lua | 1 + 4 files changed, 23 insertions(+) diff --git a/frontend/device/input.lua b/frontend/device/input.lua index 9660280d8..0137dbcc6 100644 --- a/frontend/device/input.lua +++ b/frontend/device/input.lua @@ -822,6 +822,15 @@ function Input:handlePowerManagementOnlyEv(ev) return keycode end + -- Treat page turn button like the latest kobo firmware when suspended + if G_reader_settings:isTrue("pageturn_power") then + if keycode == "RPgBack" or keycode == "LPgBack" + or keycode == "RPgFwd" or keycode == "LPgFwd" then + -- When suspended we pretend that the page turn button is a power button + return "PowerRelease" + end + end + if self.fake_event_set[keycode] then if self.fake_event_args[keycode] then table.insert(self.fake_event_args[keycode], ev.value) diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index 87b349b80..2a822b525 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -237,6 +237,18 @@ if Device:isKobo() then UIManager:askForRestart() end } + + if Device:hasKeys() and Device:isMTK() then + common_settings.pageturn_power = { + text = _("Wake up on page-turn button press"), + checked_func = function() + return G_reader_settings:isTrue("pageturn_power") + end, + callback = function() + G_reader_settings:flipNilOrFalse("pageturn_power") + end + } + end end if PowerD:hasHallSensor() then diff --git a/frontend/ui/elements/filemanager_menu_order.lua b/frontend/ui/elements/filemanager_menu_order.lua index e1fb11150..f9fc6056e 100644 --- a/frontend/ui/elements/filemanager_menu_order.lua +++ b/frontend/ui/elements/filemanager_menu_order.lua @@ -56,6 +56,7 @@ local order = { "autostandby", "autosuspend", "autoshutdown", + "pageturn_power", -- if Device:isKobo() and Device:hasKeys() "ignore_sleepcover", "ignore_open_sleepcover", "cover_events", diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua index ba2e52ed2..34de753ee 100644 --- a/frontend/ui/elements/reader_menu_order.lua +++ b/frontend/ui/elements/reader_menu_order.lua @@ -104,6 +104,7 @@ local order = { "autostandby", "autosuspend", "autoshutdown", + "pageturn_power", -- if Device:isKobo() and Device:hasKeys() "ignore_sleepcover", "ignore_open_sleepcover", "cover_events",