Giter Club home page Giter Club logo

qq-docker's Introduction

qq-docker

容器化的新版本 electron QQ.

运行

# 生成构建镜像需要的环境变量
./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 上进行过测试.
  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. 另外, 也不要在容器内运行任何不信任的代码.

qq-docker's People

Contributors

rmb122 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.