diff --git a/frontend/device/kindle/device.lua b/frontend/device/kindle/device.lua index 3586835cd..c925de7ad 100644 --- a/frontend/device/kindle/device.lua +++ b/frontend/device/kindle/device.lua @@ -83,56 +83,54 @@ function Kindle:setDateTime(year, month, day, hour, min, sec) end function Kindle:usbPlugIn() - if self.charging_mode == false and self.screen_saver_mode == false then - -- On FW >= 5.7.2, we sigstop awesome, but we need it to show stuff... - if os.getenv("AWESOME_STOPPED") == "yes" then - os.execute("killall -cont awesome") - end - end + -- NOTE: We do NOT support running in USBMS mode (we cannot, we live there). + -- And, AFAICT, we have no sane way of disabling USBMS mode without breaking either us or the framework, + -- c.f., https://github.com/koreader/koreader/issues/3220 + -- That means shit will blow up in fun and interesting ways if someone actually tries that. + -- On the upside, we don't have to bother waking up the WM to show us the USBMS screen :D. + -- NOTE: If the device is put in USBNet mode before we even start, everything's peachy, though :). self.charging_mode = true end function Kindle:intoScreenSaver() local Screensaver = require("ui/screensaver") if self:supportsScreensaver() then - Screensaver:show() - end - self.powerd:beforeSuspend() - if self.charging_mode == false and self.screen_saver_mode == false then - self.screen_saver_mode = true - -- On FW >= 5.7.2, we sigstop awesome, but we need it to show stuff... - if os.getenv("AWESOME_STOPPED") == "yes" then - os.execute("killall -cont awesome") + -- NOTE: Meaning this is not a SO device ;) + if self.screen_saver_mode == false then + Screensaver:show() + end + else + -- Let the native system handle screensavers on SO devices... + if self.screen_saver_mode == false then + if os.getenv("AWESOME_STOPPED") == "yes" then + os.execute("killall -cont awesome") + end end end + self.powerd:beforeSuspend() + self.screen_saver_mode = true end function Kindle:outofScreenSaver() - if self.screen_saver_mode == true and self.charging_mode == false then - -- On FW >= 5.7.2, put awesome to sleep again... - if os.getenv("AWESOME_STOPPED") == "yes" then - os.execute("killall -stop awesome") - end + if self.screen_saver_mode == true then local Screensaver = require("ui/screensaver") if self:supportsScreensaver() then Screensaver:close() + else + -- Stop awesome again if need be... + if os.getenv("AWESOME_STOPPED") == "yes" then + os.execute("killall -stop awesome") + end end local UIManager = require("ui/uimanager") UIManager:nextTick(function() UIManager:setDirty("all", "full") end) end - self.screen_saver_mode = false self.powerd:afterResume() + self.screen_saver_mode = false end function Kindle:usbPlugOut() - if self.charging_mode == true and self.screen_saver_mode == false then - -- On FW >= 5.7.2, put awesome to sleep again... - if os.getenv("AWESOME_STOPPED") == "yes" then - os.execute("killall -stop awesome") - end - local UIManager = require("ui/uimanager") - UIManager:nextTick(function() UIManager:setDirty("all", "full") end) - end + -- NOTE: See usbPlugIn(), we don't have anything fancy to do here either. --@TODO signal filemanager for file changes 13.06 2012 (houqp) self.charging_mode = false @@ -590,7 +588,8 @@ local kindle_devcode = string.sub(kindle_sn,3,4) local kindle_devcode_v2 = string.sub(kindle_sn,4,6) -- NOTE: Update me when new devices come out :) --- Also refer to https://wiki.mobileread.com/wiki/Kindle_Serial_Numbers +-- c.f., https://wiki.mobileread.com/wiki/Kindle_Serial_Numbers for identified variants +-- c.f., https://github.com/NiLuJe/KindleTool/blob/master/KindleTool/kindle_tool.h#L174 for all variants local k2_set = Set { "02", "03" } local dx_set = Set { "04", "05" } local dxg_set = Set { "09" } @@ -605,7 +604,8 @@ local kv_set = Set { "13", "54", "2A", "4F", "52", "53" } local pw3_set = Set { "0G1", "0G2", "0G4", "0G5", "0G6", "0G7", "0KB", "0KC", "0KD", "0KE", "0KF", "0KG", "0LK", "0LL" } local koa_set = Set { "0GC", "0GD", "0GR", "0GS", "0GT", "0GU" } -local koa2_set = Set { "0P8", "0S1", "0SA" } +local koa2_set = Set { "0LM", "0LN", "0LP", "0LQ", "0P1", "0P2", "0P6", + "0P7", "0P8", "0S1", "0S2", "0S3", "0S4", "0S7", "0SA" } local kt3_set = Set { "0DU", "0K9", "0KA" } if k2_set[kindle_devcode] then diff --git a/platform/kindle/extensions/koreader/bin/koreader-ext.sh b/platform/kindle/extensions/koreader/bin/koreader-ext.sh index b5d0de732..ac70e43c4 100755 --- a/platform/kindle/extensions/koreader/bin/koreader-ext.sh +++ b/platform/kindle/extensions/koreader/bin/koreader-ext.sh @@ -42,7 +42,7 @@ update_koreader() { found_koreader_package="false" # Try to find a koreader package... Behavior undefined if there are multiple packages... - for file in /mnt/us/koreader-kindle-*.tar.gz; do + for file in /mnt/us/koreader-kindle-*.targz; do if [ -f "${file}" ]; then found_koreader_package="${file}" koreader_pkg_type="tgz" @@ -67,12 +67,10 @@ update_koreader() { fi # Get the version of the package... - if [ "${koreader_pkg_type}" = "tgz" ]; then - koreader_pkg_ver="${found_koreader_package%.*.*}" - else - koreader_pkg_ver="${found_koreader_package%.*}" - fi + koreader_pkg_ver="${found_koreader_package%.*}" koreader_pkg_ver="${koreader_pkg_ver#*-v}" + # Strip the date purely because of screen space constraints + koreader_pkg_ver="${koreader_pkg_ver%_*}" # Install it! logmsg "Updating to KOReader ${koreader_pkg_ver} . . ." if [ "${koreader_pkg_type}" = "tgz" ]; then diff --git a/platform/kindle/libkohelper.sh b/platform/kindle/libkohelper.sh index 57397b8de..9819fd02b 100644 --- a/platform/kindle/libkohelper.sh +++ b/platform/kindle/libkohelper.sh @@ -18,21 +18,21 @@ fi kmodel="$(cut -c3-4 /proc/usid)" case "${kmodel}" in "13" | "54" | "2A" | "4F" | "52" | "53") - # Voyage... + # Voyage SCREEN_X_RES=1088 # NOTE: Yes, 1088, not 1072 or 1080... SCREEN_Y_RES=1448 EIPS_X_RES=16 EIPS_Y_RES=24 # Manually mesured, should be accurate. ;; "24" | "1B" | "1D" | "1F" | "1C" | "20" | "D4" | "5A" | "D5" | "D6" | "D7" | "D8" | "F2" | "17" | "60" | "F4" | "F9" | "62" | "61" | "5F") - # PaperWhite... + # PaperWhite & PaperWhite 2 SCREEN_X_RES=768 # NOTE: Yes, 768, not 758... SCREEN_Y_RES=1024 EIPS_X_RES=16 EIPS_Y_RES=24 # Manually mesured, should be accurate. ;; "C6" | "DD") - # KT2... + # KT2 SCREEN_X_RES=608 SCREEN_Y_RES=800 EIPS_X_RES=16 @@ -56,26 +56,28 @@ case "${kmodel}" in kmodel="$(cut -c4-6 /proc/usid)" case "${kmodel}" in "0G1" | "0G2" | "0G4" | "0G5" | "0G6" | "0G7" | "0KB" | "0KC" | "0KD" | "0KE" | "0KF" | "0KG" | "0LK" | "0LL") - # PW3... NOTE: Hopefully matches the KV... + # PW3 SCREEN_X_RES=1088 SCREEN_Y_RES=1448 EIPS_X_RES=16 EIPS_Y_RES=24 ;; - "0GC" | "0GD" | "0GP" | "0GQ" | "0GR" | "0GS") - # Oasis... NOTE: Hopefully matches the KV... + "0GC" | "0GD" | "0GR" | "0GS" | "0GT" | "0GU") + # Oasis SCREEN_X_RES=1088 SCREEN_Y_RES=1448 EIPS_X_RES=16 EIPS_Y_RES=24 ;; - "0P8" | "0S1" | "0SA") + "0LM" | "0LN" | "0LP" | "0LQ" | "0P1" | "0P2" | "0P6" | "0P7" | "0P8" | "0S1" | "0S2" | "0S3" | "0S4" | "0S7" | "0SA") # Oasis 2 - SCREEN_X_RES=1264 + SCREEN_X_RES=1280 # NOTE: Yep, line_length/xres_virtual, not xres (1264) SCREEN_Y_RES=1680 + EIPS_X_RES=16 # TBD 19? + EIPS_Y_RES=24 # TBD 28? 25?! ;; - "0DT" | "0K9" | "0KA") - # KT3... NOTE: Hopefully matches the KT2... + "0DU" | "0K9" | "0KA") + # KT3 SCREEN_X_RES=608 SCREEN_Y_RES=800 EIPS_X_RES=16