랩탑 화면을 사용할 때 첫 번째 작업 공간이 사용됩니다. HDMI를 통해 두 번째 화면을 연결하면 두 번째 작업 영역이 사용되며 두 번째 화면에서 새로 열린 모든 창은 두 번째 공간에 놓입니다 (두 번째 화면의 작업 영역을 다른 작업 영역으로 전환 함).
두 번째 화면을 분리하면 모든 창이 자신이 만든 작업 영역에 머무르고 랩톱에서 작업 영역을 전환하여 볼 수 있습니다.
이 동작은 이미 가능합니까?
답변
이 동작은 이미 가능합니까?
리눅스에서 모든 것이 가능합니다. X를 망쳐 놓고 도움이 필요하면 브라우저가 실행 중이어야하기 때문에 Xserver 에 대한 몇 가지 기본 지식 , 테스트 할 시간 및 시스템이 필요합니다.
내 의견으로는 세 가지 가능한 해결책이 있습니다.
-
다중 모니터 설정은 Xinerama를 사용 합니다. 내가 생각할 수있는 가장 간단한 해결책은 구성에 세 번째 가상 화면을 추가하고 xdotool을 사용하여 창을 단순히 이동시키는 것입니다. 이 솔루션에는 몇 가지 단점이 있지만 일반적으로 불가능한 다른 Xserver간에 창 을 이동 해야하는 노력이 필요 하지 않습니다.
-
다른 Xserver 간에 창을 이동할 수 없으므로 xmove 또는 Xpra 와 같은 프록시가 필요합니다 . 그런 다음 창을 별도의 Xfvb 세션에 두어 창을 숨기고 있다고 생각합니다 . 세션에 연결하거나 분리 할 수 있습니다.
-
어떤 방법을 사용하든 모니터의 플러그를 뽑을 때 이벤트가 필요합니다. 화면이 연결 해제되고 다시 연결되면 이벤트가 트리거됩니다. 이벤트를 감시하기 위해 스크립트를 데몬화할 수 있습니다.
여러 가지 이유로 Xpra를 사용하는 솔루션을 선호합니다. 나는 그것을하는 방법에 대한 힌트 만 줄 수 있습니다. 솔루션은 완전하지 않지만 시작해야합니다.
Xinerama 솔루션
설정
정적 구성을 갖도록 Xinerama 설정을 확장해야합니다. https://help.ubuntu.com/community/XineramaHowTo를 참조 하십시오.
또한 참조 가짜 세 번째 화면 과 Xdummy을
영향을받는 창문을 얻다
xdotool 을 사용 하여 창을 검색 할 수 있습니다 . 그 후 우리는 그들의 위치를 확인하고 움직일 수 있습니다. 1920x1080
구성이있는 두 개의 모니터를 가정 합니다. 다음은 모든 창을 오른쪽에서 왼쪽 xinerama 화면으로 이동합니다.
while read xwindowid; do
eval $(xdotool getwindowgeometry --shell "$xwindowid")
if (( X > 1920 && X <= (1920 * 2))); then
xdotool windowmove --relative $WINDOW -1920 y
fi
done <<< "$(xdotool search --screen 0 '.*')"
모니터가 연결된 경우 이제 모든 창을 랩톱 화면 (screen0)에서 세 번째 (가상) 화면으로 이동할 수 있습니다. 동시에 세 번째 화면에 저장된 모든 창을 첫 번째 화면으로 이동할 수 있습니다.
XPRA 솔루션
Xpra 를 사용 하여 창을 이동하려면 모든 창을 Xpra가 먼저 관리해야합니다. 시스템 시작시 Xpra 를 사용하여 전체 데스크탑 을 시작 해야합니다 . 하나는 작업하는 기본 데스크탑이고 다른 하나는 주로 가상 데스크탑입니다.
xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach
이제 별도의 xpra 세션에서 연결 해제 된 화면에 대한 Windows를 실행하고 모니터가 전환 될 때 연결 / 분리 할 수 있습니다.
xpra attach :99
xpra detatch :99
또한 시작된 xpra 디스플레이 사이 에서 창을 숨김 에서 법선 으로 수동으로 이동하려는 경우 유용한 그놈 셸 확장 이 계속 제공됩니다.:99
:0
이벤트
-
특정 디스플레이 의 연결 끊기 / 재 연결을 볼 수 있습니다
-
설정을 3 대의 모니터로 확장하고 임의의 장치의 플러그를 뽑으려면 xwininfo 를 사용하여 플러그가 뽑힌 모니터와 독립적이되도록 xinerama의 변경된 치수를 살펴보십시오 . 이것은 xpra 솔루션에서만 작동합니다.
xwininfo -display :0 -root | grep -e "-geometry"
-geometry 5760x2160+0+0