#tui #rss #atom #feed-reader

bin+lib moccasin

一个支持 RSS、Atom 以及(理想中)播客的 TUI 文摘阅读器

3 个版本

0.1.2 2023 年 8 月 31 日
0.1.1 2023 年 8 月 31 日
0.1.0 2023 年 8 月 31 日

2836命令行工具

MIT 许可证

5.5MB
2.5K SLoC

moccasin

一个支持 RSS、Atom 以及(最终)播客的 TUI 文摘阅读器。VIM 键盘绑定。受 Ranger 启发的设计界面。可配置。

Crates.io (version) CI status

GitHub stars GitHub forks GitHub watchers Follow on GitHub

tabs TUI in action

安装

cargo install moccasin

用法

由于 "moccasin" 这个词很难拼写,且字母太多,所以可执行文件仅称为 mcsn

mcsn [OPTIONS]

选项

命令行参数将覆盖会话中设置的任何配置文件值。

简写 长格式 参数 描述
-c --config <PATH> 设置自定义配置文件
-s --color-scheme <COLOR_SCHEME> 设置颜色方案,可以是内置的或指向自定义主题文件的路径
-i --interval <INTERVAL> 设置自定义刷新频率(以秒为单位)
-t --timeout <TIMEOUT> 设置自定义请求超时(以秒为单位)
-n --no-cache 不在本地文件支持的数据库中缓存文摘
-h --help 显示帮助信息
-V --version 显示版本

配置

首次启动时,Moccasin 将在您的默认配置目录中创建数据库和配置文件,该目录因平台而异

平台 示例
Linux $HOME/.config/moccasin/ /home/alice/.config/moccasin/
macOS $HOME/Library/Application Support/com.rektsoft.moccasin/ /Users/Alice/Library/Application Support/com.rektsoft.moccasin/
Windows {FOLDERID_LocalAppData}\rektsoft\moccasin\config C:\Users\Alice\AppData\Local\rektsoft\moccasin\config

该目录下的 moccasin.toml 文件可以被编辑以自定义应用程序行为,批量添加文摘,更改颜色方案等。大多数这些属性也可以在应用程序内部更改,并将写入此文件。配置选项如下

moccasin.toml

字段 类型 默认 描述
[sources]
订阅 数组 [] 您希望在应用中看到的 Atom/RSS 订阅的 URL。
[偏好设置]
颜色方案 枚举 | 表格 "默认" 可以是内置的颜色方案名称,以下列表中的一个:"default" | "borland" | "darcula" | "focus" | "jungle" | "matrix" | "redshift" | "wyse",或者是一个如下方所述的值表。
sort_feeds 枚举 "a-z" 订阅的排序顺序,以下列表中的一个:"a-z" | "z-a" | "newest" | "oldest" | "unread" | "custom"
cache_feeds 布尔值 true 是否将订阅写入本地数据库以加快启动和访问速度。当设置为 false 时,应用将使用内存数据库。
refresh_interval 整数 3600 多久刷新一次订阅,以秒为单位。
refresh_timeout 整数 5 在取消每个订阅之前等待的时间,以秒为单位。

颜色方案

要创建自定义颜色方案,可以将 color_scheme 字段声明为一个表格,其中键是界面元素,值可以是内置的 ANSI 颜色(将继承自您的终端模拟器)、HEX 颜色,或者具有相同类型的 fgbg 属性的 InlineTable。

[preferences.color_scheme]
base = { fg = "white", bg = "#000080" }
status = { fg = "gray", bg = "#000080" }
border = "gray"
selection_active = { fg = "#000080", bg = "#fefd72" }
scrollbar = { fg = "white", bg = "gray" }

内置颜色名称有

  • "白色"
  • "黑色"
  • "红色"
  • "绿色"
  • "黄色"
  • "蓝色"
  • "品红色"
  • "青色"
  • "灰色"
  • "浅红色"
  • "浅绿色"
  • "浅黄色"
  • "浅蓝色"
  • "浅品红色"
  • "浅青色"
  • "浅黑色" | "深灰色"

可样式化的属性都是可选的,继承合理的默认值。以下是可以用的属性:

字段 默认 描述
base 终端默认 基本前景和背景颜色
overlay base 模式覆盖
status base 顶部菜单栏和底部状态栏的颜色
selection ~base 选中的列表项
selection_active selection 活动面板的选中列表项
border border_active* 面板周围的边框和标题
border_active base 活动面板的边框和标题
scrollbar base 滚动条的滑块(fg)和轨道(bg

* 注意:当继承的样式(无论是 base 还是 border_active)定义为十六进制颜色时,定义 border 是很重要的,否则将很难知道哪个面板当前处于活动状态。

快捷键

该应用使用 VIM 风格的快捷键,但也可以使用箭头键进行导航。目前,应用有 NORMAL 模式和 COMMAND 模式。在未来,您还应该能够在 GROUP 模式下标记和分组源和条目。

NORMAL 模式

描述
j/k 聚焦下一个/前一个条目
h/l 聚焦上一个/下一个面板
Enter 选择当前条目
Esc 取消选择当前条目/模式
Tab 循环标签
b/f/t 查看浏览/收藏/标签标签页
r 刷新所有源
o 在浏览器中打开当前源/条目
: 进入 COMMAND 模式
, 打开配置文件
? 显示快捷键

COMMAND 模式

命令 参数 描述
:a, :add <URL> 添加源
:d, :delete [URL] 删除 URL 的源,或未提供时删除当前源。从配置文件和缓存中删除此条目。
:s, :search <TEXT> 搜索源、条目或文本内容

许可

MIT © Tobias Fried

依赖项

~33–49MB
~868K SLoC