
开发者发布终端 IRC 客户端 Trout,界面复刻 mIRC
来源标题:Show HN: Trout: MIRC for the Terminal
Trout 是一款受 mIRC 启发的终端 IRC 客户端,保留了菜单、切换栏、树状栏、昵称弹窗和通讯录等经典界面元素,并通过 soju bouncer 保持在线与聊天记录。用户若没有 bouncer,Trout 可自动在本地或远程服务器上搭建一个,支持 macOS、Linux 和 Windows。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
一个受 mIRC 启发、面向终端的 IRC 客户端。它的外观和用法都像你记忆中的 mIRC——菜单、切换栏、树状栏、昵称列表弹出菜单、地址簿等等一应俱全——并通过 soju bouncer 建立连接,让你保持在线,并在 trout 关闭期间保留你的历史记录。没有 bouncer?trout 会为你搭一个。
需要一个支持鼠标和 24 位色彩的终端:iTerm2、Ghostty、kitty、WezTerm、Alacritty、Windows Terminal、GNOME Terminal、Konsole。
bouncer 可有可无:trout 可以连接你已有的 soju,也可以在你能够 SSH 登录的 Linux 服务器上、或在 Hetzner Cloud、DigitalOcean 或 Google Cloud 免费套餐的新服务器上为你搭一个,或者在 trout 打开期间直接在本机运行一个。
需要 Go 1.26 或更高版本才能构建。
安装与运行 brew install --cask maxrenaud/tap/trout # macOS 和 Linux trout # 首次运行出现连接对话框,之后使用已保存的 bouncer trout --demo # 一个假世界,无网络:先四处看看 或者从 Releases 下载适用于 macOS、Linux 或 Windows 的压缩包(Intel/AMD 或 ARM;linux_armv6 用于 32 位 Raspberry Pi OS),在解压目录中运行 trout:它安装并运行的 soju 就在同一压缩包里,紧挨着它。从源码安装,go install github.com/MaxRenaud/trout/cmd/trout@latest 也可以,dev/build-soju 会构建那个 soju。
trout 启动时每天检查一次新版本(Options > Other 可以关闭;Help > Check for Updates 可立即检查),并按你当初的安装方式来更新:用 Homebrew 装的就走 Homebrew,压缩包解压的就地替换文件。go install 安装的会被告知相应命令。
trout 尚未签名。macOS 上 Homebrew 会处理这一点;如果是下载的压缩包,macOS 会提示无法检查 trout:对解压后的文件夹执行一次 xattr -dr com.apple.quarantine 即可。Windows 上,SmartScreen 首次可能发出警告:点击“更多信息”,然后“仍要运行”。
首次运行会要求输入 bouncer 地址(ircs://host[:port])、用户名和密码,或者提供“搭建一个”(Set One Up)或“在本机运行”(This Computer)的选项。
密码保存在与 config.toml 同目录的凭据文件中(权限 0600),位于你的配置文件夹(macOS 上是 ~/Library/Application Support/trout,Linux 上是 ~/.config/trout,Windows 上是 %AppData%\trout)。在 TLS 下,密码登录之后,trout 会请求 bouncer 记住本机的证书,此后便用该证书登录。
命令行参数和环境变量会覆盖配置:--addr / TROUT_ADDR、--user / TROUT_USER、--password / TROUT_PASSWORD、--config / TROUT_CONFIG、--bouncer 用于选择已保存的 bouncer。config.toml 中的 password-command 会运行一条命令(例如 pass show soju)来获取密码。
Bouncer > Set Up Bouncer 会为你安装 soju:在你能够 SSH 登录的 Linux 服务器上(它使用你自己的 ssh,所以 ~/.ssh/config 和你的 agent 可直接生效,root 权限则通过 sudo、sudo 密码或你自己运行的命令获得),或者在 Hetzner Cloud、DigitalOcean 或 Google Cloud 上新建的服务器上(选择区域、查看价格、Create Server)。它会生成并固定一个 TLS 密钥,因此无需购买域名,然后通过登录来检查 bouncer,并把你的网络迁移过去。之后 Bouncer > Bouncers 可以更新或移除它,同时也会删除服务器。
This Computer 则在 trout 打开期间直接在本机运行 soju,适用于没有服务器的情况。Bouncer > Connect a Phone 会显示一个二维码,用 Goguma(iPhone 和 Android)打开即可连上你的 bouncer,从而获得 soju 的推送通知;如果没有 Let's Encrypt 证书,它会显示 Goguma 要求你接受的 SHA-1。如果有证书,它的 Browser 按钮会在 trout 的页面(trout-irc.github.io)上给出 soju 的网页客户端 gamja 的链接,适用于任何浏览器。
mIRC 的布局:菜单栏、工具栏、切换栏、树状栏、昵称列表、编辑框、Windows 98 风格的对话框,以及 mIRC 的颜色和格式代码(Ctrl+B、Ctrl+K、Ctrl+U……)。
把 bouncer 的网络当作 mIRC 的服务器:Connect、Disconnect、Select Server 和 /server 都经由 soju,并附带一份可添加的 25 个大型网络列表。Bouncer 菜单里有它的设置:网络及其连接时执行的命令、频道(分离以及分离期间你能听到的内容)、你的昵称和密码,以及用户(如果你是管理员)。
历史记录:窗口内容从 bouncer 填充,已读标记会与其他客户端同步,Ctrl+F 可以搜索 bouncer 的全部历史。
Channel Central(模式、封禁、例外、邀请、主题)、频道列表、收藏、地址簿(通知、忽略、自动 op 与保护、昵称颜色、高亮)、Perform、CTCP、DCC Get 和 Chat、通过 bouncer 的文件主机发送文件、URL 捕获、时间戳、行标记、Options 页面和颜色对话框。
多行编辑框(Alt+Enter)、第二个编辑框(Alt+Q)、每个按钮弹出菜单中的窗口专属选项、为 bouncer 和 DCC 设置的代理(SOCKS4、SOCKS5、HTTP)。
mIRC 脚本和脚本编辑器(见 Scripting)。
十一种配色主题,从绿色磷光到 Nord 再到纯黑,也支持自定义(见 Themes)。F1 列出所有按键。右键、Ctrl+单击或长按会打开弹出菜单。
trout 可运行 mIRC 脚本:别名、弹出菜单、事件、变量、定时器、哈希表、文件和 Users 列表,适用于那些自动化脚本(自动 op、问候、!seen、trivia)。脚本编辑器(Tools > Scripts Editor,或 Alt+R)的用法和 mIRC 的一样,带有 Aliases、Popups、Remote、Users 和 Variables 标签页及其文件,因此你的脚本可以直接复制过来。每个右键菜单都来自 popups.ini,所以你可以随意修改。自定义 @windows 可用,支持文本和列表框;但不支持 mIRC 的对话框、图片窗口或 DLL,那些需要 Windows。见 docs/scripting.md。
View > Themes,或 Tools > Colors 中的 Scheme 列表:Green Phosphor、Amber、DOS Blue、BBS、Classic(mIRC 自身的颜色,默认)、High Contrast、Solarized、Gruvbox、Dark、Nord 和 Black(纯黑,窗格之间是细蓝线,类似 Weechat)。F2 在 Classic 和 Dark 之间切换。颜色对话框随后可以把任意类型的文本改为主题 16 色之一,和 mIRC 一样。要自定义,在 config.toml 旁的 themes 文件夹中放一个 .toml 文件:它从某个内置主题开始,只修改你列出的颜色。见 docs/themes.md。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。