Xorg - 화면 공백에서 복구할 때 첫 번째 클릭 이벤트 무시

Xorg - 화면 공백에서 복구할 때 첫 번째 클릭 이벤트 무시

화면 공백이 활성화되었을 때 첫 번째 마우스 클릭을 무시하도록 xorg를 어떻게든 구성할 수 있습니까?

그 이유는 내장형 아치 Linux 애플리케이션에 화면 공백 중에 활성 상태로 유지되는 터치스크린이 있고, 사용자의 첫 번째 터치는 화면 공백을 비활성화해야 하며, 클릭/터치 이벤트 자체는 사용자가 어떤 버튼을 알 수 없기 때문에 무시되어야 하기 때문입니다. 화면이 비어 있어서 눌렀나요?

아니면 영리한 해킹/해결 방법이 있나요?

답변1

나는 이것이 오래된 질문이라는 것을 알고 있지만 동일한 문제에 직면했고 마침내 화면 보관함을 사용 xssstart하고 수정하여 slock해결했습니다 . 나는 그것을 클릭 잠금이라고 부릅니다.

https://github.com/zpfvo/clicklock
https://github.com/unixdj/xssstart

xssstart화면 보호기가 활성화되면 명령이 실행되고 클릭 잠금은 첫 번째 터치 또는 키 이벤트 후에 닫히는 검은색 전체 화면 창입니다.

그러니 달려야 해xssstart clicklock

답변2

Xorg는 이러한 구성을 지원하지 않습니다.

"해킹" 사용의 또 다른 문제점은 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
  필리핀 제도
완벽한

두 번째 - 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
    }
  }
 }

관련 정보