확장 모니터를 사용할 때 스크립트가 필요합니다.
- 외부 모니터 크기 가져오기(HDMI1에 연결됨)
- 기본 모니터의 현재 창 크기를 일치하도록 설정합니다.
이 기능을 사용하여 현재 초점이 맞춰진 창을 식별할 수 있다는 것을 알고 있지만 xdotool getwindowfocus
나머지 작업을 수행하는 방법은 모르겠습니다.
답변1
연결된 모니터에 대한 정보를 얻을 수 있습니다.xrandr
. 편리한 쿼리 형식이 없으므로 매개변수 없이 실행하고 출력을 구문 분석해야 합니다.
당신은 그것을 사용할 수 있습니다xdotool
초점 및 크기와 같은 속성 쿼리 및 변경을 포함하여 창을 사용하여 많은 작업을 수행합니다. 당신은 그것을 사용할 수 있습니다명령 체계포커스가 있는 창에 명령을 xdotool getactivewindow dostuff …
적용하는 등 창 ID를 명시적으로 가져오지 않고 창에서 작업합니다 .dostuff
#!/bin/sh
monitor='HDMI-1'
new_xy=$(xrandr | sed -n "s/^$monitor [^ ]* \([0-9]*\)x\([0-9]*\).*/\1 \2/p")
if [ -n "$new_xy" ]; then
xdotool getwindowfocus $new_xy
fi # else $monitor is not active
창 크기에는 장식(제목 표시줄, 테두리)이 포함되므로 장식을 포함한 전체 창은 실제로 모니터에 맞지 않습니다.
창을 HDMI-1로 이동하려는 경우 동일한 출력 라인에서 모니터 좌표를 구문 분석할 수 있습니다 xrandr
. 그러나 창 크기를 조정하는 대신 창을 최대화하거나 전체 화면으로 만들 수도 있습니다. 최대화/전체 화면과 화면 크기 조정의 차이점은 창 관리자가 최대화되지 않은 창 크기를 기억하고 이를 복원하는 명령을 가지고 있다는 것입니다. 최대화하면 창 주변의 장식이 유지되지만 전체 화면은 유지되지 않습니다. 최대화와 전체 화면은 창 관리자 개념이지 X 서버 개념이 아니며 xdotool은 이를 수행할 수 없습니다. 나는 이것을 수행하는 창 관리자 불가지론적 방법을 즉시 생각할 수 없습니다.