Xorg - スクリーンスペースから回復するときの最初のクリックイベントを無視する

Xorg - スクリーンスペースから回復するときの最初のクリックイベントを無視する

スクリーンスペースが有効になっているときに最初のマウスクリックを無視するように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
    }
  }
 }

関連情報