Package Details: linuxqq 5:3.2.21_41857-1

Git Clone URL: https://aur.archlinux.org/linuxqq.git (read-only, click to copy)
Package Base: linuxqq
Description: New Linux QQ based on Electron
Upstream URL: https://im.qq.com/linuxqq
Keywords: electron linuxqq qq tencent
Licenses: LicenseRef-QQ
Conflicts: linuxqq-nt-bwrap
Submitter: redchenjs
Maintainer: Integral (Purofle)
Last Packager: Integral
Votes: 108
Popularity: 0.92
First Submitted: 2019-10-24 14:27 (UTC)
Last Updated: 2025-11-04 08:49 (UTC)

Pinned Comments

Integral commented on 2023-03-14 09:20 (UTC)

目前通过删除 linuxqq 包自带的 libvips 临时解决了浏览图片时崩溃的问题 PS:感谢 @ayatale 的建议

Latest Comments

1 2 3 4 5 6 .. 34 Next › Last »

Dawn_Ocean commented on 2025-12-01 20:21 (UTC)

@yhshzh0 这个脚本稍微有点性能问题,我们可以用clipnotify这个包来监听 X11 剪贴板的变化,然后把图片哈希比较换成了cmp -s:

从 X11 到 Wayland 的脚本:

#!/bin/bash

LOCK_FILE="/tmp/clipboard_bridge_lock"

TMP_DIR="/tmp/clipboard_sync_$$"
mkdir -p "$TMP_DIR"
trap "rm -rf '$TMP_DIR'; exit" INT TERM EXIT

COLOR_RESET="\033[0m"
COLOR_GREEN="\033[32m"
COLOR_BLUE="\033[34m"
COLOR_YELLOW="\033[33m"
COLOR_CYAN="\033[36m"

log() {
    local timestamp=$(date '+%H:%M:%S')
    echo -e "${COLOR_CYAN}[$timestamp]${COLOR_RESET} $1"
}

log_sync() {
    local direction=$1
    local type=$2
    local format=$3

    case "$direction" in
        "x11->wl")
            echo -e "${COLOR_CYAN}[$(date '+%H:%M:%S')]${COLOR_RESET} ${COLOR_GREEN}✓${COLOR_RESET} X11 → Wayland | ${COLOR_YELLOW}${type}${COLOR_RESET}${format}"
            ;;
    esac
}

for cmd in xclip wl-copy clipnotify cmp; do
    if ! command -v "$cmd" &> /dev/null; then
        echo "Error: Missing dependency '$cmd'"
        exit 1
    fi
done

echo "Starting X11 -> Wayland sync (Event-driven with clipnotify)..."

clipboard_sync() {
    local current_x11_img="$TMP_DIR/curr_x11.img"
    local current_wl_img="$TMP_DIR/curr_wl.img"
    local last_x11_img="$TMP_DIR/last_x11.img"
    local last_text=""

    rm -f "$LOCK_FILE"

    while clipnotify; do
        if [ -f "$LOCK_FILE" ]; then
            sleep 0.2
            continue
        fi
        # ==========================

        sleep 0.05
        img_synced=false

        x11_targets=$(xclip -selection clipboard -t TARGETS -o 2>/dev/null)
        [ -z "$x11_targets" ] && continue

        mime_type=""
        if [[ "$x11_targets" == *"image/png"* ]]; then
            mime_type="image/png"
        elif [[ "$x11_targets" == *"image/jpeg"* ]]; then
            mime_type="image/jpeg"
        elif [[ "$x11_targets" == *"image/gif"* ]]; then
            mime_type="image/gif"
        fi

        if [[ -n "$mime_type" ]]; then
            xclip -selection clipboard -t "$mime_type" -o > "$current_x11_img" 2>/dev/null
            wl-paste -t "$mime_type" > "$current_wl_img" 2>/dev/null

            if cmp -s "$current_x11_img" "$current_wl_img"; then
                continue
            fi

            if ! cmp -s "$current_x11_img" "$last_x11_img"; then
                wl-copy -t "$mime_type" < "$current_x11_img"
                cp "$current_x11_img" "$last_x11_img"
                log_sync "x11->wl" "Image" " ($mime_type)"
                img_synced=true
            fi
            continue 
        fi

        # -------- Text sync --------
        if [[ "$img_synced" == false ]]; then
            current_text=$(wl-paste --type text/plain 2>/dev/null || true)
            x11_text=$(xclip -selection clipboard -o 2>/dev/null || true)

            if [[ -n "$x11_text" && "$x11_text" != "$last_text" && "$x11_text" != "$current_text" ]]; then
                echo -n "$x11_text" | wl-copy --type text/plain
                last_text="$x11_text"

                local preview="${x11_text:0:50}"
                preview="${preview//$'\n'/↵}"
                preview="${preview//$'\r'/}"
                preview="${preview//$'\t'/⇥}"
                [[ ${#x11_text} -gt 50 ]] && preview="${preview}..."
                log_sync "x11->wl" "Text" " \"$preview\""
            fi
        fi
    done
}

log "Clipboard sync service started"
log "Monitoring Wayland ↔ X11 clipboard sync..."

clipboard_sync

从 Wayland 到 X11 的脚本: 后台运行 wl-paste --watch bash -c ~/.local/bin/clipboard-wltox11.sh

#!/bin/bash

LOCK_FILE="/tmp/clipboard_bridge_lock"

trap "rm -f '$LOCK_FILE'" EXIT

touch "$LOCK_FILE"

types=$(wl-paste --list-types)

if [[ "$types" == *"image/png"* ]]; then
    wl-paste --type image/png | xclip -selection clipboard -t image/png
elif [[ "$types" == *"image/jpeg"* ]]; then
    wl-paste --type image/jpeg | xclip -selection clipboard -t image/jpeg
elif [[ "$types" == *"image/gif"* ]]; then
    wl-paste --type image/gif | xclip -selection clipboard -t image/gif
else
    wl-paste | xclip -selection clipboard
fi

sleep 0.1

rm -f "$LOCK_FILE"

yhshzh0 commented on 2025-12-01 13:08 (UTC)

wayland下的剪切板问题可以参考 https://blog.imlast.top/2025/10/15/linuxqq-clipboard-issue/ “虽然 linuxqq 基于的 Electron 已经默认使用 Wayland 协议,但其复制仍然选择将内容输出到 xclip。”

axty commented on 2025-11-30 14:05 (UTC) (edited on 2025-11-30 14:05 (UTC) by axty)

隔壁linuxqq-nt-bwrap的评论区里的@lintkey有留下评论发现https://forum.archlinuxcn.org/t/topic/14208/4改了 ~/.config/gtk-3.0/settings.ini 后能正常输入了

axty commented on 2025-11-30 14:01 (UTC)

我发现使用--disable-features=UseOzonePlatform参数也可以让qq回退到x11从而可以使用输入法

abcd commented on 2025-11-08 12:00 (UTC)

QQ群聊語音通話的時候,麥克風輸入有1秒以上的延遲,但是看自己pavucontrol麥克風輸入是實時的,收聽別人說話也是實時,只有自己說話時,隔1-2秒以上麥克風才亮,請問是什麼BUG?

hiruocha commented on 2025-10-14 12:27 (UTC) (edited on 2025-10-14 21:23 (UTC) by hiruocha)

在窗口管理器下如果无法使用输入法的话可以用--ozone-platform-hint=x11参数指定使用x11,可以写到~/.config/qq-flags.conf这个文件里

ston commented on 2025-09-27 15:05 (UTC)

目前发现有个问题:如果使用视频通话,QQ会直接在$HOME下创建 video_config_content.json 等四个json文件,我想能不能使用控制工作目录为~/.config/QQ的方法来避免这个问题?

TNT_TS commented on 2025-09-23 13:50 (UTC)

如果最新目前版本启动没有显示二维码和其他登陆方式的话,可以试着手动安装openexr依赖

startnoob commented on 2025-09-21 07:24 (UTC)

如果启动就卡住了,qq界面出不来,可以考虑清空~/.config/QQ/Crashpad/下的new,pending,completed文件夹并全部sudo chattr +i掉。