arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
455 lines (311 loc) • 20.9 kB
Markdown
QQ 是腾讯公司开发的即时通讯软件,为 ICQ 的仿制品,是中国最流行的 IM 软件。本页面列出了 Linux 下使用 QQ 的各种解决方案。
## Contents
* [1 使用虚拟机](#.E4.BD.BF.E7.94.A8.E8.99.9A.E6.8B.9F.E6.9C.BA)
* [2 基于 WebQQ](#.E5.9F.BA.E4.BA.8E_WebQQ)
* [2.1 SmartQQ](#SmartQQ)
* [2.2 官方 Adobe Air 客户端](#.E5.AE.98.E6.96.B9_Adobe_Air_.E5.AE.A2.E6.88.B7.E7.AB.AF)
* [2.3 PyWebQQ (python-webqq)](#PyWebQQ_.28python-webqq.29)
* [2.4 pidgin-lwqq](#pidgin-lwqq)
* [2.5 telepathy/empathy-lwqq](#telepathy.2Fempathy-lwqq)
* [2.6 gtkqq](#gtkqq)
* [2.7 qtqq](#qtqq)
* [2.8 weechat-webqq](#weechat-webqq)
* [2.9 SmartIM](#SmartIM)
* [3 独立开发](#.E7.8B.AC.E7.AB.8B.E5.BC.80.E5.8F.91)
* [3.1 libqq](#libqq)
* [4 官方版本](#.E5.AE.98.E6.96.B9.E7.89.88.E6.9C.AC)
* [5 Wine 模拟](#Wine_.E6.A8.A1.E6.8B.9F)
* [5.1 Wine QQ](#Wine_QQ)
* [5.2 Wine QQ 轻聊版](#Wine_QQ_.E8.BD.BB.E8.81.8A.E7.89.88)
* [5.3 Wine TIM](#Wine_TIM)
* [5.3.1 安装前的准备](#.E5.AE.89.E8.A3.85.E5.89.8D.E7.9A.84.E5.87.86.E5.A4.87)
* [5.3.2 安装及配置](#.E5.AE.89.E8.A3.85.E5.8F.8A.E9.85.8D.E7.BD.AE)
* [5.3.3 相关问题解决](#.E7.9B.B8.E5.85.B3.E9.97.AE.E9.A2.98.E8.A7.A3.E5.86.B3)
* [5.4 CrossOver TM2013](#CrossOver_TM2013)
* [5.5 Awesome 下的配置](#Awesome_.E4.B8.8B.E7.9A.84.E9.85.8D.E7.BD.AE)
* [5.6 i3 下的配置](#i3_.E4.B8.8B.E7.9A.84.E9.85.8D.E7.BD.AE)
* [6 参阅](#.E5.8F.82.E9.98.85)
## 使用虚拟机
简单方便,不用解决各种依赖、字体等问题。这里建议使用 VirtualBox。
1\. 安装[virtualbox](https://www.archlinux.org/packages/?name=virtualbox),可参看[VirtualBox (简体中文)](/index.php/VirtualBox_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "VirtualBox (简体中文)") 。 2\. 下载[Microsoft 提供的正版虚拟机专用系统](https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/)(选择 VirtualBox 格式的下载)。
3\. 从虚拟机导入系统(根据使用需求设置虚拟机要使用的 CPU 和内存配置);
4\. 在虚拟机中的 Windows 系统中安装腾讯 QQ。
技巧:VirtualBox 的**无缝模式**(默认按键 CTRL + L)开启后,虚拟机系统中开启的窗口就如同在宿主机中的原生窗口一样,使用体验大大提升。
## 基于 WebQQ
**警告:** 腾讯将关闭旧版的 WebQQ,并用SmartQQ取而代之, 届时恐怕所有依赖 WebQQ 协议的客户端都将不可用。
### SmartQQ
[SmartQQ](http://w.qq.com/) 是腾讯推出的网页端 QQ,它高度模仿微信风格,功能欠完善,高度依赖网络环境,而且需要通过手机客户端扫描二维码登录。
将 Google Chrome 的把网站做为应用程序与其桌面提醒功能整合,也可以打造一个实用的 QQ 软件:
1. 安装并运行 [Chromium (简体中文)](/index.php/Chromium_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Chromium (简体中文)")或者[火狐浏览器firefox](/index.php/Firefox_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Firefox (简体中文)"),并打开 [SmartQQ](http://w.qq.com/),需要手机QQ客户端扫描二维码登陆,功能少。
### 官方 Adobe Air 客户端
**警告:** Adobe Air 的 Linux 版本似乎已经停止开发,且从 [Arch User Repository (简体中文)](/index.php/Arch_User_Repository_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Arch User Repository (简体中文)") 编译安装时会用到大量 lib32 库,会与 64位 Arch Linux 原有的库发生冲突,不推荐使用
腾讯官方提供的 WebQQ 客户端,基于 Adobe Air 平台。
在 [Arch User Repository (简体中文)](/index.php/Arch_User_Repository_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Arch User Repository (简体中文)") 安装 [webqq](https://aur.archlinux.org/packages/webqq/) 即可。
### PyWebQQ (python-webqq)
**注意:** 据用户报告,访问速度非常差,不推荐使用
[PyWebQQ(python-webqq)](http://code.google.com/p/python-webqq/)是用 python-webkit 包装而成的 WebQQ 桌面版,均可以访问 Smart QQ 或 WebQQ。由于使用单独的浏览器内核,可以避免长期挂机拖慢浏览器。并且提供了简单的桌面整合,能最小化到托盘,支持消息提醒。
在 [Arch User Repository (简体中文)](/index.php/Arch_User_Repository_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Arch User Repository (简体中文)") 安装 [python-webqq-svn](https://aur.archlinux.org/packages/python-webqq-svn/) 即可。
### pidgin-lwqq
**警告:** 该作者已经停止对其更新,见([github页面](https://github.com/xiehuc/pidgin-lwqq) )。
[pidgin-lwqq](https://github.com/xiehuc/pidgin-lwqq) 是一个 [Pidgin (简体中文)](/index.php/Pidgin_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Pidgin (简体中文)") 插件,实现了 WebQQ 协议支持。目前该项目已经停止更新。
### telepathy/empathy-lwqq
telepathy的插件[telepathy-lwqq-git](https://aur.archlinux.org/packages/telepathy-lwqq-git/),[empathy](https://www.archlinux.org/packages/?name=empathy)(基于telepahty框架)也支持。
### gtkqq
**警告:** 据用户报告,该程序缺失维护长达两年,已不可用
[gtkqq](https://github.com/kernelhcy/gtkqq)是基于 WebQQ 协议的QQ客户端,基于GTK+开发。界面简洁清爽,功能比较完善。但目前还出于开发阶段,易崩溃。
在 [Arch User Repository (简体中文)](/index.php/Arch_User_Repository_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Arch User Repository (简体中文)") 安装 [gtkqq-git](https://aur.archlinux.org/packages/gtkqq-git/) 即可。
### qtqq
**警告:** 程序无法获取好友列表,暂不可用,作者未回应
用 [qt (简体中文)](/index.php/Qt_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Qt (简体中文)") 开发的 qq 客户端,基于 webqq3.0 协议。
在 [Arch User Repository (简体中文)](/index.php/Arch_User_Repository_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Arch User Repository (简体中文)") 安装 [qtqq-git](https://aur.archlinux.org/packages/qtqq-git/) 即可。
### weechat-webqq
**注意:** 也可选择其它支持IRC协议的聊天客户端
在 [WeeChat](/index.php/WeeChat "WeeChat") 可使用的 QQ 插件脚本,使用 perl语言开发的 [Mojo-Webqq](https://github.com/sjdy521/Mojo-Webqq)库,基于 smartqq 协议 。 源码脚本可访问 [weechat-webqq](https://github.com/wxg4net/weechat-webqq) 获取
### SmartIM
SmartIM 是一个用java写的,包含简单的IM API封装的小程序,支持SmartQQ、微信。不过遗憾的是仍然需要扫描二维码。
不支持图片,视频,表情和语音,不过支持依赖第三方服务器的文件传输。
使用方法:只需将jar包下载下来,然后安装java-openjdk之后,就可以在终端通过“java -jar”的方式直接运行了。
Github 地址: [Jamling/SmartIM](https://github.com/Jamling/SmartIM)。
## 独立开发
### libqq
[libqq](http://code.google.com/p/libqq-pidgin/)是 Pidgin 下的QQ协议插件,采用2010版协议改写。目前已比较稳定,但开发貌似停滞不前。
AUR:[libqq-svn](https://aur.archlinux.org/packages/libqq-svn/)、[libqq-pidgin-svn](https://aur.archlinux.org/packages/libqq-pidgin-svn/)(貌似一样)
**优点**:基于功能强大的Pidgin,无需安装第三方软件,桌面整合好,节省资源。
**缺点**:仍有稳定性问题。
## 官方版本
**警告:** QQ for Linux 已经无法使用。请勿尝试此方案。
腾讯在 2008 年底发布了 QQ for Linux 1.0 Preview 3
## Wine 模拟
[Wine (简体中文)](/index.php/Wine_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Wine (简体中文)") 是类 UNIX 系统下运行微软 Windows 程序的"兼容层",可以用它模拟 Windows 环境来运行 QQ/TM。
**警告:** Wine QQ/TM 在平铺式窗口管理器下的样式可能会大规模失控,需要进行额外的配置
### Wine QQ
目前较为成熟的 Wine 模拟方案为[deepin-qq-im](https://aur.archlinux.org/packages/deepin-qq-im/),也可以从 [ArchLinux CN 源](https://www.archlinuxcn.org/archlinux-cn-repo-and-mirror/) 安装 deepin-qq-im。
之前比较好的解决方案有 [清风老师](http://phpcj.org/wineqq/) 提供的 Wine QQ 方案等。
**注意:** 如果系统默认不是中文环境可能无法输入中文,解决方法是修改启动文件的`Exec`: `$HOME/.local/share/applications/wine-QQ.desktop` `Exec=env LC_ALL=zh_CN.UTF-8 wine ".wine/drive_c/Program Files/QQ/Bin/QQ.exe"`
**注意:** 此方案只需要安装[wine](https://www.archlinux.org/packages/?name=wine)即可,安装其它的 Wine 库可能造成干扰。第一次启动的时候会自动下载安装`Mono`库。如果安装失败,可以首先删除`$HOME/.wine`并卸载所有 Wine 相关的包后重启系统,得到一个相对干净的环境再尝试按上面博客的步骤进行安装。
**注意:** 安装成功之后要取消勾选 QQ 的自动更新,以免自动更新导致不可用。
**注意:** Archlinux打包的wine-3.8与wine-3.9.1版本均在安装QQ后无法打开,出现无法加载gdi32.dll的错误,可以使用命令“sudo pacman -U /var/cache/pacman/pkg/wine-3.7-1-x86_64.pkg.tar.xz”将wine降级到之前的3.7版本解决。为了避免被升级到新3.9版本而无法使用QQ,可以编辑"/etc/pacman.conf"文档,去掉"IgnorePkg"一行前面的"#"号,并在该行"="号后面添加"wine";在后续更新中该问题得到解决后,记得去掉wine,以便更新之。
### Wine QQ 轻聊版
**注意:** 此方案使用QQ轻聊版6.7,更高版本在当前wine版本需要[额外的调整](https://blog.lilydjwg.me/2015/10/26/run-tencent-qq-lite-with-wine.186640.html)才能安装
安装[winetricks](https://www.archlinux.org/packages/?name=winetricks)、[wine](https://www.archlinux.org/packages/?name=wine)。创建 qqlight.verb 如下,
```
w_metadata qqlight apps \
title="QQ Light" \
publisher="Tencent" \
year="2015" \
media="download" \
file1="QQ6.7Light.exe" \
installed_exe1="$W_PROGRAMS_X86_WIN/Tencent/QQ/Bin/QQ.exe" \
homepage="[http://www.qq.com](http://www.qq.com)" \
unattended="no"
load_qqlight()
{
w_download [http://dldir1.qq.com/qqfile/qq/QQ6.7Light/13466/QQ6.7Light.exe](http://dldir1.qq.com/qqfile/qq/QQ6.7Light/13466/QQ6.7Light.exe) e1e1ff2bf6461c08047d0a01927a43c5a0746bdf
if w_workaround_wine_bug 29636 "Installing native riched20 to work around crash bug"
then
w_call riched20
fi
if w_workaround_wine_bug 34566 "Installing native ctf to work around crash"
then
w_call msctf
fi
# Make sure chinese fonts are available
w_call fakechinese
# uses mfc42u.dll
w_call mfc42
cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" "$file1"
# fix crash after login
mkdir -p ~/.local/share/wineprefixes/qqlight/drive_c/users/$LOGNAME/Application\ Data/Tencent/QQ/Misc/com.tencent.wireless/SDK
chmod 000 ~/.local/share/wineprefixes/qqlight/drive_c/users/$LOGNAME/Application\ Data/Tencent/QQ/Misc/com.tencent.wireless/SDK
w_declare_exe "$W_PROGRAMS_X86_WIN\\Tencent\\QQ\\Bin" QQ.exe
}
```
运行 winetricks 安装,
```
$ winetricks qqlight.verb
```
安装完成后通过 wineconsole 启动,
```
$ wineconsole .wine/drive_c/run-qqlight.bat
```
### Wine TIM
[TIM](http://im.qq.com/download/)是腾讯推出的主打办公协同的QQ版本。
同时,在 AUR 中,仍有已经稳定成熟的模拟方案:[deepin-wine-tim](https://aur.archlinux.org/packages/deepin-wine-tim/)。当然,你也可以选择按下文的方法手动安装配置。
#### 安装前的准备
**提示:** 如果使用crossover内建的TIM可忽略该准备步骤。
可参考[Wine (简体中文)](/index.php/Wine_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Wine (简体中文)")
* 安装[wine](https://www.archlinux.org/packages/?name=wine)、[wine_gecko](https://www.archlinux.org/packages/?name=wine_gecko) 和 [wine-mono](https://www.archlinux.org/packages/?name=wine-mono)
```
$ pacman -S wine wine_gecko wine-mono winetricks
```
* 使用内建函数库
打开winecfg,在函数库一项中的“新增函数库顶替”中选择添加riched20,也可也执行以下命令添加:
```
$ winetricks riched20
```
* 中文字体显示
可以提供windows字体[Font configuration#Applications without fontconfig support](/index.php/Font_configuration#Applications_without_fontconfig_support "Font configuration")或使用linux的字体,方法如下:
**警告:** 经测试,使用文泉驿和思源黑体,均出现部分位置文字内容无法显示的情况(但影响很小)
**提示:** 默认显示dpi为96,可能使文字显示毛躁不清,可在winecfg的“显示”选项卡中将dpi适当调高(例如缩放125%则为120,缩放150%则为144)。
新建一个reg文件,例如名为wine-fonts.reg,写入如下内容:
```
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="wqy-microhei.ttc"
"Microsoft Sans Serif"="wqy-microhei.ttc"
"Microsoft YaHei"="wqy-microhei.ttc"
"MS Sans Serif"="wqy-microhei.ttc"
"Tahoma"="wqy-microhei.ttc"
"Tahoma Bold"="wqy-microhei.ttc"
"SimSun"="wqy-microhei.ttc"
"Arial"="wqy-microhei.ttc"
"Arial Black"="wqy-microhei.ttc"
"宋体"="wqy-microhei.ttc"
"新細明體"="wqy-microhei.ttc"
```
保存后运行:
```
$ wine regedit
```
打开regedit图形界面,点击注册表-导入注册表文件,然后选择wine-fonts.reg即可。
#### 安装及配置
* 安装tim
使用wine安装tim。可以使用右键菜单中的“运行程”序运行tim的exe文件进行安装,也可以使用命令行:
```
$ wine tim.exe
```
* 增加启动菜单项
安装的tim可能没有在程序列表中生成图标。自行添加图标,新建一个名为tim.desktop的文件,写入以下内容:
```
[Desktop Entry]
Encoding=UTF-8
Version=1
Name=TIM
Comment=Tencent TIM
Exec=wine '~/.wine/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe'
Icon=~/.wine/drive_c/Program Files/Tencent/TIM/TIMUninst.ico
Terminal=false
Type=Application
Categories=Network;
```
其中comment是程序介绍,Exec是执行命令,Icon是要显示的图表,可以根据实际情况进行修改。(自带的ico图表不太清晰,可下载[该图标文件](https://sqimg.qq.com/qq_product_operations/eim/site/img/share.png)更换) 将tim.desktop移动到~/.local/share/applications或/usr/share/applications文件夹下即可。
**注意:** desktop entry 有时无法使用,需要将里面的相对路径改成绝对路径。
#### 相关问题解决
* 文件被占用
打开进程管理器,杀死 TIM.exe 进程即可。 原因是退出tim后,某些相关进程仍然在后台运行。也可以使用如下脚本来启动 TIM,它会首先查找已有的 TIM.exe 进程,杀死该进程后启动新的 TIM:
`start-tim.sh`
```
#!/bin/sh
# script to start TIM
# kill TIM before start TIM
for pid in `pgrep TIM.exe`; do
if [ -n ${pid} ]; then
kill ${pid}
fi
done
# start TIM
wine '~/.wine/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe'
```
然后将上文中的 tim.desktop 中的 `Exec` 的值改为 `start-tim.sh` 即可.
* xfce4(xfwm4)下无法输入表情
打开设置管理器-窗口管理器微调-焦点,取消勾选激活焦点防窃取和遵照标准的ICCCM焦点提示即可。 原因是表情窗口获取焦点时会发生不兼容现象。
* wine-3.8与wine-3.9版本出现无法加载gdi32.dll错误
Archlinux打包的wine-3.8与wine-3.9.1版本会出现无法加载gdi32.dll的错误,可以使用命令“sudo pacman -U /var/cache/pacman/pkg/wine-3.7-1-x86_64.pkg.tar.xz”将wine降级到之前的3.7版本解决。为了避免被升级到新3.9版本,可以编辑"/etc/pacman.conf"文档,去掉"IgnorePkg"一行前面的"#"号,并在该行"="号后面添加"wine";在后续更新中该问题得到解决后,记得去掉wine,以便更新之。
### CrossOver TM2013
关于 [CrossOver](/index.php/CrossOver "CrossOver") 版本的 TM2013 相关信息参见[此处](http://www.codeweavers.com/support/forums/general/?t=37;msg=151682)。除了更加稳定之外,和自行 Wine 的版本没有明显区别。
### Awesome 下的配置
Wine QQ/TM 在平铺式窗口管理器下可能不太听话。以下是一些 [Awesome (简体中文)](/index.php/Awesome_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Awesome (简体中文)") 配置,其作用为:
* 将所有 TM 的窗口设置为浮动
* 清除不需要的窗口边框、避免菜单弹出时焦点移动到菜单上
* 在使用标签式会话窗口时,增加[使用 Alt+数字来切换标签页](https://blog.lilydjwg.me/2013/11/15/switch-tabs-with-alt-num-in-wined-tm-exe-in-awesome.41729.html)的快捷键(需要安装 [xdotool](/index.php?title=Xdotool&action=edit&redlink=1 "Xdotool (page does not exist)"))
* 自动关闭弹出的新闻窗口
```
function myfocus_filter(c)
if awful.client.focus.filter(c) then
-- This works with tooltips and some popup-menus
if c.class == 'Wine' and c.above == true then
return nil
elseif c.class == 'Wine'
and c.type == 'dialog'
and c.skip_taskbar == true
and c.size_hints.max_width and c.size_hints.max_width < 160
then
-- for popup item menus of Photoshop CS5
return nil
else
return c
end
end
end
awful.rules.rules = {
-- All clients will match this rule.
{
rule = { },
properties = {
-- 这里使用我们自己的函数
focus = myfocus_filter,
-- 以下是默认的部分
border_width = beautiful.border_width,
border_color = beautiful.border_normal,
keys = clientkeys,
buttons = clientbuttons,
}
}, {
rule_any = {
instance = {'TM.exe', 'QQ.exe'},
},
properties = {
-- This, together with myfocus_filter, make the popup menus flicker taskbars less
-- Non-focusable menus may cause TM2013preview1 to not highlight menu
-- items on hover and crash.
focusable = true,
floating = true,
-- 去掉边框
border_width = 0,
}
}, {
-- 其它规则
}
}
alt_switch_keys = awful.util.table.join(
-- it's easier for a vimer to manage this than figuring out a nice way to loop and concat
awful.key({'Mod1'}, 1, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+1') end),
awful.key({'Mod1'}, 2, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+2') end),
awful.key({'Mod1'}, 3, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+3') end),
awful.key({'Mod1'}, 4, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+4') end),
awful.key({'Mod1'}, 5, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+5') end),
awful.key({'Mod1'}, 6, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+6') end),
awful.key({'Mod1'}, 7, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+7') end),
awful.key({'Mod1'}, 8, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+8') end),
awful.key({'Mod1'}, 9, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+9') end)
)
function bind_alt_switch_tab_keys(client)
client:keys(awful.util.table.join(client:keys(), alt_switch_keys))
end -- }}}
client.connect_signal("manage", function (c, startup)
-- 其它配置
if c.instance == 'TM.exe' then
-- 添加 Alt+n 支持
bind_alt_switch_tab_keys(c)
-- 关闭各类新闻通知小窗口
if c.name and c.name:match('^腾讯') and c.above then
c:kill()
end
end
-- 其它配置
end)
```
[一个完整的 Awesome 配置](https://github.com/lilydjwg/myawesomerc)。
### i3 下的配置
原生配置下,启动 `qq2012` 时会自动最大化,且边框不美观,可在 [i3 (简体中文)](/index.php/I3_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "I3 (简体中文)") 的 `config` 设置如下两条规则以改善:
```
for_window [instance="QQ.exe"] floating enable
for_window [instance="QQ.exe"] border none
```
## 参阅
* [openSUSE wiki 的 QQ 条目](https://zh.opensuse.org/SDB:QQ)
* [Web 端的 QQ 群空间](http://qun.qzone.qq.com/) 当所使用 QQ 客户端不支持群空间时,可以此用该服务代替。
* [IM QQ-QQ 手机版](http://im.qq.com/mobileqq/) 移动端也未尝不也是一种代替方案。
* [hillwoodroc/winetricks-zh](https://github.com/hillwoodroc/winetricks-zh) hillwoodroc/winetricks-zh
* [Wine QQ “杂交版”](http://tieba.baidu.com/p/4814636033) huixingjihua@tieba 制作的Wine QQ国际版 2012