'macOS Mojave'에 해당되는 글 1건

  1. 2020.06.13 맥북 듀얼모니터 방향 인식 문제 해결 3
카테고리 없음2020. 6. 13. 15:18

코로나19로 인한 재택근무 중에, 학교에서 쓰던 듀얼 모니터 2대와 썬더볼트3 독을 집으로 가져와서 쓰고 있었다. 

모니터를 최대한으로 활용하기위해, 트리플 모니터를 구축해서 아래 그림과 같이 설정해 놓은 상태.

그림에서 왼쪽 아래 작은 모니터는 맥북 자체 모니터이고, 나머지 2개는 외부모니터. 예전에 같은 해상도의 비슷한 모니터 2개를 1년 간격으로 샀다가 두 모니터의 색감이 달라서 신경쓰였던 적이 있었기에, 이번에는 처음부터 같은 브랜드 같은 모델로 2개를 구입했다. (Dell U2719D 모델) 그런데 이 '같은 모델' 이라는게 또 다른 문제를 야기할 줄은....

 

모니터랑 맥북이랑 연결할때마다 선 여러개 꼽는걸 방지하고자 모니터들은 모두 썬더볼트3 독 (Caldigit TS3 Plus 모델) 에다가 연결시키고, 맥북에는 Thunderbolt 3 선 딱 한개만 끼우는 방식으로 구성되어 있는 상태.

 

이게 학교에서 쓸 때는 맥북 모니터 없이, 듀얼 모니터로 쓰고있었고, 또 방향 설정 없이 모니터 2개 모두 수평방향으로 쓰고 있었다. 즉 매우 평범한 듀얼모니터 구성이었고, 이때는 아무 문제가 없었었다. 아, 생각해보니 맥북을 닫아놓은 상태로 썬더볼트 선을 연결하면 가끔 맥북이 강제 재부팅 되는 일이 있긴 했었네. 그런데 그건 일단 맥북 화면을 열어놓은 상태로 연결했다가 바로 닫으면 해결되었으니 약간 귀찮긴 했어도 아무튼 별 문제는 없었음.

 

그런데 문제는... 위 그림같이 설정한 다음에 맥북이랑 독을 연결하니, 가끔씩 (매우 자주) 매우 짜증나는 상황이 발생했다. 위와 같은 상황에서 모니터 1대는 수평방향이고, 다른 1대는 수직방향으로 설정되어있는데, 맥북을 독이랑 새로 연결하면 50%의 확률로 두 모니터의 회전 방향이 뒤바뀌는 일이 발생하는 것. 수평으로 된 모니터에 수직화면이, 수직으로 된 모니터에 수평화면이 나타나니 아주 짜증나는 상황이었다. 바로 다시 뺏다가 다시 끼는 것으로는 해결이 안되고, 그렇다고 매번 설정 들어가서 모니터 회전설정을 2번이나 바꾸는것도 못할 노릇 (모니터 방향이 돌아가 있으니 마우스 커서 움직이는것도 헷갈리는 일). 결국 찾아낸 방법은, 모니터 하나를 끈 상태로 Thunderbolt 선을 끼웠다가 뺐다가 하면 켜둔 모니터의 방향이 제대로 바뀌는 일이 생기는데, 이때 다시 꺼둔 모니터를 켜주면 모니터 2대 다 제대로 연결됨. 근데 이것도 하루에 몇번씩 하자니 못해먹을 노릇. 모니터를 2개 중 하나만 독에 연결하고 나머지 하나는 맥북에 직접 연결하는 방식으로 했을때는 이런 문제가 안생기는데, 그렇게 하자니 또 선 하나만 끼우려고 산 비싼 독을 100%을 활용하지 못하고 선을 2개씩 맥북에 연결해야하니 마음에 안들고.. 정말 곤란한 상황이었다.

 

그러다가 어느날 갑자기 혹시나 하는 생각이 들어서 구글에 검색을 해봤는데... 이게 웬걸, 해결책이 있었다. 역시 사람들은 똑똑해....

https://forums.macrumors.com/threads/my-mac-forgets-my-dual-monitor-arrangement.2195237/

 

My Mac forgets my dual monitor arrangement!

Hello friends. I recently added my old 23" Cinema Display to my Trashcan in addition to the main 27" Eizo. I'm using the apple DisplayPort adapter. I got it set up just fine and mounted vertically on a nice new dual monitor stand. Suddenly after a few rebo

forums.macrumors.com

My Mac forgets my dual monitor arrangement! 읽어보니 정확하게 나와 같은 상황. 이 글에 따르면 독이 맥북이랑 연결될때 맥북에다가 모니터 연결 신호를 순차적으로 보내는데, 이게 모니터 모델이 같으면 연결 신호를 보내는 순서가 그때그때 달라져서 만약 모니터 방향이 다를 경우 문제가 생긴다고 한다. 사실 같은 논리면 모니터 방향이 같더라도 모니터 좌우 순서가 바뀌는 등의 문제가 생겨야 할 것 같기 때문에 완전히 맞는 설명은 아닌 것 같긴 하지만, 아무튼 이 문제가 나만의 문제는 아니고 다른 사람들한테도 똑같이 나타나는 문제라는게 중요하지.

 

글을 보면 아래쪽에 처음에 질문한 사람이 스스로 해법을 찾아내서 올려놓았다. 그래서 똑같이 따라해보니 나도 문제 해결.

나중을 위한 기록 겸, 저 글에 나온 해법이 완전히 자세하지는 않아서, 더 자세한 해법을 블로그 글로 남겨두려고 한다.

 

글에서 제시한 해결방법은 크게 보면 아래와 같다.

1. Displayplacer 라는 프로그램으로 제대로 된 모니터 방향 설정 상태를 확인 및 기록.

2. Displaycer가 기록해놓은 방향 설정 상태로 돌아가도록 하는 쉘 스크립트 명령어를 만들고, 해당 내용을 실행하는 Automator 스크립트 생성.

3. 해당 Automator 스크립트에 키보드 단축키를 설정. 이제 만약 모니터 새로 연결시에 방향이 뒤바뀌더라도 침착하게 키보드 단축키만 눌러주면 된다.

 

 

자 그럼 어떻게 해결방법을 적용하느냐,

 

아래 설명은 macOS Mojave 10.14.6 기준. 나는 Catalina로 넘어갈 용기가 없다. 좀 안정되면 괜찮아지겠거니 했는데, 시간이 지났는데도 Catalina 에서 뭘 실행하면 제대로 안돌아간다는 얘기가 계속 들려서.. 그냥 모하비로 계속 지내는게 나을듯.

 

1. 일단 터미널을 실행하고

 

2. https://github.com/jakehilborn/displayplacer

 

jakehilborn/displayplacer

macOS command line utility to configure multi-display resolutions and arrangements. Essentially XRandR for macOS. - jakehilborn/displayplacer

github.com

이 링크에서 displayplacer 프로그램을 다운받는다. git 을 아시는분은 git clone 으로 다운받으면 되고, 그게 아니면 그냥 위 링크에서 displayplacer 바이너리 파일 하나만 다운 받아도 되는듯?

 

3. 터미널에서 displayplacer 가 위치한 폴더로 들어간 다음, ./displayplacer list 를 실행한다. 그러면 예를들어 아래와 같이 제일 아래쪽에 displayplacer "id: 로 시작하는 긴 내용이 나옴.

 

displayplacer "id:01BC9076-B001-373D-F846-123456789 res:1680x1050 color_depth:4 scaling:on origin:(0,0) degree:0" "id:5D46D3BF-61A2-BA17-51DC-123456789 res:1440x2560 hz:59 color_depth:8 scaling:off origin:(1680,-1510) degree:90" "id:75A72485-E46B-1F6E-77DC-123456789 res:2560x1440 hz:59 color_depth:8 scaling:off origin:(-880,-1440) degree:0"

 

그럼 이제 해당 내용을 어디 복사해 놓는다. 위 내용을 잘 살펴보면, 이 명령어는 monitor별 ID를 인식해서 ID를 가지고 화면을 배치하는 식으로 되어있는 것을 알 수 있음. 맥북이 기본적으로는 기억해두는 화면 정렬 정보에는 monitor ID가 같이 저장되지 않는가보다. 

 

4. Automator 실행. 실행하면 아무 창도 안 뜨는데... 위쪽 메뉴바에서 File-New를 선택하면 된다. 그럼 아래와 같은 화면이 나오고, 여기에서 Quick Action을 선택.

 

5. 그다음 아래 사진 부분에다가 Run Shell Script 라고 검색하고, 더블클릭.

 

6. 여기서 이제 중요한게, 우선 Workflow receives 부분을 아래와 같이 no input으로 변경해줘야 한다.

 

7. 그리고 아까 저장해놓았던 명령어를 붙여넣기 해주면 되는데, 명령어 앞쪽에 displayplacer 프로그램이 위치한 경로를 넣어줘야 한다. 예를들어 프로그램이 /Users/program 폴더 안에 들어가 있다면 아래와 같은 식으로.

 

/Users/program/displayplacer "id:01BC9076-B001-373D-F846-123456789 res:1680x1050 color_depth:4 scaling:on origin:(0,0) degree:0" "id:5D46D3BF-61A2-BA17-51DC-123456789 res:1440x2560 hz:59 color_depth:8 scaling:off origin:(1680,-1510) degree:90" "id:75A72485-E46B-1F6E-77DC-123456789 res:2560x1440 hz:59 color_depth:8 scaling:off origin:(-880,-1440) degree:0"

 

그리고 위 명령어 다음줄에 아래와 같이 실행종료 명령어를 넣어준다

 

exit 0

 

8. 이제 오른쪽 위에 Run 부분을 눌러줘서, 명령어가 잘 작동하는지 확인한다. 잘 작동한다면 화면이 한번 깜빡거리게 된다. 깜빡인 후에도 계속 실행이 되는것처럼 보이는데, 조금 기다리면 알아서 끝남.

 

9. File-Save 를 통해 명령어를 저장한다. 저장한 이름을 기억해 두어야..

 

10. System Preferences - Keyboard - Shortcuts 에 들어간다음, 왼쪽에서 Services 클릭. 스크롤 왔다갔다 해보면 방금 만든 명령어가 보인다. 왼쪽 체크박스에 체크하고, Add shortcut 누르고, 설정해 놓고 싶은 단축키로 설정. 여기서 중요한게... 요즘 각종 단축키를 쓰는 프로그램들이 많아서 그런지, 잘 작동하는 단축키로 설정하는게 쉽지 않다. 설정이 된다고 해서 작동한다는 보장이 없음. 그래서 만약 단축키를 눌렀는데도 실행이 안되면, 단축키를 바꿔보는 것이 좋겠다. 나도 처음에는 Control+Option+ , (쉼표) 로 했었는데 안되어서, Control+Option+. (마침표) 로 설정하니까 잘 작동함. Control+Option 으로 찾기 어려우면 Control+Option+Command+글자 로 하면 되는 것 같다. 

 

11. 맥북 바탕화면 등이 선택된 상황에서 키보드 단축키 실행. 화면이 깜빡이면 성공이다. 이제 방향 인식이 잘못되어도, 키보드 단축키 한방이면 해결...! 글이 좀 길어졌는데, 한번 설정해놓으니 편하다. 그리고 이번 기회에 Automator 도 알게 되어서, 앞으로 자주 써먹게 될듯. 끝!

 

 

Posted by ㅇㅇㅎㅅ