듀얼 헤드 디스플레이의 두 모니터에 전체 화면을 적용하는 방법은 무엇입니까?

듀얼 헤드 디스플레이의 두 모니터에 전체 화면을 적용하는 방법은 무엇입니까?

나는 두 대의 Ubuntu 10.4 시스템을 가지고 있습니다. (그리고 Ubuntu는 점점 더 많은 xorg.conf 구성을 숨겨서 더 이상 어디서 찾을 수 있는지 알 수 없습니다.) 하나는 듀얼 헤드를 실행하는 노트북입니다. DP1은 내부 화면이고 VGA1은 외부 모니터입니다. 둘 다 1600x900에서 실행됩니다. 다른 컴퓨터는 1600x900에서 VGA1과 HDMI1(실제로는 DVI 어댑터가 있는 디스플레이 포트)을 모두 실행하는 데스크탑입니다. 따라서 두 경우 모두 내 데스크탑은 3200x900입니다. 랩톱에서 VNC 서버를 실행하고 데스크톱에서 (SSH 터널을 통해) 연결합니다. 전체 화면 단축키를 누르면 한 모니터에 원격 컴퓨터의 1600x900 보기가 표시되고 모니터에는 로컬 데스크톱의 절반이 표시됩니다. 다른 모니터 - "전체 화면"은 하나의 로컬 모니터에만 표시됩니다.

일반적으로 이는 웹 브라우저, 이메일 클라이언트 또는 기타 응용 프로그램을 전체 화면으로 표시할 때 원하는 것입니다. 전체 화면이 실제로 무엇을 수반하는지 명확하게 해주는 몇 가지 X 마법이 있다고 확신하며, vnc 클라이언트 응용 프로그램은 제공된 내용을 성실하게 받아들입니다. 일반 응용 프로그램에서는 일반적인 전체 화면 동작을 유지하고 싶지만 다른 3200x900 시스템에 VNCing할 때는 두 로컬 디스플레이에 걸쳐 전체 화면을 확장하고 싶습니다. 창 크기를 "닫기"로 조정하는 것은 한 디스플레이의 위쪽과 아래쪽에 로컬 패널이 여전히 있고(자동 숨기기로 설정할 수 있음) VNC 클라이언트 응용 프로그램 창 테두리(그렇지 않기 때문에)가 있기 때문에 충분하지 않습니다. -notitle)을 존중하지 않는 것 같습니다.

X가 "전체 화면" 크기에 대해 단일 응용 프로그램에 속이도록 하는 좋은 방법이 있습니까? 모든 애플리케이션에 거짓말을 할 수 있나요? xrandr --noprimary효과가 없는 것 같습니다.

답변1

나는 좀 파헤쳐 보았다. 제가 가정한 X11 마법의 현대 버전은 사실 창 관리자 마법입니다._NET_WM_STATE_FULLSCREEN. 내 VNC 클라이언트는 실제로 해당 요청을 사용하고 있으며 단일 모니터로 확장되고 있습니다. 먼저 설정해야 할 것 같습니다._NET_WM_FULLSCREEN_MONITORS어떤 모니터를 위쪽/아래쪽/왼쪽/오른쪽 가장자리로 사용할지 설명하려고 하지만 그렇지 않습니다. 하지만 dpkg에서 소스를 뽑아서 파헤쳐서 해킹했습니다. _NET_WM_FULLSCREEN_MONITORS를 사용해도 올바른 동작을 이끌어낼 수 없었습니다. VNC 클라이언트는 3200x900에 도달하려고 한다는 것을 알고 있으며 상단 창에서 크기를 조정하기 위해 여러 번(30) 시도합니다(XA_WM_NORMAL_HINTS에서 기본 및 최대 너비와 높이를 모두 설정한 다음 XResizeWindow() 사용). 항상 무시됩니다. 아마도 compiz가 잘못 작동하고 있습니까?

그러나 VNC 클라이언트에는 창 관리자를 통하지 않고 X를 직접 처리하는 코드도 있습니다. WM 감지 코드를 잘라내면 루트 창을 더 직접적으로 수정하고(XtNoverrideRedirect, XReparentWindow를 맨 위로 이동, XMapRaised 등) 매력적으로 작동합니다(전체 화면 해제 기능에서 감지 코드도 비활성화하는 한). ). 훨씬 더 잘 작동할 것입니다. 이제 VNC 클라이언트 창의 전체 화면을 취소할 때까지 Alt-Tab 및 기타 창 관리 키가 원격 컴퓨터로 이동합니다.

따라서 해킹적일 수도 있고 문제가 있을 수도 있지만, 적어도 지금은 내 마음 속에서는 적절하게 작동하도록 만들었습니다.

*: 전체 화면 해제는 루트 창이나 가려졌던 다른 창을 제대로 다시 그리지 않습니다. 그러나 다른 뷰포트로 전환한 다음 다시 전환하면 강제로 다시 그려지므로 이는 허용되는 해결 방법입니다.

답변2

탐구할 또 다른 가능성은 일부 프로그램이 시작될 때 특정 크기/위치로 강제 실행되는 기능일 수 있습니다.

다음과 같이 E17 아이콘을 통해 Opera를 실행하는 명령을 정의합니다.

/usr/local/bin/opera-11.01 -기하학 1600x3200-0+100 %U

이는 Opera 창의 크기와 위치를 설정합니다.

그리고 Xemacs에서는 위치를 제어할 수 없지만 init.el에서 시작 시 실행할 크기 창을 지정할 수 있습니다.

(설정 프레임 크기(창 프레임) 140 80 )

이것은 귀하의 상황에 대한 정확한 해결책은 아니지만 실행 중인 소프트웨어를 전체(이중) 화면에 해당하는 특정 크기/위치로 설정하는 방법을 살펴볼 수 있습니까? 모든 사람이 그런 종류의 옵션을 갖는 것은 아니지만 아마도 살펴볼 가치가 있을 것입니다.

관련 정보