Foliate:沉浸式阅读!!!
项目简介
Foliate 是一款开源的电子书阅读器,专为现代操作系统设计,提供了优雅且实用的阅读体验。它支持多种电子书格式,包括 EPUB、Mobipocket、Kindle、FB2、CBZ 和 PDF,让用户能够以分页或滚动模式阅读。Foliate 允许用户自定义字体、间距、边距和颜色方案,以适应个人的阅读偏好。此外,它还具备自动隐藏窗口控件的功能,以减少阅读时的干扰。
特点
它提供了一个无干扰的沉浸式阅读环境,支持多种电子书格式,并允许用户自定义阅读界面的字体、间距、边距及颜色。它结合了直观的触摸翻页手势、便捷的导航工具、书签与注释功能,并集成了词典查询、翻译及文本朗读等增强功能,同时支持复杂的排版需求,如右至左文本和垂直书写,旨在为用户提供既美观又实用的阅读体验。
开源成就
目前已经取得6.1K Star

主要功能包括:
-
支持触摸板和触摸屏手势,提供流畅的翻页体验。
-
侧边栏提供目录、书签和注释功能,方便用户快速导航和记录重要内容。
-
阅读进度跟踪和导航历史,帮助用户记住阅读位置。
-
支持添加书签和注释,并且可以将它们存储在 JSON 文件中,方便导出和同步。
-
内置工具可以查询 Wiktionary 和 Wikipedia,以及使用 Google Translate 翻译文本。
-
支持文本到语音功能,以及高级渲染特性,如自动连字、弹出式脚注和媒体覆盖。
安装指南
- 确保系统已安装 Flatpak。
apt install flatpak - 添加 Flathub 存储库:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - 安装 Foliate:
flatpak install flathub com.github.johnfactotum.Foliate - 运行 Foliate:
flatpak run com.github.johnfactotum.Foliate
Foliate凭借其强大的兼容性、高度可定制的界面以及丰富的辅助功能,成为电子书爱好者的理想选择。无论是追求极致阅读体验的书虫,还是需要高效管理阅读内容的学习者,Foliate都能满足其需求。
相关文章:
Foliate:沉浸式阅读!!!
项目简介 Foliate 是一款开源的电子书阅读器,专为现代操作系统设计,提供了优雅且实用的阅读体验。它支持多种电子书格式,包括 EPUB、Mobipocket、Kindle、FB2、CBZ 和 PDF,让用户能够以分页或滚动模式阅读。Foliate 允许用户自定义…...
【excel基本操作-sumif绝对引用和相对引用
低量级数据的存储 复杂且无法优化的数据报表 怎么学excel? 一、输入与输出 二、计算与处理 三、可视化 四、连接匹配与自动化 excel操作笔记 打开表格第一步筛选 所以筛选的快捷键:shiftctrll 排序:多列排序 开始-排序与筛选-自定义排序-设置关键字添…...
word及Excel常见功能使用
最近一直在整理需规文档及表格,Word及Excel需要熟练使用。 Word文档 清除复制过来的样式 当复制文字时,一般会带着字体样式,此时可选中该文字 并使用 ctrlshiftN 快捷键进行清除。 批注 插入->批注,选中文本 点击“批注”…...
网页中的某个元素高度突然无法设置
做网页时本来一个div的高度好好的,结果代码打着打着突然发现有个div的高度变的很小,把我很多在这个div里的元素给搞的看不见了。 找了好久的原因最后发现是这个div的结束标签</div>不小心被我删了,之后把这个</div>给补上就好了。...
springboot给不同用户动态定制请求结果思路
我有个朋友在公司遇到一个需求:某个接口,面向不同的用户返回的字段数不一样字段数。 我举例两种场景并且都给一个方案他,同时也供大家参考。 场景1: 接口返回的是List 或者直接就是entity,且entity对应某张数据表&…...
【网络】HTTP(超文本传输协议)详解
目录 引言一、HTTP的基本概念1.1 什么是HTTP?1.2 HTTP的工作流程1.3 HTTP工作流程图 二、HTTP请求与响应2.1 HTTP请求格式2.2 HTTP响应格式 三、常见的HTTP状态码3.1 其他状态码示例 四、HTTP版本的演变4.1 HTTP/1.04.2 HTTP/1.14.3 HTTP/24.4 HTTP/3 五、HTTP的安全…...
poll()方法和remove()方法的区别是什么?
在Java的集合框架中,poll()方法和remove()方法是两个常用于从队列(Queue)头部获取并移除元素的方法。尽管它们的作用相似,但在行为细节和适用场景上存在显著的区别。以下是对这两个方法区别的详细阐述,旨在帮助开发者更…...
小程序跳转另一个小程序
1.配置要跳转的appid和小程序页面路径 wx.navigateToMiniProgram({appId: 目标小程序appid,path: 目标小程序页面路径,//develop开发版;trial体验版;release正式版envVersion: release, success(res) {// 打开成功console.log("跳转小程序成功&…...
介绍一下数组(c基础)(详细版)
c初期,记住规则,用规则。 我只是介绍规则。(有smart版) 数组 arr 看成一个集合但元素有次序了。 如何计算数组的大小-CSDN博客 简单讲解一下strlen与sizeof(c基础)-CSDN博客 arr[n] { }; [ ] 下标引…...
工业主板在汽车制造中的应用
工业主板在汽车制造中的应用非常广泛,主要得益于其高稳定性、高集成性、以及强大的计算和处理能力。以下是对工业主板在汽车制造中应用的详细分析: 一、应用场景 自动驾驶车辆: 工业主板作为自动驾驶车辆的核心计算平台,负责处…...
博弈论(所有情况最优解)——课堂笔记
博弈论(所有情况最优解)——课堂笔记|【博弈论】分割数游戏-CSDN博客https://blog.csdn.net/back_room/article/details/143464453?spm=1001.2014.3001.5501【博弈论】拍卖土地-CSDN博客...
深入提升Python编程能力的全方位指南
Python作为一种强大且灵活的编程语言,广泛应用于数据科学、机器学习、网络开发、自动化等领域。提升Python编程技术需要结合多方面的知识和技能。本文将详细介绍通过掌握核心技术、项目实践和代码示例来系统提升Python编程技能的方法。 一、掌握基础和高级Python特…...
如何使用 Python 语言的正则表达式进行网页数据的爬取?
以下是使用 Python 语言的正则表达式进行网页数据爬取的一般步骤: 一、安装必要的库: requests:用于发送 HTTP 请求获取网页内容。可以使用 pip install requests 命令进行安装。re:Python 的内置正则表达式库,用于对…...
剑指offer第七、八天
1.矩阵中的路径 class Solution {int n, m;int dx[4]{ 1,-1,0,0 };int dy[4]{ 0,0,1,-1 };bool dfs(int i, int j, vector<vector<char> >mat,vector<vector<bool> >vis, int u, const char* str){if (u strlen(str)-1){//刚开始这里我用的是strlen(…...
有哪些常见的方法可以评估中断处理能力?
以下是一些常见的评估中断处理能力的方法: 基准测试(Benchmarking) 定义和原理:基准测试是通过运行一系列标准化的测试程序来衡量系统性能的方法。对于中断处理能力评估,可以使用专门设计的中断基准测试软件。这些软件会模拟各种中断场景,如不同频率、不同优先级的中断请…...
Android GPU纹理数据拷贝
在 Android 开发中读取纹理数据有以下几种方法: glReadPixelsImageReaderPBO(Pixel BufferObject) HardwareBuffer 1. glReadPixels glReadPixels 是 OpenGL ES 的 API,通常用于从帧缓冲区中读取像素数据,OpenGL ES…...
浏览器端直播推流实现——系统篇
浏览器端用vue3.5.12写,服务器端用php8.2+swoole5.1.4+thinkphp8写,流媒体服务器使用nginx-rtmp模块,拉流App端用uniapp(其他端各自实现吧,这里以App端为例) 操作系统基于opencloudos8,还用到了ffmpeg,该安装就安装,这里不啰嗦安装步骤 以下是vue的代码,比较简陋,各…...
HDFS和HBase跨集群数据迁移 源码
HDFS集群间数据迁移(hadoop distcp) hadoop distcp \ -pb \ hdfs://XX.14.36.205:8020/user/hive/warehouse/dp_fk_tmp.db/ph_cash_order \ hdfs://XX.18.32.21:8020/user/hive/warehouse/dp_fksx_mart.db/HBase集群间数据(hbase ExportSnap…...
opencv实时弯道检测
项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…...
计算机网络综合题
IP数据报的划分 CRC差错检测 冗余码的计算 因此,余数是1110,传输的数为11010110111110。在传输过程中最后两位变成o,接收端能够发现,因为11010110111110除以10011余数不为0。 子网划分 暴力求解法 (定长子网划分大量…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
