6 个版本
使用旧的 Rust 2015
0.1.5 | 2018 年 9 月 1 日 |
---|---|
0.1.4 | 2018 年 7 月 30 日 |
0.1.3 | 2017 年 11 月 18 日 |
0.1.2 | 2017 年 9 月 18 日 |
0.1.0 | 2017 年 7 月 14 日 |
#2 in #terminals
24 每月下载量
用于 termbox_simple
14KB
249 行代码
tiny - 另一个终端 IRC 客户端
tiny 是一个用 Rust 编写的 IRC 客户端。
功能
-
干净的 UI:连续的 join/part/quit 消息显示在同一行,如果消息时间与之前相同则省略时间戳。(受 irc-core 启发)
-
将所有提及用户的信息收集在“提及”标签中,包括服务器和频道信息。“提及”标签解决了长时间不活跃后,在频道中未提及您的问题。
-
在频道中提及用户将被突出显示(标签页列表中的频道标签页也会突出显示)
-
简单的配置文件格式,用于自动连接服务器、加入频道、注册昵称等。请参阅下方的配置部分。
-
在频道中进行昵称自动完成
-
频道中的昵称被着色。
-
断开连接检测和自动重新连接。您可以在笔记本电脑上运行 tiny,并在睡眠后自动重新连接。
-
受终端仿真器和 vim 启发的可配置快捷键。请参阅下方的快捷键部分。
-
可配置颜色
-
SASL 身份验证
-
在新消息上可配置的桌面通知(作为功能标志后的可选功能,请参见下文)
-
与 znc 兼容
-
TLS 支持
安装
tiny 在 Linux 和 OSX 上运行。Windows 用户可以在 Windows Subsystem for Linux 下运行它。
有关预构建的二进制文件,请参阅发布。要从源代码构建,请确保您有 Rust 1.48 或更高版本。默认情况下,tiny 使用 rustls 进行 TLS 支持,并且禁用桌面通知。
-
要使用系统 TLS 库(OpenSSL 或 LibreSSL),请向您的命令添加
--no-default-features --features=tls-native
。请注意,这需要在 Linux 上安装 OpenSSL 或 LibreSSL 的头文件和运行时库。 -
要启用桌面通知,请添加
--features=desktop-notifications
。这需要在 Linux 上安装 libdbus。
在克隆中安装
cargo install --path crates/tiny
如果您不想克隆存储库,您可以使用
cargo install --git https://github.com/osa1/tiny
如果您已安装了较旧版本,请向您的命令添加 --force
。
Arch Linux 用户可以通过 AUR 安装 tiny 的最新稳定版和开发版。
tiny已在Linux和OSX上进行了测试。
配置
tiny会在以下位置查找配置文件
- 在Linux上:
$XDG_CONFIG_HOME/tiny/config.yml
,在macOS上:$HOME/Library/Application Support/tiny/config.yml
- (如果找不到)
$HOME/.config/tiny/config.yml
- (如果找不到,已弃用)
$HOME/.tinyrc.yml
如果在这些位置中找不到配置文件,tiny会在上面的第一个路径中创建一个默认的配置文件并退出,打印配置文件路径。在重新运行tiny之前编辑该文件以更改默认值。
关于昵称识别的说明:一些IRC服务器,如ircd-seven(由Freenode使用)和InspIRCd(由Mozilla使用),支持通过PASS
命令进行识别。当一些自动加入的频道需要识别时,这种识别方式(而不是向像NickServ
这样的服务发送消息)更好。要使用此方法,在服务器的pass
字段中输入您的昵称密码。
使用外部命令密码
当配置文件中的密码字段是一个具有command
键的映射时,其值用作运行以获取密码的shell命令。
例如,在这个配置中
sasl:
username: osa1
password:
command: 'pass show "my irc password"'
tiny运行pass ...
命令,并使用该命令打印的最后一行作为密码。
命令行参数
默认情况下(即没有传递命令行参数时),tiny连接到配置中列出的所有服务器。tiny将命令行参数视为要匹配的服务器地址的模式,因此您可以将命令行参数传递给仅连接到配置中指定的服务器子集。例如,在这个配置中
servers:
- addr: irc.libera.chat
...
- addr: irc.gnome.org
...
默认情况下,tiny连接到两个服务器。您可以通过传递libera
作为命令行参数仅连接到第一个服务器。
您可以使用--config <路径>
来指定您的配置文件位置。
键盘快捷键
可以在配置文件中配置键盘快捷键,有关详细信息,请参阅维基页面。
默认键盘快捷键
-
C-a
/C-e
将光标移动到输入字段的开始/结束位置 -
C-k
删除整行剩余内容 -
C-w
删除一个单词 -
C-left
/C-right
向后/向前移动一个单词 -
page up
/page down
,shift-up
/shift-down
或C-u
/C-d
进行滚动 -
C-n
/C-p
下一个/上一个标签页 -
C-c enter
退出(请求确认) -
alt-{1,9}
切换到第n个标签 -
alt-{char}
切换到下一个带有下划线的标签char
-
alt-0
切换到最后一个标签 -
alt-left/right
将标签移动到左侧/右侧 -
C-x
在$EDITOR
中编辑当前消息
命令
命令以 /
字符开头。
-
/help
:显示以下列出的命令的帮助信息。 -
/msg <nick> <message>
:向用户发送消息。创建新的标签。 -
/join <channel>
:加入频道 -
/close
:关闭当前标签。如果当前标签是频道,则离开频道。如果标签是服务器,则离开服务器。您可以使用/close <reason>
发送告别消息。 -
/connect <hostname>:<port>
:连接到服务器。使用配置文件中的默认值(昵称、真实姓名、主机名和自动命令)。 -
/connect
:重新连接到当前服务器。如果您不想在连接问题后等待一小段时间自动重新连接,请使用它。 -
/away <msg>
:设置忙碌状态 -
/away
:移除忙碌状态 -
/nick <nick>
:更改昵称 -
/names
:列出当前频道中的所有昵称。您可以使用/names <nick>
检查特定昵称是否在频道中。 -
/reload
:重新加载TUI配置 -
/clear
:清除标签内容 -
/switch <string>
:切换到第一个名称中包含给定字符串的标签。 -
/ignore
:忽略频道中的join/quit
消息。在服务器标签中运行此命令将应用于该服务器的所有频道。您可以在状态行中检查您的忽略状态。 -
/notify [off|mentions|messages]
:启用和禁用桌面通知。在服务器标签中运行此命令将应用于该服务器的所有频道。您可以在状态行中检查您的通知状态。 -
/quit
:退出。您可以使用/quit <reason>
发送告别消息。
服务器命令
对于tiny不支持作为斜杠命令的命令,在服务器标签中发送命令将直接将消息发送到服务器。
示例
LIST
将列出服务器上的所有频道MOTD
将显示服务器的每日消息RULES
将显示服务器规则- 等等...
社区
加入我们在 irc.oftc.net 的 #tiny,畅谈与 tiny 相关的任何话题!
lib.rs
:
解释我们关心的终端事件
- 调整大小事件。
- 键盘输入。
通过注册 SIGWINCH 信号处理程序来处理调整大小事件。
从 stdin 读取键盘事件。我们寻找我们关心的键组合的字节字符串。例如,Alt-箭头键、C-w 等。
依赖项
~1.5MB
~37K SLoC