スクリーンスペースが有効になっているときに最初のマウスクリックを無視するようにxorgを何らかの方法で設定できますか?
その理由は、組み込みのArch Linuxアプリケーションにスクリーンスペース中にアクティブなままになるタッチスクリーンがあり、ユーザーの最初のタッチはスクリーンスペースを無効にする必要があり、クリック/タッチイベント自体はユーザーがどのボタンを知ることができないため無視します。しなければならないからです。画面が空いていて押しましたか?
それとも賢いハッキング/解決方法はありますか?
答え1
私はこれが古い質問であることを知っていますが、同じ問題に直面し、ついにスクリーンライブラリを使用してxssstart
修正してslock
解決しました。私はそれをクリックロックと呼びます。
https://github.com/zpfvo/clicklock
https://github.com/unixdj/xssstart
xssstart
スクリーンセーバーが有効になると、コマンドが実行され、クリックロックは、最初のタッチまたはキーイベントの後に閉じる黒いフルスクリーンウィンドウです。
だから走らなければなりません。xssstart clicklock
答え2
Xorgはこれらの設定をサポートしていません。
「ハッキング」を使用するもう1つの問題は、Xorgが空の状態を公開する可能性がありますが、必ずしもそうする必要はないということです。
xorgスペースは本当に必要ですか?それ以外の場合は無効にできますxset s off
。
DPMSを使ってみましたか?これはモニター自体の省電力機能です。タッチデバイスを使用しているので、オプションではないかもしれませんが、試してみる価値があるかもしれません。 :-)
Xorgsブランキングを必ずしも使用したくない場合は、他のスクリーンセーバーデーモンを使用するのはどうでしょうか?
答え3
私は同じ問題があり、この議論を見つけました。
X11(マッチ甲窓マネージャ)とqt5の私の解決策は次のとおりです。
ディスプレイを完全に切らずに明るさを下げることにしました。しかし、薄暗いディスプレイが少し暗く、ユーザーが自分がタッチしているのを見ることができないので、アプリに入るための最初のクリックをまだ避けたいと思います。
まず、一定時間(スクリーンセーバーと同じ時間)にタッチスクリーンイベントを待つスクリプトがあります。時間が経つとディスプレイの明るさが減少し、アニメーションが始まり、タッチスクリーンを押すとアニメーションが終了します。アプリケーションが終了すると、明るさは元の値に設定されます。
第二に、アニメーションアプリケーションはQt5 QuickScript Qmlアプリケーションです。
最初:バックグラウンドで実行されるスクリプト:
デバイス=/dev/input/mouse0 タイムアウト=$screentime そして[1]; 読み取り -t $timeout -n 1 < $device 未読=$? if [ $notread == 0 ]; エコ$明るさ>/sys/class/バックライト/pwm-バックライト/明るさ その他 echo画面に触れる人はいません。画面を暗く設定してください。 echo $darkness > /sys/class/backlight/pwm-backlight/明るさ /usr/bin/qt5/qml /usr/local/bin/darkshow.qml フィリピン諸島 完璧
2番目 - darkshow.qmlスクリプト:
QtQuick 2.2のインポート QtQuick.Window 2.1 インポート もの{ ウィンドウ{ ID:メインウィンドウ 幅:1024 高さ: 600 可視: 実際 可視性: window.maximize 不透明度:0.5 モーダル: Qt.ApplicationModal // 一番上にする必要がある場合: flags: Qt.SplashScreen マウス領域{ onClicked: Qt.quit(); アンカー。塗りつぶし:親 } onActiveChanged: { console.log("onActiveChanged"); if (アクティブ == 0) Qt.quit(); } アニメスプライト{ id: エルフ 幅:1024 高さ: 600 アンカー、センターイン:親 ソース: "content/awibuben_spritesheet.png" フレーム数:5 フレーム同期:事実 フレーム幅:1024 フレームの高さ:600 } } }