6 个版本

使用旧的 Rust 2015

0.3.0 2017年12月31日
0.2.0 2017年5月11日
0.1.4 2016年3月25日
0.1.2 2016年2月20日
0.1.1 2015年12月16日

153电子邮件

每月下载 24 次

MIT 许可证

31KB
687

Mates

Build status

一个命令行地址簿。主要目标是

  • 高度可扩展性

    • Mates 在 vCard 文件夹上运行,这是一个标准的联系人文件格式。因此,还可以使用其他程序与 CardDAV 服务器同步(见下文)。
  • 用户界面响应速度 在 mutt 中完成电子邮件地址时,mates 维护一个简单的文本文件,其中包含来自 vCard 文件的几个字段,它会在其中调用 grep。文本文件看起来像这样

    work@example.com\tExample Man\t/home/user/.contacts/exampleman.vcf
    home@example.com\tExample Man\t/home/user/.contacts/exampleman.vcf
    

安装

在 ArchLinux 上,只需使用 AUR 中的 mates-git 包。

对于手动安装,您需要安装 RustCargo。1.0 和夜间版都应该可以工作。

  1. cargo install mates (或 cargo install --git https://github.com/untitaker/mates.rs 安装开发版本)
  2. ~/.cargo/bin/ 添加到您的路径中。其中的二进制文件不依赖于 Rust 或 Cargo,只需 glibcgrep

Shell 完整性

Shell 完整性文件包含在 ArchLinux 包中,用于 Bash、Fish 和 Zsh。目前 cargo install 不支持安装附加文件。

如果从源代码构建,它们将在 target/release/build/mates-<hash>/out/<shellfile> 中找到。

使用方法

将环境变量 MATES_DIR 设置为您的 .vcf 文件夹。然后运行二进制文件,使用 --help 列出所有命令。

其他环境变量是

  • MATES_GREP,覆盖 grep 二进制文件以使用。默认为 grep。此命令必须接受搜索字符串作为第一个参数和文件路径作为第二个参数。
  • MATES_INDEX,联系人索引的文件路径。默认为 ~/.mates_index

注意:“mates索引”必须定期调用。即使使用mates的自己的命令,索引也不会自动更新,因为这会严重影响UI响应。

集成

Mutt

mutt中的查询命令(电子邮件自动完成)

# ~/.muttrc

set query_command= "mates mutt-query '%s'"

# Normally you'd have to hit Ctrl-T for completion.
# This rebinds it to Tab.
bind editor <Tab> complete-query
bind editor ^T    complete

从消息创建新联系人

# ~/.muttrc

macro index,pager A \
    "<pipe-message>mates add | xargs mates edit<enter>" \
    "add the sender address"

使用此配置,在查看消息或在高亮显示文件夹视图中的消息时按A键,将将其添加到您的联系人中,并在您的编辑器中打开新联系人。如果您清除文件,则新联系人将被删除。

使用模糊查找器进行电子邮件选择

selectafzf 是可以用来搜索联系人的工具,而不是grep。

m() {
    mutt "$(MATES_GREP=selecta mates email-query)"
}

m() {
    mutt "$(MATES_GREP='fzf -q' mates email-query)"
}

Selecta比fzf更轻量级,但另一方面,fzf提供了一个更友好的界面。

与CardDAV(Vdirsyncer)同步

Vdirsyncer 可以用来将mates的 MATES_DIR 与 CardDAV 服务器同步。以下是一个简单的配置示例,其中 MATES_DIR=~/.contacts/

[pair contacts]
a = contacts_local
b = contacts_remote

[storage contacts_local]
type = filesystem
path = ~/.contacts/
fileext = .vcf

[storage contacts_remote]
type = carddav
url = https://davserver.example.com/
username = foouser
password = foopass

许可证

Mates是在MIT许可证下发布的,有关详细信息,请参阅LICENSE

依赖关系

~8.5MB
~142K SLoC