0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 24.04のWaylandでCopyQが動かないのでClipboard Indicatorを使う

0
Posted at

環境

  • Ubuntu 24.04 LTS (Noble Numbat)
  • GNOME / Wayland

やったこと

CopyQのインストール

sudo apt install copyq -y

aptリポジトリから入るバージョンを確認。

apt-cache policy copyq
copyq:
  インストールされているバージョン: 7.1.0-1build2
  候補:               7.1.0-1build2

CopyQ 7.1.0、Qt 5.15.12ビルド。

起動と自動起動の設定

copyq &
mkdir -p ~/.config/autostart
cp /usr/share/applications/com.github.hluk.copyq.desktop ~/.config/autostart/

システムトレイにアイコンが表示され、起動自体は成功。

問題発生: コピーしても履歴に何も残らない

何かテキストをコピーしてから、CopyQが保持しているアイテム数を確認。

copyq count
1

初期値のまま増えない。クリップボードの変更を検知できていない。

原因調査

CopyQのログを確認

copyq logs | grep -i -E "error|clipboard|wayland"
CopyQ Warning: [default] QtWarning: Activating Wayland clipboard took 5000 ms
CopyQ ERROR:   [default] QtCritical: Failed to activate Wayland clipboard
CopyQ Warning: [default] QtWarning: Activating Wayland clipboard took 5000 ms
CopyQ ERROR:   [default] QtCritical: Failed to activate Wayland clipboard
CopyQ Warning: [qt.qpa.wayland] QtWarning: Wayland does not support QWindow::requestActivate()

Failed to activate Wayland clipboardが出ている。Waylandクリップボードのアクティベーションがタイムアウト(5000ms)した末に失敗している。

環境変数の確認

echo "QT_QPA_PLATFORM=$QT_QPA_PLATFORM"
echo "WAYLAND_DISPLAY=$WAYLAND_DISPLAY"
QT_QPA_PLATFORM=
WAYLAND_DISPLAY=wayland-0

QT_QPA_PLATFORMが未設定。明示的にwaylandを指定して再起動を試みた。

copyq exit
QT_QPA_PLATFORM=wayland copyq &

ログを再確認。

copyq logs | grep -i "error" | tail -5
CopyQ ERROR: [default] QtCritical: Failed to activate Wayland clipboard

同じエラー。環境変数の指定では解決しない。

原因

CopyQのクリップボード監視は、Waylandコンポジタがwlr-data-controlなどの拡張プロトコルをサポートしている必要がある。GNOMEはこのプロトコルをサポートしていないため、CopyQからクリップボードの変更を監視できない。

これはQt 5固有の問題ではない。CopyQ 9.1.0 + Qt 6.8.1でも同じFailed to activate Wayland clipboardが報告されている(GitHub #2963)。CopyQの公式Known IssuesにもWaylandコンポジタの対応状況に依存する旨が記載されている。

つまりQt 5→Qt 6に上げても、GNOMEを使う限り解決しない。

関連issue

選択肢

方法 概要
cliphist + wl-clipboard Wayland用に作られた軽量なクリップボード履歴管理。GNOMEでも動作する
GNOME拡張機能 Clipboard Indicator等、GNOME Shell拡張でクリップボード履歴を管理

GNOME環境ではGNOME Shell拡張が確実。Shell内部で動くためWaylandプロトコルの制約を受けない。

対処: Clipboard Indicatorのインストール

CopyQを終了し、自動起動も削除。

copyq exit
rm ~/.config/autostart/com.github.hluk.copyq.desktop

Clipboard Indicatorをextensions.gnome.orgからダウンロードして手動インストール。

EXTENSION_UUID="clipboard-indicator@tudmotu.com"
VERSION_PK=70694  # GNOME Shell 46対応版
INSTALL_DIR="$HOME/.local/share/gnome-shell/extensions/${EXTENSION_UUID}"
TMPZIP="/tmp/clipboard-indicator.zip"

curl -L -o "$TMPZIP" \
  "https://extensions.gnome.org/download-extension/${EXTENSION_UUID}.shell-extension.zip?version_tag=${VERSION_PK}"

mkdir -p "$INSTALL_DIR"
unzip -o "$TMPZIP" -d "$INSTALL_DIR"

WaylandではGNOME Shellのリロードができないため、ログアウト→ログインが必要。

ログイン後に以下を実行して有効化する。

gnome-extensions enable clipboard-indicator@tudmotu.com

トップバーにクリップボードアイコンが表示されれば成功。CopyQのハサミアイコンとは異なり、クリップボード(バインダー)型のアイコンになる。何かテキストをコピーしてアイコンをクリックし、履歴に記録されていれば動作確認完了。

動作確認

再起動後にenableコマンドを実行し、Clipboard Indicatorが正常に動作することを確認した。クリップボードの変更が履歴に記録される。

なお、CopyQのログには再起動後も同じFailed to activate Wayland clipboardエラーが出続けていた。GNOME/Waylandでの制約は変わらないため、CopyQはアンインストールしてClipboard Indicatorに移行するのが正解。

sudo apt remove copyq
rm -f ~/.config/autostart/com.github.hluk.copyq.desktop

補足: Cogl.Color APIの互換性問題

Clipboard Indicator v71にはGNOME 46との軽微な互換性問題がある。クリップボードエントリの「編集」ボタンをクリックすると以下のエラーが発生する。

JS ERROR: TypeError: Object is of type Cogl.Color - cannot convert to ClutterColor
  showEditDialog@extension.js:1840

GNOME 46でCogl.ColorをClutterColorプロパティに直接代入できなくなったことが原因。クリップボード履歴の監視・表示には影響しないが、エントリ編集機能は使えない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?