终端下的 IM 客户端:Finch

以前用 mcabber ,但支持多协议似乎比较麻烦。因为我主要使用 gtalk ,所以这个问题可以克服。但后来发现它对多帐号的支持也挺麻烦的,所以就不得不重新寻找一个 IM 客户端。

Finch 是一个文本模式下的 IM 客户端,持支多协议,持支插件,使用 ncurese 作为图形库。事实上,你可以把 Finch 看作是一个命令行版的 Pidgin 。

一,安装 Finch

Finch 在 Arch 下的 extra 仓库中,可以使用 pacman 安装:

sudo pacman -S finch

二,添加一个账户

虽然是命令行模式的客户端,但因为使用了 ncurese ,所以你几乎不需要编写配置文件就可以很好的使用 Finch 。在终端键入 finch ,如果是第一次运行,finch 提示你设置你的 IM 帐号。

Finch 默认就支持很多协议,AIM, Bonjour, Gadu-Gadu, GroupWise, ICQ, IRC, MSN, MXit, MySpaceIM, QQ, SILC, SIMPLE, XMPP, Yahoo, Zephyr 。选择一个类型,填上相应的信息就 OK 了。

例:添加 Gtalk 账户

添加 Gtalk 帐号要稍微麻烦一点,而你一定发现了在 Finch 支持的协议类型中并没有 gtalk 。这是因为 gtalk 使用的通讯协议为 XMPP ,所以在协议类型中选择 XMPP 。

username 填写你的 gmail 用户名(不带@),domain 中填写“ gmail.com ”。Resource 留空,输入 password ,以及 alias (别名,如果需要)。如果你希望 Finch 检查的你 gmail 邮箱并在有新邮件时提醒你,可以选上 “New mail notifications” 这一项。

其余选项默认即可。

三,使用 Finch

完成账户配置后,Finch 默认会打开一个 Buddy List 窗口,显示你的在线好友。如果希望显示所有好友的话,可以在此菜单上按 F10 键,呼出相应菜单,然后在 Show 选项里面更改。

既然是一个命令行模式的 IM 客户端,那么快捷键是必备的。

Alt  + a

显示所有可用的动作。你可以从这里打开账户配置窗口,插件窗口,首选项窗口等等。

Alt  + n :切换到下一个窗口。

Alt  + p :切换到上一个窗口。

Alt  + w :显示当前打开的窗口列表,你可以在这里快速切换到目标窗口。

Alt  + c :关闭当前窗口。

Alt  + q :退出 Finch 。

Alt  + m :移动当前窗口。使用箭头更改窗口位置,完成后按下 Enter 键或 Escape 键。

Alt  + r :调整当前窗口的大小。使用箭头更改窗口大小,完成后按下 Enter 键或 Escape 键。

Alt  + D :将当前屏幕内容保存为 html 文档。

Alt  + . :将当前窗口向右移动一个位置。

Alt  + , :将当前窗口向左移动一个位置。

Alt + l :刷新当前窗口,在更改终端大小后很有用。

Alt  + 1 2 3 ... 0 :切换到第1,第2 ... 第10个窗口。 

Alt  + Tab :切换到下一个高亮窗口(当有新的事件发生时窗口会高亮,比如收到新消息)。

Alt  + Shift + Tab :切换到上一个高亮窗口。

Ctrl + o or F10 :呼出当前窗口的菜单(如果有的话)。

F11 or Ctrl + x :呼出被选内容的相应菜单(如果有的话)。

Alt  + / :显示当前内容下的可以键绑定。

Alt  + > :切换到下一个工作区。

Alt  + < :切换到上一个工作区。

Alt  + t :标记(取消标记)当前窗口。

Alt  + T :将已标记窗口移动到当前工作区。

Alt  + s :显示所有工作区。

F9 :创建一个新的工作区,然后切换到该工作区。

四,一些小技巧

1,插件

通过插件,可以无限扩充 Finch 的功能。你可以按下 Alt + a 键,然后选择 “Plugins” 进入插件菜单。这里是几个我觉得比较有用的插件。

1) 显示最近会话记录

GntHistory,存在于 /usr/lib/finch/gnthistory.so ,它能够在你打开一个新的会话窗口时,将最近的会话记录插入到窗口。

2) 自动接收文件

Autoaccept,当你的好友向你发送文件时,Finch 会自动接受。你可以设定默认保存目录,拒绝非好友的文件传输请求。文件传输完成时,Finch 会提醒你。

3) 好友状态提示

Buddy State Notification ,在会话窗口中提示好友的状态,在线,离开或离线。

4) Gnt 剪贴版

GntClipboard ,当 gnt 的剪贴板内容发生变化时,该插件会让其在 X 下也是可用的。

5) 高亮终端

GntGf ,打开选项 “Set URGENT for the terminal window” ,当有新的事件发生时,Finch 会高亮终端。这对于 awesome 特别有用,awesome 会高亮显示 Finch 所在的标签。可以设定的事件类型包括好友上线/离线、收到新消息、聊天室有新的发言、聊天室中有人提及你的名字。

6) 手动设置闲置时间

I’dle Mak’er,该插件可以让你分别对每个账户设置闲置(有空)时间,此时间过后自动变为忙碌或离开状态。

7) 读取其他会话记录

Log Reader,当你查看会话记录时,这个插件可以读取其他 IM 客户端(Adium,MSN Messenger,aMSN,Trillian)的记录。

8) 灵通模式

Psychic Mode,该插件能够在对方刚开始输入给你的消息时就提醒你对方正在给你发送消息。

9) 短网址

TinyURL,当对方给你发送一个网址时,它会自动缩短该网址。

10) 添加其他协议

你可以使用插件让 Finch 支持更多的协议。比如可以你想登陆 Skype ,你可以安装 skype4finch 这个插件,它存在于 Arch 的 aur 仓库中。所以需要使用 yaourt 来安装:

yaourt -S skype4finch

2,启用鼠标

虽然我热衷 CLI ,但不得不承认,在某些时候鼠标还是非常方便的。默认情况下,在 Finch 中不能使用鼠标,但是可以通过 .gntrc 来启用鼠标。在 ~/.gntrc 中的 [general] 部分(没有的话自行建立)加入如下内容:

mouse = 1

重启 Finch 后就可以使用鼠标来控制它了。不过你会发现启用鼠标后就不能用鼠标选择终端里的文字了,此时你需要按住 Shift 键,才能使用鼠标选择文字。

3,好友分组

选中要分组的好友,按下 t 键,你可以一次对多个好友分组。然后移至目标组上,按下 a 键即可。

4,展开组/联系人

在需要展开或折叠的组/联系人上按空格键。

5,更改键绑定

你可以在 ~/.gntrc 中更改键绑定。比如,要将“切换到下一个窗口”绑定到 Alt + Ctrl + n ,你需要在 ~/.gntrc 中添加:

[GntWM::binding]
a-c-n = window-next

但这时 Alt + n 依然有效。如果你想将 Alt +n 禁用,你需要这样做:

[GntWM::binding]
a-c-n = window-next
a-n=

这只是一个小例子,更详细的方法可以查看 Finch 的 manpage 。

五,一些不足

个人感觉 Finch 的键绑定有点别扭,效率也不高。如果有插件可以让 Finch 支持 Vim 式的键绑定就好了。

Finch 会在有新消息时播放声音,但如果是当前会话窗口,Finch 则不会有声音提醒,这很不错。但因为 Finch 是运行在虚拟终端里,它不能检测这个虚拟终端是否为活动窗口,所以,当 Finch 中的当前会话窗口有新消息而 Finch 所在的虚拟终端又不是活动窗口时,你可能不能及时地看到一些消息。

终端下的 IM 客户端:Finch》上有8条评论

  1. hi

    我在 OpenBSD 里面用 finch, 除了 F10 之外,“Alt+” 类型的快捷键都不管用,用 Ctrl+c 会提示退出,按 F9 界面会消失,这是怎么回事?

    [回复]

    hc 回复:

    不好意思,BSD 不太了解。

    [回复]

发表评论

电子邮件地址不会被公开。