현재 실행 중인 애플리케이션의 표시를 변경하는 방법

현재 실행 중인 애플리케이션의 표시를 변경하는 방법

중앙 서버에 여러 개의 모니터가 켜져 있습니다. 특정 플랫폼에서 실행 중인 X-window 응용 프로그램을 DISPLAY다른 플랫폼으로 "이동"할 수 있습니까 DISPLAY? 이것이 어떻게 달성될 수 있습니까?

xpra여러 개의 원격 디스플레이를 사용하고 있습니다 .

답변1

DISPLAY두 가지 이유로 실행 중인 X Window 응용 프로그램을 변수에 의해 결정된 다른 모니터로 이동할 수 없습니다 .

첫 번째는실행 중인 프로세스의 환경을 변경하는 것은 어렵습니다., 그리고 변동을 고려하는 방식으로 이를 안정적으로 수행하는 것은 불가능합니다.

두 번째는 DISPLAY변수가 단지 입력일 뿐이며 일반적으로 애플리케이션이 시작될 때만 고려된다는 것입니다. X 애플리케이션 호출XOpenDisplay초기 단계에서는 직접적으로나 간접적으로, 그리고 (또는 오히려,XTOpenDisplay)은 DISPLAY고려해야 할 사항입니다(필요한 경우 X 서버를 지정하여 다른 방법으로 사용할 수 있음). X 서버에 대한 연결을 나타내는 불투명 구조에 대한 포인터를 XOpenDisplay반환합니다 Display. 이는 이제부터 X 서버와 통신하는 데 사용되는 모든 것입니다. 나중에 변경된 값은 DISPLAY아무런 영향을 미치지 않습니다. 애플리케이션은 어떻게든 값이 변경되었음을 인식하고 X 서버에 대한 연결을 닫은 다음 새 연결을 열어야 합니다.

이 두 가지 점을 종합하면 응용 프로그램이 원하지 않을 때 디스플레이를 변경하는 것은 물론이고 디스플레이를 변경할 수 있는 응용 프로그램을 작성하는 것조차 매우 어렵다는 것을 의미합니다(왜냐하면 그렇게 하도록 설계되었기 때문입니다).

관련 정보