지루한 X 디스플레이에 대한 범용 화면 재설정?

지루한 X 디스플레이에 대한 범용 화면 재설정?

중단된 X 세션에서 디스플레이를 재설정하는 일반적인 방법이 있습니까? 노트북이 절전 모드로 전환된 후 화면을 켰는데 디스플레이가 비어 있거나 보이지 않을 정도로 왜곡되어 있다고 가정해 보겠습니다. 를 누르면 X 세션이 실행되는 것을 볼 수 있지만 ctrlaltf1어떤 이유로 화면을 볼 수 없습니다.

손상된 터미널의 경우 reset또는 를 입력할 수 있습니다 stty sane. xrefresh화면이 다시 그려지지만 그래픽 카드로 인한 디스플레이 문제를 해결하는 데 도움이 되지 않습니다.

Gnome 3에서는 gnome --replace이것이 효과가 있지만 저는 XFCE4를 실행하고 있으며 솔직히 이것은 세계적인 문제입니다... 이에 대한 xdg-*래퍼가 있습니까 x-*? 저는 제가 사용하는 어떤 플랫폼에서든 키바인딩을 설정할 수 있는 것을 찾고 있습니다.

답변1

이유가 완전히 다르기 때문에 유사한 메커니즘은 없습니다.

잘못된 텍스트 터미널은 서로 조정되지 않은 채 터미널에 쓰는 여러 소스에서 발생합니다. 따라서 자신에 속하지 않는 텍스트로 끝나고, 보고 싶은 텍스트가 있는 앱이 원하는 것을 다시 표시하도록 하면 문제를 해결할 수 있습니다. xrefresh이와 유사합니다. X 서버가 이미 응용 프로그램 간의 조정을 관리하기 때문에 거의 필요하지 않습니다. 각 응용 프로그램은 자체 창에만 그려야 합니다. xrefresh애플리케이션이 제대로 작동하지 않는 경우에만 필요합니다. 더 나은 작동 방법이 없는 텍스트 터미널의 경우와는 대조적입니다.

입력 설정을 복원하는 것과 마찬가지로 stty sane이는 일반적으로 응용 프로그램이 전역 매개 변수를 수정해서는 안 되기 때문에 적용되지 않습니다. 여기서 각 응용 프로그램은 자체 창만 조작해야 합니다. 뭔가 나쁜 일이 일어났습니다.포인터나 키보드를 잡는 애플리케이션( xdotool key XF86Ungrab, 또는 활성화된 Ctrl경우 Alt++ Keypad/).

드라이버 오류로 인해 디스플레이가 비어 있거나 혼란스러운 경우 범용 복구 메커니즘이 없습니다. 진지하게 프로그래밍을 해본 사람이라면 오류가 발생한 후에 완전히 보편적인 복구 메커니즘이 없다는 것을 알고 있습니다. 왜냐하면 오류는 정의상 예상치 못한 일이고 오류가 감지된 후 시스템 상태를 예측할 수 없기 때문에 무엇을 하든 확신할 수 없기 때문입니다. do 예상대로 복원합니다. 오류로부터 복구할 수 있는 신뢰할 수 있는 유일한 방법은 상위 기관의 도움을 구하는 것입니다. 예를 들어 프로세스에서 오류가 감지되면 해당 프로세스를 종료하고(프로세스 격리로 인해 오류는 해당 프로세스로 제한되어야 함) 새 프로세스를 시작합니다. 사례. 커널에서 오류가 감지되면 하드웨어가 더 높은 권한을 갖게 됩니다. 컴퓨터를 다시 시작하세요. 디스플레이 드라이버 오류가 발생하면 일반적으로 GPU 상태에만 영향을 미치므로 GPU를 재설정하면 충분합니다. 내가 아는 한, X.org 드라이버에 GPU를 재설정하고 원하는 대로 다시 초기화하도록 지시하는 보편적인 방법은 없습니다. 시도해 볼 수 있는 몇 가지 방법이 있지만 항상 작동하는 것은 아닙니다.

  • 텍스트 콘솔( Ctrl++) 로 전환한 AltF1다시( Ctrl++ Alt) 전환합니다 F7. 오류가 엄연히 GPU 상태에 있는 경우 X 서버는 다시 전환할 때 GPU를 이전 상태로 재설정해야 하므로 문제를 해결할 수 있습니다. 그러나 버그가 드라이버의 내부 구조에도 영향을 미치거나 드라이버가 전환 시 잘못된 상태를 백업하는 경우에는 도움이 되지 않습니다.
  • 텍스트 콘솔로 전환하고 다른 X 서버 인스턴스를 시작하고 종료한 다음 다시 전환합니다. 위의 간단한 변형이 작동하지 않더라도 드라이버가 일부 설정을 수정하고 제대로 다시 초기화하지 못한 오류가 발생하는 경우 이 방법이 작동할 수 있습니다. 또 다른 변형은 오류의 성격에 따라 다른 인스턴스를 계속 실행하는 것입니다. 이 방법도 도움이 될 수 있습니다.
  • xrandr예를 들어 모든 디스플레이를 비활성화해 보십시오 .

    export DISPLAY=:0
    xrandr
    # see what displays are listed, e.g. “DVI-0 connected …”
    xrandr --output DVI-0 --off
    xrandr --output DVI-0 --auto
    

    버그는 일반적으로 드라이버와 GPU 사이에서 발생하고 모니터의 영향을 받지 않기 때문에 이는 가끔 도움이 되지만 자주는 아닙니다.

  • Compiz를 실행 중인 경우 종료하십시오(정말 필요한 경우 다시 시작하십시오). 창 관리자를 죽이는 것은 도움이 되지 않을 것입니다 . 그래서 만약 도움이 된다면 Compiz를 다시 시작하기 때문일 것이라고 xrefresh생각합니다 .gnome3 --replace

관련 정보