Wayland 環境の ksnip をコピーできない問題が解決されました

以前、wayland 環境でスクリーンショットを撮り、ksnip を使用して写真を変更するという記事を書きました (http://mephisto.cc/tech/wayland-screenshot/)。最近、写真を変更した後、写真を変更できないことに気づきました。バグを引き起こすパターンがないこともわかりました🤷‍♂️。

解決策は次のとおりです。

スクリーンショットスクリプトを変更する

1➜  ~ cat .config/labwc/screenshot.sh
2#!/bin/sh
3NOW=$(date +"%Y-%m-%d-%H%M%S")
4grim -g "$(slurp )" -t png $HOME/Pictures/grim-$NOW.png
5QT_QPA_PLATFORM=xcb /usr/bin/ksnip $HOME/Pictures/grim-$NOW.png

つまり、他のソフトウェアに影響を与えないように、起動前に環境変数に QT_QPA_PLATFORM=xcb /usr/bin/ksnip を渡して XWayland を有効にします。

  • xcb とは何ですか?

The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.

  • QPA とは何ですか?

QPA is the platform abstraction layer for Qt 5 and replaces QWS and the platform ports from Qt 4.

この リンク をチェックしてください。YouTube ビデオの紹介もありますので、興味があればご覧ください。

  • QT_QPA_PLATFORM とは一体何ですか?

Qt will select a default QPA plugin, depending on the platform. The QT_QPA_PLATFORM environment variable and the -platform command line argument allow you to override this default. See QGuiApplication for more details.

これは、qt 関連の環境変数の設定を通じて、qt プログラムが xcb 外部エイドを呼び出して、コピーを処理できることを意味します。

多くのソフトウェアでは、中国語を入力するために XWayland をオンにする必要があります 🤷 が、この設定は比較にならないものです。

smug shrug

関連環境の再起動

私の labwc 環境では、起動時にzhscreeenshot.shがメモリに読み込まれ、トリガーのショートカットキーが設定されているため、有効にするには再起動する必要があり、スクリプトを変更するだけでは不十分です。

実際の測定値が変更された後、コピー操作に例外はありませんが、依然として XWayland が必要であるようで、純粋な Wayland 環境でエラーのない作業にはまだ程遠いです。

偉人たちの励ましの言葉

「一言で言えば、未来は明るいが、道は曲がりくねっている。私たちの前には無視できない多くの困難が待っている。私たちがすべての人々と団結して協力すれば、すべての困難を乗り越えて目標を達成することができるだろう」勝利の。」 —— 毛沢東

最終更新日: Sunday, October 8, 2023

このシリーズの投稿:

翻訳: