프로그램 인스턴스를 실행할 X 모니터를 선택할 수 있습니까?

프로그램 인스턴스를 실행할 X 모니터를 선택할 수 있습니까?

시스템에서 여러 개의 X Windows가 실행 중인 경우 특정 창에서 프로그램을 실행할 수 있습니까? 창을 어떻게 식별하고 프로그램이 그곳에서 실행되도록 하시겠습니까?

나는 그러한 프로그램을 실행하는 데 필요한 모든 권한을 가지고 있다고 가정합니다.

답변1

X 프로그램은 환경 변수를 살펴봄으로써 어떤 X 세션과 대화해야 하는지 알고 있습니다 DISPLAY.

DISPLAY먼저, 프로그램을 실행하려는 X 세션의 설정을 찾아야 합니다 . echo $DISPLAY해당 X 세션의 X 터미널 내에서 명령을 실행하여 이를 수행하십시오. 보통 :0.0이런 내용이 출력됩니다.

xclockX 세션에서 훌륭한 프로그램을 시작 하고 싶지만 콘솔에서 실행하고 싶다고 가정 DISPLAY해 보겠습니다 . :0.0그런 다음 Alt-Ctrl-F1을 눌러 해당 콘솔로 전환하고 다음을 입력합니다.

DISPLAY=:0.0 xclock   # variables set w/ a command are local to that command

그런 다음 Alt-Ctrl-F7 또는 Alt-Ctrl-F8(또는 Linux 취향에 따라 다른 F 키)을 눌러 X로 돌아가 그곳에서 아름다운 새 벽시계를 볼 수 있습니다.

실제로 위 명령을 실행할 수 있습니다어떤 껍질에서든DISPLAY=:0.0동일한 머신(SSH를 통해, X 세션, 콘솔 등)에서 명령 앞에 지정한다는 사실은 창이 xclock항상 동일한 X 세션에서 팝업된다는 것을 의미합니다.

사실, X 프로그램이 이 변수를 보는 것 외에는 이 변수 DISPLAY에 대해 특별한 것이 없습니다 . 일반적으로 X 터미널에서 프로그램을 시작하면 DISPLAY해당 위치가 설정되어 있기 때문에 올바른 위치에서 시작됩니다.

위의 명령을 사용하는 대신 DISPLAY먼저 설정한 다음 를 실행하여 두 부분으로 나눌 수 있습니다 xclock. 이 경우 DISPLAY설정은 쉘을 닫을 때까지 유지되며 쉘에서 시작된 모든 후속 X 프로그램은 동일한 X 세션에서 열립니다 xclock.

                      # variables set w/o a command are local to the shell,
export DISPLAY=:0.0   # unless exported
xclock

답변2

일반적으로 X 클라이언트 프로그램은 DISPLAY환경 변수를 사용하여 연결할 X 서버 모니터를 파악합니다. 일부 프로그램은 환경 변수를 -display재정의하는 데 사용할 수 있는 명령줄 인수(또는 유사한 인수)도 허용합니다 .DISPLAY

관련 정보