일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- OS 커널
- newSQL
- UNIX Internals
- 함수포인터
- DBMS
- 커널
- SQLite
- 약어
- Windows via c/c++
- TiDB
- UNIX
- 전처리기
- TiKV
- 긴옵션
- kernel
- 포인터변수
- FreeBSD
- DBMS 개발
- Pointer
- bash
- getopts
- 한빛미디어
- Programming
- 포인터
- 컴퓨터 강좌
- go
- 구조와 원리
- Preprocessor
- Golang
- Symbol
- Today
- Total
sonumb
XQuartz 를 통해 실행된 윈도우창이 화면 영역밖에서 출력될 때. 본문
macos에서 XQuartz를 이용해서 X11 을 출력하다보면, 창이 화면밖으로 나갈 때가 있다.
예를들어, 회의실에서 서브모니터에 연결해서 리뷰를 한뒤, 제자리에 돌아와서 내 서브모니터에 연결하면 백프로 창의 위치가 바뀌어 있다.
사파리나 일반 앱들은 유틸을 이용해서 화면으로 출력가능하지만, XQuartz를 통해 포워딩된 창들은 크기 및 이동 제어가 안된다.
단순히 최소화 정도만 가능한 수준...
여담으로, 추측컨데
1. XQuartz에서 윈도우 포지션을 adjusting 하는 부분
2. 창이 어느 모니터에 위치하고 있으며, 이에 따라 좌표 (0,0)을 계산하는 부분
고치면 될 듯하다.
여튼 이럴 시간이 없으니 wmctrl 이라는 프로그램을 이용하자.
# 설치
$ brew install wmctrl
ds5라는 centos에 접속하여 xclock을 두 개 실행한 상태이다.
창이름이 동일한 것이 있을 경우. 아래와 같이 변경하여 이용하자.
# 창목록 조회
$ wmctrl -l
0x00e0000e 0 ds5 xclock
0x0100000e 0 ds5 xclock
# 이름 변경: 하나만 적용됨
$ wmctrl -r xclock -N xclock2
$ wmctrl -l
0x00e0000e 0 ds5 xclock2
0x0100000e 0 ds5 xclock
포지션 변경과 창 크기 변경
# G는 gravity인데 신경쓰지 않아도 된다.
# 나머지 사항은 (x,y) 포지션 및 크기 (width, height)
$ wmctrl -r <창이름> -e <G>,<X>,<Y>,<W>,<H>
$ wmctrl -r xclock2 -e 0,25800,12000,1024,700
$ wmctrl -r xclock2 -e 0,0,0,1024,700
initwinpos()
{
if [[ $# -ne 1 ]] ; then
echo "Usage: ${FUNCNAME[0]} <WIN>"
else
wmctrl -r $1 -e 0,25800,12000,1024,700
fi
}
initwinposa()
{
if [[ $# -ne 1 ]] ; then
echo "Usage: ${FUNCNAME[0]} <WIN>"
else
wmctrl -r $1 -e 0,0,0,1024,700
fi
}