6

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

 2 weeks ago
source link: https://bookfere.com/post/1103.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

[网友投稿] 为 KPW3/KV 的 KOReader 添加远程遥控翻页
本文系网友投稿。投稿请发送到书伴邮箱 [email protected]

本文系网友“三山”的投稿,原标题《KPW3/KV的KOReader增加远程遥控翻页功能》。


因为喜欢把设备放在支架上,觉得触屏不方便,就琢磨一了下如何用鼠标或激光笔遥控翻页,虽安装 KindleLazy 可以实现在原生系统下翻页,但一直无法用在 KOReader 上,一顿猛操作后现在终于实现了,分享给需要的人。

  1. 限制:目前只在 KPW3 和 KV 打开了 OTG 模式,其它设备试了 Oasis1 没能打开 OTG,因此下面教程现在只适用于 KPW3 和 KV。
  2. 需要:Kindle 越狱并安装 KUAL、KOReader、FileBrowser、KindleLazy
  3. 需要:与 Kindle 连接同一 Wi-Fi 的电脑,并安装 SSH 软件(百度搜索下载)。附件包里我已经打包了 FileBrowser(下简称 FB)和 KindleLazy(下简称 KL),可直接解压使用。
  4. 需要:MicroUSB 转 OTG 转接线,可直接购买。如果动手能力强的,找根正常的 MicroUSB 数据线,剥开 Micro 端口,把 ID 针脚焊接地就行。
  5. 缺陷:因为设备切成 OTG 模式后,需要升压至 5V,并给插上的 USB 设备供电,设备续航会下降。检查设备是否能成功切成 OTG 模式,只要用 OTG 转接线插上设备,如果输出 5V 电压(光电鼠标插上会亮灯),即是正常切成 OTG 模式。如果输出电压 0V,目前看来该设备不支持 OTG 模式。

下面以鼠标和 KPW3 为例讲解操作过程。

开始前先备份一下 KOReader(下简称 KO),把 KOReader 文件夹拖到电脑上。打开 KO 的【顶部下滑 → 配置 → 网络设置 → SSH服务器】先勾选“不使用密码登录”,再勾选“SSH 服务器”,此时出现设备 IP,记住此 IP。

需要与 Kindle 连接同一 Wi-Fi 的电脑,用安装的 SSH 软件访问设备,命令(IP 替换成你设备的 IP):

ssh [email protected]

点击接受,输入密码处直接回车即可进入命令行

[root@kindle root]# cd /dev/input
[root@kindle root]# ls

看到几个 eventN,我这边是 event0event1。Kindle 上退出 KO,插上 OTG 转接线和光电鼠标(需要亮灯,不亮灯别往下看了),点击 KUAL-KindleLazy-Start 再回到 SSH,输入命令:

[root@kindle root]# ls

此时会增加 1 个或 2 个 event,我这边用的有线鼠标增加了 event2,用无线键鼠增加了 event2event3 继续输入命令:

[root@kindle root]# evtest ./event2

按鼠标按键,如果没响应,就试 event3。直到按键后屏幕有响应,此 event 号就是你的鼠标设备号,记下 eventN 的数字。下面还要看鼠标键码,我这边的鼠标键码是 272(左键),273(右键),274(中键),类似下面响应代码:

Event code 272 (LeftBtn)/ Event:type 1 (Key), code 272 (LeftBtn), value 1
Event code 273 (RightBtn)/ Event:type 1 (Key), code 273 (RightBtn), value 1
Event code 274 (MiddleBtn)/ Event:type 1 (Key), code 274 (MiddleBtn), value 0

附件包里我已经设好了 272273 键码(左键下一页,右键上一页),如果你的不一样可修改 extensions\KindleLazy\bin\config.json(记事本或用 FB 上传后浏览器里修改)。改好后,把 extensions 下的 KindleLazy 和 FileBrowser 上传到 Kindle 对应目录中。现在重启 KindleLazy 后,原生系统就能支持遥控翻页了。但 KO 还不能翻页,往下继续(继续前需要先重启下 KindleLazy)。

如果你的 KO 版本是 2024.03.1,且 USB 设备是 event2,且键码是 272273,那么可以直接上传附件中 device.luakoreader\frontend\device\kindle\ 中。如果不是上述数值,需用 FB 打开 koreader\frontend\device\kindle\device.lua,大约在 555 行左右找到下面代码并添加一行(参考下面 hasKeys = yes 部分):

 local KindlePaperWhite3 = Kindle:extend{
    model = "KindlePaperWhite3",
    isTouchDevice = yes,
    hasFrontlight = yes,
    canTurnFrontlightOff = no,
    hasKeys = yes,
    display_dpi = 300,
    touch_dev = "/dev/input/event1",
}

大约在 888 行附近找到并增加下面一段代码,event2 为你的设备号,273272 为你设备键码,可自行替换(可参考我附件包里的配置文件):

add_event="/dev/input/event2"
    if(lfs.attributes(add_event)) then
        self.input.open(add_event)
        self.input = require("device/input"):new{
          device = self,
          event_map = {
            [273] = "RPgBack",
            [272] = "RPgFwd",
          },
       }
    end

如果是KV(Voyage),先找到 function KindleVoyage:init() 中的:

self.input = require("device/input"):new{
        device = self,
        event_map = {
            [104] = "LPgBack",
            [109] = "LPgFwd",
        },
    }

修改成(键码相应你的设备替换):

self.input = require("device/input"):new{
        device = self,
        event_map = {
            [104] = "LPgBack",
            [109] = "LPgFwd",
            [273] = "RPgBack",
            [272] = "RPgFwd",
        },
    }
self.input.open("/dev/input/event2") -- WhisperTouch
    self.input.open("fake_events")

修改成(event3 处相应替换):

self.input.open("/dev/input/event2") – WhisperTouch
add_event="/dev/input/event3"
    if(lfs.attributes(add_event)) then
        self.input.open(add_event)
    end
    self.input.open("fake_events")

现在可以启动KO了,如果鼠标可以翻页了,在留言区扣波 3 吧。

激光笔按上面方法找到设备号和键码,替换应该就能正常使用,并不复杂。虽然遥控翻页增加了电耗减少了续航,但对于喜欢用书架看书或希望手放进被窝的人还是可用的。花点时间整理出来,希望有用。

好了,不折腾,开始安静看书!

© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/1103.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK