QTalk For Emacs, 扩展自jabber.el
依赖:
- Linux或者Mac OSX系统安装GNU Emacs v24.5+, 低于这个版本的emacs可能会因为找不到subr-x模块报错。
- wget命令,chat buffer里加载图片需要;
- openssl
- autoconf, 推荐更新到最新版本,低版本可能在运行时报错。
- automake
- emacs-uuid, 或者命令行能提供uuidgen命令;
- ImageMagick, 截屏功能依赖此。
- dash.el, 可以通过package-install安装
安装运行:
-
编译
首次:
autoreconf -i
./configure
make jabber-autoloads.el
每次更新代码需要重新运行上面的:
./configure
make jabber-autoloads.el
-
初始化静态资源目录:
- 目录下的资源内容请联系管理员获取,分别按照格式要求置入。资源目录结构说明与示例见: jabber-qim-exts/resources
-
添加上述静态资源目录到本地.emacs初始化配置:
(setq *jabber-qim-resource-dir* "<静态资源目录路径>") (setq *jabber-qim-pubkey-filename* "<用于客户端密码加密的公钥文件名,从静态资源目录的qim-auth-keys目录下选取>")
-
根据服务端的导航服务,为本地.emacs添加以下初始化配置参数:
(setq *jabber-qim-http-url* "<服务端通用http接口url地址,取值baseaddress.httpurl>") (setq *jabber-qim-message-history-url* "<服务端历史消息接口url地址,取值baseaddress.javaurl>")") (setq *jabber-qim-file-server* "<服务端文件服务地址,取值baseaddress.fileurl>") (setq *jabber-qim-xmpp* "<xmpp服务器地址,取值baseaddress.xmpp>") (setq *jabber-qim-xmpp-port* "<xmpp服务端口号,取值baseaddress.xmppport>") (setq *jabber-qim-domain* "<用户id所属域名,取值baseaddress.domain>")
-
设置load-path变量,本地文件保存目录,并加载初始化文件:
(add-to-list 'load-path "<本工程目录>") (setq jabber-qim-local-file-dir "~/qim-local-files") ; qim保存本地文件的目录,若不设置,默认为"~/qim-local-files" (load "jabber-autoloads")
-
设置登录认证信息
(setq jabber-account-list `( (,(format "%s@%s" "<用户ID>" *jabber-qim-domain*) (:network-server . ,*jabber-qim-xmpp*) (:port . ,*jabber-qim-xmpp-port*) (:password . ,(jabber-qim-password "<用户ID>" "<登录密码>")))))
-
登录
M-x jabber-connect-all (C-x C-j C-c)
-
开启点对点聊天:
M-x jabber-chat-with (C-x C-j C-j)
-
加入群组:
M-x jabber-qim-muc-join (C-x C-j C-m)
-
创建群组:
M-x jabber-qim-chat-start-groupchat (C-x C-j C-g)
-
发送文件:
M-x jabber-qim-send-file (C-x C-j C-f)
-
截屏:
M-x jabber-qim-send-screenshot (C-x C-j C-s)
-
以其他客户端可以直接点击打开的格式发送链接:
M-x jabber-qim-send-link (C-x C-j C-i)
-
邀请入群组:
M-x jabber-muc-invite (C-x C-j C-v)
-
聊天状态下打开功能菜单:
C-c C-c (点对点聊天菜单)
C-c [return] (群聊菜单)
-
开启/关闭群组消息提示(重启后仍生效)
M-x jabber-muc-toggle-message-alert
-
切换到含未读消息的会话
M-x jabber-qim-chat-switch-to-unread (C-x C-j C-u) (可通过补全方式选择含未读消息的会话)
M-x jabber-activity-switch-to (C-x C-j C-l) (不经选择直接跳到最近未读消息的会话)
需要输入群组ID或者用户ID的时候,都可以用TAB在minibuffer里做补全。用户ID可以用域用户名或者姓名的方式做前缀检索。
- GNU Emacs 25.3版本,初始化群聊时会因为访问服务端api报错失败,因此目前建议用24.x版本
- 不能发送表情
- 发送文件和图片的大小不能超过10MB
- 接收到大尺寸的图片时,emacs进程会卡顿
- buffer里不能播放gif动图
- 不支持点对点加密聊天
- 开发分支:qim-emacs
- RELEASE分支:master