Tencent QQ (简体中文)
QQ 是腾讯公司开发的即时通讯软件,为 ICQ 的仿制品,是中国最流行的 IM 软件。本页面列出了 Linux 下使用 QQ 的各种解决方案。
Contents
基于 WebQQ
SmartQQ
SmartQQ 是腾讯推出的网页端 QQ,它高度模仿微信风格,功能欠完善,高度依赖网络环境,而且需要通过手机客户端扫描二维码登录。
将 Google Chrome 的把网站做为应用程序与其桌面提醒功能整合,也可以打造一个实用的 QQ 软件:
- 安装并运行 Chromium (简体中文)或者火狐浏览器firefox,并打开 SmartQQ,需要手机QQ客户端扫描二维码登陆,功能少。
官方 Adobe Air 客户端
腾讯官方提供的 WebQQ 客户端,基于 Adobe Air 平台。
在 Arch User Repository (简体中文) 安装 webqqAUR[broken link: archived in aur-mirror] 即可。
PyWebQQ (python-webqq)
PyWebQQ(python-webqq)是用 python-webkit 包装而成的 WebQQ 桌面版,均可以访问 Smart QQ 或 WebQQ。由于使用单独的浏览器内核,可以避免长期挂机拖慢浏览器。并且提供了简单的桌面整合,能最小化到托盘,支持消息提醒。
在 Arch User Repository (简体中文) 安装 python-webqq-svnAUR[broken link: archived in aur-mirror] 即可。
pidgin-lwqq
pidgin-lwqq 是一个 Pidgin (简体中文) 插件,实现了 WebQQ 协议支持。目前该项目已经停止更新。
telepathy/empathy-lwqq
telepathy的插件telepathy-lwqq-gitAUR[broken link: package not found],empathy(基于telepahty框架)也支持。
gtkqq
gtkqq是基于 WebQQ 协议的QQ客户端,基于GTK+开发。界面简洁清爽,功能比较完善。但目前还出于开发阶段,易崩溃。
在 Arch User Repository (简体中文) 安装 gtkqq-gitAUR[broken link: archived in aur-mirror] 即可。
qtqq
用 qt (简体中文) 开发的 qq 客户端,基于 webqq3.0 协议。
在 Arch User Repository (简体中文) 安装 qtqq-gitAUR[broken link: archived in aur-mirror] 即可。
weechat-webqq
在 WeeChat 可使用的 QQ 插件脚本,使用 perl语言开发的 Mojo-Webqq库,基于 smartqq 协议 。 源码脚本可访问 weechat-webqq 获取
独立开发
libqq
libqq是 Pidgin 下的QQ协议插件,采用2010版协议改写。目前已比较稳定,但开发貌似停滞不前。
AUR:libqq-svnAUR[broken link: archived in aur-mirror]、libqq-pidgin-svnAUR[broken link: archived in aur-mirror](貌似一样)
优点:基于功能强大的Pidgin,无需安装第三方软件,桌面整合好,节省资源。
缺点:仍有稳定性问题。
官方版本
腾讯在 2008 年底发布了 QQ for Linux 1.0 Preview 3,功能如下:
- 支持和好友传送文件
- 支持和好友/群发送图片
- 支持群里截屏并传送截图
- 聊天设置中,已经可以设定按回车键发送
Wine 模拟
Wine (简体中文) 是类 UNIX 系统下运行微软 Windows 程序的"兼容层",可以用它模拟 Windows 环境来运行 QQ/TM。
Wine QQ
目前较为成熟的 Wine 模拟方案为deepinwine-qqAUR[broken link: package not found]。
之前比较好的解决方案有 清风老师 提供的 Wine QQ 方案等。
Wine QQ 轻聊版
安装winetricks、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" \ unattended="no" load_qqlight() { w_download 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是腾讯推出的主打办公协同的QQ版本。
安装前的准备
可参考Wine (简体中文)
- 安装wine、wine_gecko 和 wine-mono
$ pacman -S wine wine_gecko wine-mono
- 使用内建函数库
打开winecfg,在函数库一项中的”新增函数库顶替“中选择添加riched20,也可也执行以下命令添加:
$ winetricks riched20
- 字体替换
解决中文乱码问题。新建一个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"="SourceHanSansCN-Medium.otf" "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" "宋体"="SourceHanSansCN-Medium.otf" "新細明體"="SourceHanSansCN-Medium.otf"
保存后运行:
$gedit wine-fonts.reg
也打开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图表不太清晰,可下载该图标文件更换)
将tim.desktop移动到~/.local/share/applications或/usr/share/applications文件夹下即可。
相关问题解决
- 文件被占用
打开进程管理器,搜索tx、qq、tim等关键字,杀掉这些进程(如tim.exe、TXPlatform.exe、QQExternal.exe、QQProctect.exe等等)即可。 原因是退出tim后,某些相关进程仍然在后台运行。
CrossOver TM2013
关于 CrossOver 版本的 TM2013 相关信息参见此处。除了更加稳定之外,和自行 Wine 的版本没有明显区别。
Awesome 下的配置
Wine QQ/TM 在平铺式窗口管理器下可能不太听话。以下是一些 Awesome (简体中文) 配置,其作用为:
- 将所有 TM 的窗口设置为浮动
- 清除不需要的窗口边框、避免菜单弹出时焦点移动到菜单上
- 在使用标签式会话窗口时,增加使用 Alt+数字来切换标签页的快捷键(需要安装 xdotool)
- 自动关闭弹出的新闻窗口
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)
i3 下的配置
原生配置下,启动 qq2012
时会自动最大化,且边框不美观,可在 i3 (简体中文) 的 config
设置如下两条规则以改善:
for_window [instance="QQ.exe"] floating enable for_window [instance="QQ.exe"] border none
参阅
- openSUSE wiki 的 QQ 条目
- Web 端的 QQ 群空间 当所使用 QQ 客户端不支持群空间时,可以此用该服务代替。
- IM QQ-QQ 手机版 移动端也未尝不也是一种代替方案。
- hillwoodroc/winetricks-zh hillwoodroc/winetricks-zh
- Wine QQ “杂交版” huixingjihua@tieba 制作的Wine QQ国际版 2012