Skip to content

ntdgy/docker-qq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qq-docker

容器化的新版本 electron QQ. 本仓库根据 https://github.com/rmb122/qq-docker 修改而来。

修改

建议在 /etc/docker/daemon.json 内添加

{
    "bip":"192.168.0.1/24"
}

同时修改 docker-compose.yml 内的 network 选项,修改为

networks:
  default:
    driver: bridge

使用的 docker 为actions自动构建的image,位于 https://hub.docker.com/r/ntdgy2001/linux-qq 或者位于本仓库的packages目录下。 如果需要自己构建,请将 docker-compose.yml 中的 build 项取消注释并注释掉 image 项。

使用 https://github.com/ntdgy/linuxqq 作为预打包软件。

运行

# 生成构建镜像需要的环境变量
./init.sh

# 启动容器, 会自动打开 QQ
docker-compose up -d

在当前目录下会生成两个文件夹, QQ 和 shared 文件夹. 其中 QQ 文件夹挂载在 /home/user/.config/QQ 中, 为 QQ 的聊天记录等内容. 而 shared 文件夹其被挂载在容器的 /home/user/shared 中, 可以通过此文件夹进行文件共享.

需要注意的是, 目前输入法只支持 fcitx5. 同时如果需要播放声音, 则可能需要依赖 pulseaudio, 在这种情况下你需要在宿主机上安装 pulseaudio 或者兼容层 (例如: pipewire-pulse)

另外, 第一次启动时 QQ 会尝试进行同步消息, 整个窗口会卡住无法互动. 需要花费较多时间耐心等待, 不是 QQ 崩溃了.

目前存在的问题

  1. 截图功能不正常, 实现在 /opt/QQ/resources/app/screencast.gjs, 通过 dbus 调用 org.gnome.Shell.Screencast 来截图. 目前可以通过在宿主机上截图, 通过剪贴板粘贴来 workaround.
  2. 输入法在粘贴图片后小概率失效, 无法稳定复现. 可以通过切换聊天窗口来恢复. 类似的还有在输入法中输入 session 可以稳定触发 bug.
  3. 只在 archlinux + i3wm 上进行过测试(debian12 和 ubuntu 22 测试通过).
  4. 无法拖动传文件, 未来可以通过软链接容器内 shared 文件夹到一个与宿主机 shared 文件夹路径相同的文件夹来解决.
  5. QQ 邮箱无法打开, 之后可以考虑自己实现一个 xdg-open, 将目标 url 带出来.

i3 规则

# for_window [class="QQ"] border normal
for_window [class="QQ" title="图片查看器"] floating enable
for_window [class="QQ" title="视频播放器"] floating enable
for_window [class="QQ" title="(.*)的聊天记录"] floating enable

免责提示

由于 X Server 的特殊性, 即使使用 Docker 也不能做到完全阻止所有攻击面. 虽然概率极低, 但是攻击者 (e.g. 腾讯), 完全可以在容器内达到类似按键记录器的效果. 因此如果你对腾讯非常介意, 请勿使用本项目, 可以选择使用虚拟机启动 QQ. 另外, 也不要在容器内运行任何不信任的代码.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published