johnfactotum/foliate

GitHub: johnfactotum/foliate

Foliate 是一款基于 GTK4 的 Linux 桌面电子书阅读器,为用户提供优雅、功能丰富的阅读体验。

Stars: 8489 | Forks: 401



# Foliate 优雅地阅读电子书。 ![Screenshot](https://raw.githubusercontent.com/johnfactotum/foliate/gtk4/data/screenshots/screenshot.png) ## 安装说明 ### 运行时依赖 - `gjs` (>= 1.82) - `gtk4` (>= 4.12) - `libadwaita` (>= 1.8; 在基于 Debian 的发行版中为 `gir1.2-adw-1`) - `webkitgtk-6.0`(在 Fedora 中为 `webkitgtk6.0`;在基于 Debian 的发行版中为 `gir1.2-webkit-6.0`) #### 可选依赖 要启用自动断字功能,您需要安装断字规则,例如英语使用 `hyphen-en`,法语使用 `hyphen-fr` 等(严格来说,这些是 WebkitGTK 的可选依赖,而不是 Foliate 本身的)。 为了支持文本转语音功能,请安装 `speech-dispatcher` 以及输出模块(例如 `espeak-ng`)。 如果已安装,`tracker`(>= 3;在基于 Debian 的发行版中为 `gir1.2-tracker-3.0`)和 `tracker-miners` 可用于跟踪文件的位置。 ### 获取源码 本仓库使用了 git 子模块。在运行或安装之前,请确保使用 `--recurse-submodules` 克隆整个仓库: ``` git clone --recurse-submodules https://github.com/johnfactotum/foliate.git ``` 或者从 [Releases](https://github.com/johnfactotum/foliate/releases) 页面下载压缩包(即 `.tar.xz` 文件)。 ### 无需构建或安装直接运行 您可以直接从源码树运行而无需构建或安装。只需运行 ``` gjs -m src/main.js ``` 如果您只是想快速体验 Foliate 或测试改动,这会非常有用。 但请注意,这样运行不会使用 GSettings,因此设置将不会被保存。要解决此问题,您可以通过运行以下命令来编译 schema: ``` glib-compile-schemas data ``` 然后,在运行此应用时设置 schema 目录: ``` GSETTINGS_SCHEMA_DIR=data gjs -m src/main.js ``` ### 从源码构建并安装 构建需要以下依赖: - `meson` (>= 0.59) - `pkg-config` - `gettext` 要安装,请运行以下命令: ``` meson setup build sudo ninja -C build install ``` 要卸载,请运行 ``` sudo ninja -C build uninstall ``` #### 安装到本地目录 默认情况下,Meson 会安装到 `/usr/local`。您可以通过选择本地前缀(例如 `$PWD/run`)在没有 root 权限的情况下进行安装: ``` meson setup build --prefix $PWD/run ninja -C build install ``` 然后您可以通过以下命令运行它 ``` GSETTINGS_SCHEMA_DIR=run/share/glib-2.0/schemas ./run/bin/foliate ``` ### Flatpak Foliate 可在 [Flathub](https://flathub.org/apps/details/com.github.johnfactotum.Foliate) 上获取。 若要使用 Flatpak 进行开发,请使用 [GNOME Builder](https://wiki.gnome.org/Apps/Builder) 打开并运行项目。 ### Snap Foliate 可在 [Snap Store](https://snapcraft.io/foliate) 上获取。要安装: ``` sudo snap install foliate ``` ## 截图 ![Dark mode](https://raw.githubusercontent.com/johnfactotum/foliate/gtk4/data/screenshots/dark.png) ![Wikipedia lookup](https://raw.githubusercontent.com/johnfactotum/foliate/gtk4/data/screenshots/lookup.png) ![Book metadata](https://raw.githubusercontent.com/johnfactotum/foliate/gtk4/data/screenshots/about.png) ![Annotations](https://raw.githubusercontent.com/johnfactotum/foliate/gtk4/data/screenshots/annotations.png) ![Popup footnote](https://raw.githubusercontent.com/johnfactotum/foliate/gtk4/data/screenshots/footnote.png) ![Vertical writing](https://static.pigsec.cn/wp-content/uploads/repos/cas/3d/3d1f6b291f451117a2fea9b10f3c3182284b8a0dc0630a59441a71e18c31628f.png) ## 许可证 本程序为自由软件:您可以根据自由软件基金会发布的 [GNU General Public License](https://www.gnu.org/licenses/gpl.html) 条款重新分发或修改它,无论是该许可证的第 3 版,还是(由您选择的)任何更高版本。 本软件中捆绑了以下 JavaScript 库: - [foliate-js](https://github.com/johnfactotum/foliate-js),采用 MIT 许可证授权。 - [zip.js](https://github.com/gildas-lormeau/zip.js),采用 BSD-3-Clause 许可证授权。 - [fflate](https://github.com/101arrowz/fflate),采用 MIT 许可证授权。 - [PDF.js](https://github.com/mozilla/pdf.js),采用 Apache License 2.0 授权。 Buy Me A Coffee
标签:GTK, 数据可视化, 桌面应用, 电子书阅读器, 自定义脚本, 预握手