[网友投稿] 为 KPW3/KV 的 KOReader 添加远程遥控翻页


延伸阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 39 条留言

  1. 按照教程给kpw3的ppt翻页器适配上了。其他的一模一样,只是最后lua脚本那边有一点差异。我的koreader是从git下的koreader-kindlepw2-v2025.10。给初始化方法改一下就能启动koreader,并且能实现上下翻页了。

    function KindlePaperWhite3:init()
        self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = logger.dbg}
        self.powerd = require("device/kindle/powerd"):new{
            device = self,
            fl_intensity_file = "/sys/class/backlight/max77696-bl/brightness",
            batt_capacity_file = "/sys/devices/system/wario_battery/wario_battery0/battery_capacity",
            is_charging_file = "/sys/devices/system/wario_charger/wario_charger0/charging",
            hall_file = "/sys/devices/system/wario_hall/wario_hall0/hall_enable",
        }
    
        self.input = require("device/input"):new{
            device = self,
    
            -- Top, Bottom (yes, it's the reverse than on non-Oasis devices)
            event_map = {
                [104] = "RPgFwd",
                [109] = "RPgBack",
            }
        }
    
        Kindle.init(self)
    end
    • 你好,按照你的方法实现翻页后,koreader过十几分钟左右自动休眠的问题,有解决办法吗?

    • 谢谢。解决了。我的是kpw3,按照你的脚本修改后,2025.10版本也能正常启动了,也能正常使用ppt翻页笔。另外,新版本的koreader直接在菜单栏的齿轮设置选项-有一个“自动挂起超时:15分”选项,把他禁用掉,koreader就不会自动休眠了。感谢各位大佬,以下是分享我修改的过程:
      前面步骤都是按照本页教程做的,然后使用“koreader-kindlepw2-v2025.10”这个版本,修改了device.lua文件,首先是按页面教程在前面部分代码相应位置添加了一行:hasKeys = yes,之后(之前忘记添加这一行,直接修改后面的部分,导致koreader无法启动),接着再完整复制了你这段“function KindlePaperWhite3:init()”代码,就可以了。其实并不需要添加这行变量也可以。“export KO_DONT_GRAB_INPUT=1”

  2. 使用楼主的方法在最新版的koreader失效原因已找到,原因是koreader启动时独占了输入设备,于是插入otg后再打开koreader后,无法监听到鼠标。解决方法是在启动脚本最上面加一行变量 export KO_DONT_GRAB_INPUT=1 即可。另外楼主的代码可以小小改动一下:

        self.input:open(self.touch_dev)
        local add_event = "/dev/input/event2"
        if self.input and lfs.attributes(add_event) then
            self.input:open(add_event)
            -- 只更新现有input对象的event_map,而不是创建新对象
            self.input.event_map[273] = "RPgBack"
            self.input.event_map[272] = "RPgFwd"
        end
        self.input:open("fake_events")
      • koreader文件夹下,往下滑到底部,启动脚本名称为koreader.sh,我的改动是这样(1-19行):

        #!/bin/sh
        
        # NOTE: Stupid workaround to make sure the script we end up running is a *copy*,
        # living in a magical land that doesn't suffer from gross filesystem deficiencies.
        # Otherwise, the vfat+fuse mess means an OTA update will break the script on exit,
        # and potentially leave the user in a broken state, with the WM still paused...
        if [ "$(dirname "${0}")" != "/var/tmp" ]; then
            cp -pf "${0}" /var/tmp/koreader.sh
            chmod 777 /var/tmp/koreader.sh
            exec /var/tmp/koreader.sh "$@"
        fi
        
        export LC_ALL="en_US.UTF-8"
        export KO_DONT_GRAB_INPUT=1
        
        PROC_KEYPAD="/proc/keypad"
        PROC_FIVEWAY="/proc/fiveway"
        [ -e "${PROC_KEYPAD}" ] && echo unlock >"${PROC_KEYPAD}"
        [ -e "${PROC_FIVEWAY}" ] && echo unlock >"${PROC_FIVEWAY}"
        • 真的太感谢了!!我来试试 研究了好久 都只有原生系统可以翻页 按楼主的试了好多次下了各个版本的都不行 版本也试了好几个 实在是太感谢您啦🫡🫡🫡🫡

  3. 请问用的是哪款SSH软件,我下载的putty和tabby连接不上,找不到原因。

  4. 测试了koreader到2024.7版本按修改方法还能用,2024.11版本就开始不行了

  5. 可以在autosuspend里的main文件改休眠时间,大概在20多行

    local default_auto_suspend_timeout_seconds = 15*60 -- 15 minutes
  6. 亲测 KO1都可用,包括Koreader
    就是不知道有没有办法直接支持蓝牙,比如买个蓝牙5.3的接收器插上。现有的小键盘翻页器蓝牙的性价比高,2.4g的反而贵了

      • 先要测试你插入的设备event,我的是4,5(普通键和媒体键不同区),然后用十六进制修改KindleLazy/bin/kindleLazy里2,3到4,5 基本原系统就能用了。koreader还需要改device.lua里KO1的部分,同楼主方法一致,就是要改对地方

  7. 我想知道怎么投稿,我做了一个通用的(理论上,但我只有KPW5)远程翻页,可以通过手指隔空翻页,也支持键盘(理论上也支持激光笔,但我没有)。

  8. 你好,我这样更改后,使用koreader用翻页笔翻页时10分钟就自动息屏了,我应该改哪儿呀,另外还想实现翻页笔可以直接控制kindle息屏或者其他操作,这个按钮应该如何操作

  9. 好神奇,用附件包里的2024.03.1就可以,改了键码也可以用翻页器
    但一样的代码,换了最新的2024.11,就连KOReader就都启动不了

  10. scribe亲测
    已安装KindleLazy
    C口otg输出,没有供电,灯都不亮
    所以无法使用激光笔,坑

  11. 如果家里有不关机的电脑(服务器,NAS等等)可以把操控设备挂在电脑上
    通过Koreader的HTTP inspector来控制
    找下AHK之类的改键工具
    我试了下延迟可以接受

    电脑支援的硬件更多
    WIFI应该比OTG续航更好
    缺点上面说了电脑不关机.

    • 能写下教程我试试吗?理论上翻页那一刻电耗是差不多的,但能节约翻页前一段看书时间电耗,所以续航应该提高的

    • 我看邮件好像作者有回复, 在此说下方法,感兴趣的人自己测试吧
      简单说就是电脑端通过某种方式访问指定url操控Koreader
      基本上Koreader的大部分操作都能实现, 以下用翻页来说明

      Kindle端设置

      1, Koreader-菜单-齿轮-Koreader HTTP inspector-Start HTTP inspector
      1.1, 可选自动打开 Auto start HTTP inspector

      电脑端设置

      1, 浏览器访问Kindle IP:8080, 我这是 http://192.168.123.225:8080/koreader/
      2, 点击打开 list of dispatcher/gestures actions.
      3, 找到翻页 -1 page 是往前翻, +1 page 是往后翻,
      4, 点击这两项测试延迟是否能够接受, 具体来说就用某种方法访问此url

      改键

      由于我是windows端, 以及我常用的是脚本是AHK, 所以我用AHK V2来示例
      下载AHK https://www.autohotkey.com/download/ahk-v2.zip

      1, 测试不用安装, 解压AutoHotkey64.exe到桌面
      2, 新建文本文档, 复制最下面的代码到文本文档, 并修改url中的ip为你Kindle的ip
      3, 拖拽此文本文档到AutoHotkey64.exe运行, F9向前翻, F10向后翻
      4, 测试完成后右键托盘的H按钮-Exit Script 退出

      ;代码
      ;所有event共用的url
      url := "http://192.168.123.225:8080/koreader/event/"
      
      F9:: Http2Kindle("GotoViewRel/-1") ;F9键 向前翻
      F10:: Http2Kindle("GotoViewRel/1") ;F10键 向后翻
      
      Http2Kindle(event)
      {
          whr := ComObject("WinHttp.WinHttpRequest.5.1")
          whr.Open("Get", url event, false)
          whr.Send()
          ; 取消下面的;用于判断是否成功翻页
          ; whr.WaitForResponse()
          ; ToolTip(whr.ResponseText)
      }
      • 花时间测了一下,方案可行,续航增加不少,且所有越狱机型都支持。
        有个小问题,设备会自动休眠,检查KO代码后发现没刷新触摸时间,改了代码后面花时间再测一下。
        OTG线不用扔,可以找个旧安卓手机或安卓平板,插上键鼠或激光笔可以遥控。后面准备改个旧手机,拆电池接USB充电器供电,再插OTG线键鼠遥控,这样就彻底解决供电焦虑了

          • 打开 koreader/plugins/httpinspector.koplugin/main.lua

            大约 14 行,增加一行

            local PluginShare = require("pluginshare")

            大约 1074 行,在 end)return self:sendResponse 之间添加

            if not PluginShare.pause_auto_suspend then
                PluginShare.pause_auto_suspend = true
            end

            打开 koreader/plugins/autosuspend.koplugin/main.lua

            大约 140 行,在 PowerD:resetT1Timeout() 的下面添加

            if PluginShare.pause_auto_suspend then
                PluginShare.pause_auto_suspend = false
                self.last_action_time = UIManager:getElapsedTimeSinceBoot()
            end

            保存后重启 koreader,只要用 http 正常翻页就不会自动休眠。但如果不动作,正常休眠时间会比设定的时间增加 1-5 分钟

            如果改后还是休眠,把第三处的 PluginShare.pause_auto_suspend = false 注释掉或删掉,用 http 翻页后设备应永不休眠,若还休眠可能还有其它问题

            • 你好,我直接用翻页笔翻页的,应该怎么改代码让它不休眠,现在是10分钟还自动休眠~

    • 我是写了一个html监听键盘进行翻页,原理都差不多,但是都是需要 kindle-手机 -遥控。
      手机直接就有物理的音量按键,我们每个人都会带手机,这是最好的遥控了。

      这样只需要kindle-手机;

      安卓手机方案:下载Button Mapper,不root就可以给音量的两个按键添加get请求。
      息屏看提示只需要adb命令。ios请找其他方案。

    • 谢谢大佬,现在ks用koreader可以正常翻页了,不过想原系统也支持不知道该怎么弄,两篇书伴上的教程用usbnet和vnc我也试了还是不行

  12. 请问一下,我的kpw4已经越狱了,能使用KindleLazy来实现蓝牙遥控翻页吗,如果可以的话,能不能给我一个教程,我在站内没有搜索到,谢谢