在 Kobo 閱讀器上使用 KOReader
有關 Kobo 閱讀器
我的電子書閱讀器是8吋的 Kobo forma。雖然現在已經是停賣的老機子了, 有著開機鍵難按、傳輸接口還停留在 Micro USB 等小缺點, 但總體來說我還是相當滿意的。200g 以下的重量、超長的待機時間、電子墨水的護眼效果等, 都讓我十分有把它帶出門的動力,其結果是紙本閱讀量比起過去幾年有了顯著的成長。 只不過閱讀器畢竟不是手機或者是 PC,使用方式還是有很大的差異。這也是為什麼要特別寫一篇心得的原因。
以開發者角度來說,Kobo 生產的閱讀器有一些特點:
- 它使用 Linux 系統。更準確的說,若在系統中執行
uname -a
取得核心編譯資訊,其輸出是:Linux kobo 4.1.15-00287-gc98fdced63d6 #81 SMP PREEMPT Mon Mar 29 10:04:24 CST 2021 armv71 GNU/Linux
- 為了符合 Kobo firmware 的許可證,Kobo 官方有公開的 GitHub repo
- 使用者可以將特定版本的 firmware 檔案放置在
.kobo
目錄中,在拔掉連接線後機器會重新啟動, 並自動解壓縮相關檔案進行安裝,更多說明可以參考維基頁面: https://wiki.mobileread.com/wiki/Kobo_Firmware - 預設的「操作介面」是 Nickel,雖 Kobo 幾乎沒有在網路上或使用介面中提到這個名字,
不過可以在系統中找到一些它的相關訊息:
既然上面的查詢結果和> grep -ir nickel #在系統中尋找含有 Nickel 這個單字的檔案 ./etc/mdev.conf:mmcblk([0-9])p([0-9]) root:root 666 *echo sd $ACTION /dev/$MDEV >> /tmp/nickel-hardware-status & ./etc/init.d/rcS:mkfifo /tmp/nickel-hardware-status ./etc/init.d/rcS:export NICKEL_HOME=/mnt/onboard/.kobo ./etc/init.d/rcS:LIBC_FATAL_STDERR_=1 /usr/local/Kobo/nickel -platform kobo -skipFontLoad & ./etc/init.d/rcK:kill -SIGSTOP `pidof nickel` ./etc/udhcpc.d/default.script:echo network $1 ip="$ip" broadcast="$broadcast" subnet="$subnet" router="$router" domain="$domain" dns="$dns" lease="$lease" > /tmp/nickel-hardware-status ./etc/init.d/on-animator.sh:# 37s for Nickel to show up. ./etc/init.d/on-animator.sh:# where Nickel *might* have been relying on pickel to setup the fb...
/etc/init.d/
有關,可以知道Nickel 這個元件是和硬體深入綁定的, 在開機時會自動啟動,而且環境變數NICKEL_HOME
正是我們熟悉的.kobo
(用來存放各種設定和升級系統的目錄) - 使用傳輸線接上設備後,Nickel 會提示「已偵測到電腦」,若選擇「連接/Connect」,
它會將
/mnt/onboard
這個路徑掛載到電腦上。 - 在掛載路徑中的
.adds/
資料夾放入 epub 檔案,系統會在重啟後自動將書籍匯入 Nickel, 並紀錄在/mnt/onbard/.kobo/KoboReader.sqlite
這個 sqlite 資料庫中。
上面說了這麼多,重點是什麼呢? 就是 Nickel 這個預設的操作介面並不好用! 除了強迫要登入 Kobo 帳號外,在使用上也有著種種限制:
- 無法直接與檔案系統互動:使用者購買或匯入的書籍,只能在「我的書籍」介面中存取
- 明明有網卡可以使用 wifi,卻一定要有線連接才能用電腦傳輸資料
- 螢幕截圖功能明明有做,但卻需要手動修改
/mnt/onboard/.kobo/KOBO/Kobo eReader.conf
1 這個設定檔,才能開啟。上面也提到過 Nickel 中無法直接與檔案系統互動, 所以為了開啟這項功能,要先有線連接後才可以用文字編輯器修改設定檔。 - 無法自訂手勢:在預設的操作介面下,有很多功能需要兩三次點選才能達成。 例如退出閱讀中的書籍,要先點選螢幕上邊緣或下邊緣叫出選單, 才能再點選「返回首頁」退出。
就算列出這麼多缺點,但無奈 Nickel 與 firmware 深度綁定, 在開機時 kobo 閱讀器一定會自動進入 Nickel 介面。 因此想要在閱讀器上加入第三方功能,只能先過 Nickel 這一關。
NickelMenu
所幸在開源世界中,早有 NickelMenu 這個工具可以修改 Nickel 的介面:
https://pgaskin.net/NickelMenu/
簡單來說,雖然 NickelMenu 本身不提供任何實際功能, 但它可以為 Nickel 的操作介面增加一個選單,並利用選單為系統啟動各種功能或第三方軟體。
下面要介紹的 KOReader 這個操作介面,就可以在安裝後透過 NickelMenu 開啟。
有關 KOReader
KOReader 其實並不是專為 Kobo 閱讀器設計的操作介面,而是針對市場上使用電子墨水的各種閱讀器, 官網上是這樣描述的:
KOReader is a document viewer for E Ink devices.
基本上在大部分 Unix 系統都可以安裝它,包括:Android, Amazon 的 Kindle, Linux, Mac OS 等。 KOReader 自 2011 年開始開發,至今已有龐大的使用者與社群,基本上不用擔心其品質與開發能量。
相比於陽春限制又多的 Nickel,KOReader 可就厲害多了!功能包括但不限於: 1. 支援各種電子書軟體 1. 自訂手勢 1. 字體設定 1. 與其它閱讀軟體/來源的整合:包括 Calibre, RSS feed, Wallabag, Wikipedia, FTP, WebDAV 等 1. SSH server 1. Terminal Emulator
後面會詳細說說幾種重要的功能。
安裝 KOReader
有關安裝步驟,其實在官方的 Github Wiki 上就有詳細介紹,這邊就提供連結不再贅述。 既然上面都知道了 NickelMenu 的原理,則可以選擇基於 NickelMenu 的安裝方法,不需要其它來源的安裝腳本:
安裝完成後,應該就可以在右下角的 NickelMenu 中啟動 KOReader 了。
手勢
手勢可以說是 KOReader 最重要的功能了,在上方選單裡
要注意到,在檔案瀏覽器和閱讀模式下,手勢的設定是分開的!所以設定時不要以為之前的設定被改掉了。 以下是我的設定:
共通設定
- 短按
- 左下:開啟背光調節
- 長按
- 右下:休眠
- 左下:閱讀歷史
- 單指滑動
- 斜向:開啟選單
- 兩指滑動
- 擴張:打開先前閱讀的書籍
閱讀模式
- 短按
- 右上:切換書籤
- 長按
- 右上:書籍資訊
- 左上:螢幕截圖
- 單指滑動
- 右邊緣往上:Book Map
- 右邊緣往下:Page Browser
- 兩指滑動
- 下拉:快覽文件
- 上拉:切換自動旋轉
- 縮小:跳出閱讀模式,回到檔案瀏覽器
- 往右:書籍目錄
- 往左:書籤
檔案瀏覽器
- 長按
- 右上:開啟 Terminal Emulator
- 左上:關閉 Koreader,回到 Kobo 預設介面
- 單指滑動
- 右側邊緣:全螢幕重新整理
- 兩指滑動
- 下拉:重新啟動裝置
- 上拉:顯示網路資訊
- 縮小:上一層目錄
- 往右:切換 Wifi
- 往左:切換 SSH Server
其它
在 Nickel 中開啟開發者功能
在搜索欄中輸入 devmodeon
並按確定,即可開啟 Nickel 下的各種體驗版功能。2
包含一些小遊戲,繪畫板(原來 forma 也可以畫圖啊!)和一些開發者選項。