보조 모니터를 분리했다가 다시 연결하는 경우 창 크기와 위치를 기억하십시오


99

다음은 짜증나는 일입니다.

  1. 외부 모니터를 랩톱에 꽂습니다 (필자의 경우 Mac OS X Leopard).
  2. 한 화면에는 IDE가 있고 다른 화면에는 브라우저가 있도록 창을 배열하십시오. (기타, 크기 조정, 재정렬, 소란, 소란, 소란 등)
  3. 모니터를 뽑아 회의 등을 실행하십시오.
  4. 고토 1.

2 단계를 "컴퓨터는 내가 가진 방식을 정확히 기억하고 그대로 되돌려 놓습니다"로 바꾸고 싶습니다.

(개인적으로는 Mac 용 솔루션 만 필요하지만 여기에서 다른 시스템에 대한 솔루션을 수집하면 다른 시스템에 유용 할 수 있습니다. 이것이 일반적인 문제라고 확신합니다.)

답변:


56

무선 개로 숙박 을 보십시오 . 나는 그것이 당신이 찾고있는 것을 정확하게한다고 믿습니다.


2
나는 이것을 시도했다. X11 창에서는 작동하지 않지만 광고 된 것처럼 보입니다. 포인터 주셔서 감사합니다! 이것이 현재 Mac 용 솔루션에 가장 근접한 것일 수 있습니다.
Dreeves

X11 창은 "실제"NSWindow 인스턴스가 아니므로 (적어도 내가 마지막으로 확인한 시간은 아님) Stay가 그들과 아무 관련이없는 것을 원한다는 것은 놀라운 일이 아닙니다.

1
이것은 좋아 보이지만 Lion의 전체 화면 앱에서는 작동하지 않습니다. 1 개의 디스플레이가있을 때 Safari를 전체 화면 모드로 설정하고 두 번째 디스플레이를 연결 한 후 전체 화면을 종료하고 Safari를 두 번째 디스플레이로 옮기고 싶습니다. Stay는 전체 화면 앱을 이동하지 않습니다.

1
잘 맞는 것 같았습니다. 그러나 외부 디스플레이가 3 개인 경우 위치에 문제가있는 경우가 많았으며 문제를 50 %로 해결했습니다. 그래서 나는 여전히 많은 수작업을해야했습니다. 방금 설치 제거했습니다. 아, 그리고 그것의 유일한 30 일 재판!
Ernst Ernst

15

슬레이트 는원하는 것을 정확하게 수행하는 매우 강력한 무료 Mac 응용 프로그램입니다. 보조 모니터를 연결 하면 새 모니터가 자동으로 감지 되고 모든 창이 원하는대로 이동하고 크기가 조정됩니다. 전체 화면, 반 화면 및 그리드 기반을 포함한 모든 응용 프로그램에 대한 사용자 정의 위치 및 크기를 정의 할 수 있습니다.

Slate의 가장 멋진 점 중 하나 는 연결 한 모니터 수에 따라 다른 레이아웃을 정의 할 수 있다는 입니다. 예를 들어 랩톱을 단독으로 사용하는 경우 모든 앱이 전체 화면을 채우도록 할 수 있습니다. 그러나 보조 모니터가 더 큰 경우 화면을 브라우저, 메일 및 음악으로 분할 할 수 있습니다. 슬레이트는 이것을 쉽게합니다.

특정 레이아웃으로 창을 너지 및 크기 조정하는 것과 같은 특정 레이아웃 및 동작에 대한 키보드 단축키 를 정의 할 수도 있습니다 .

아래는 내 구성 파일입니다. 모든 모니터에서 모든 앱을 전체 화면으로 유지하지만 절반 또는 다른 크기로 변경하도록 앱을 변경할 수 있습니다.

# Monitor Aliases
alias mon-laptop    0    # variable for my laptop monitor
alias mon-hp        1    # my external HP monitor

# Window Position Regions
alias hp-full        move screenOriginX;screenOriginY screenSizeX;screenSizeY         ${mon-hp}
alias hp-left        move screenOriginX;screenOriginY screenSizeX/2;screenSizeY         ${mon-hp}
alias hp-right       move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY         ${mon-hp}
alias laptop-full        move screenOriginX;screenOriginY screenSizeX;screenSizeY         ${mon-laptop}
alias laptop-left        move screenOriginX;screenOriginY screenSizeX/2;screenSizeY         ${mon-laptop}
alias laptop-right       move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY         ${mon-laptop}
alias laptop-righttop    move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2       ${mon-laptop}
alias laptop-rightbottom move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2    screenSizeX/2;screenSizeY/2       ${mon-laptop}

# Window layouts for when I have 2 monitors
layout 2monitor 'Google Chrome':REPEAT ${hp-full}
layout 2monitor 'iCal':REPEAT ${hp-full}
layout 2monitor 'Coda':REPEAT ${hp-full}
layout 2monitor 'Mail':REPEAT ${laptop-full}
layout 2monitor 'Rdio':REPEAT ${laptop-full}
layout 2monitor 'Spotify':REPEAT ${laptop-full}
layout 2monitor 'Evernote':REPEAT ${laptop-full}

# Single monitor window layouts
layout 1monitor 'Google Chrome':REPEAT ${laptop-full}
layout 1monitor 'iCal':REPEAT ${laptop-full}
layout 1monitor 'Coda':REPEAT ${laptop-full}
layout 1monitor 'Mail':REPEAT ${laptop-full}
layout 1monitor 'Rdio':REPEAT ${laptop-full}
layout 1monitor 'Spotify':REPEAT ${laptop-full}
layout 1monitor 'Evernote':REPEAT ${laptop-full}

# Keyboard shortcuts for each layout
bind l:shift;ctrl layout 2monitor
bind g:shift;ctrl grid padding:5 0:2,1 1:2,2

# Auto-detect when a monitor is plugged in or out
default 2monitor count:2
default 1monitor count:1

다음은 Slate의 GitHub 페이지의 기능 목록입니다.

  • 고도로 사용자 정의 가능
  • 키 입력을 다음에 바인딩 :
    • 창 이동 및 / 또는 크기 조정
    • 방향성 초점 창
    • 사전 설정 레이아웃 활성화
    • 창의 현재 상태에 대한 스냅 샷 생성, 삭제 및 활성화
  • 해당 구성이 감지 될 때 활성화 될 다른 모니터 구성에 대한 기본 레이아웃을 설정하십시오.
  • 창 힌트 : 창 포커스를 변경하는 직관적 인 방법
  • [베타] 더 나은 맞춤형 사용자 정의 응용 프로그램 스위처.

다음은 슬레이트를 최대한 활용하는 방법에 대한 훌륭한 자습서 입니다.


외부 모니터를 마지막으로 연결했을 때의 창 위치를 기억하고 복원 할 수 있습니까? 'Stay'앱은 거의이 작업을 수행하지만 창 (특히 Chrome)을 기억하지 못하므로 여전히 더 나은 것을 찾고 있습니다.
Dreeves

@ dreeves 네, 그것은 나를 위해 작동합니다. 슬레이트의 메뉴 항목 인“Take Snapshot”과“Activate Snapshot”을 사용하여 수동으로 성공적으로 수행했습니다. 컴퓨터를 잠자기 전후에 클릭하면 모든 창 위치가 저장되고 복원됩니다. 에서 워드 프로세서 , 그것은 슬레이트 그와 함께 자동으로 "활성화 스냅 샷"을 할 수있는 것 같습니다 default지시어 . “Take Snapshot”부분을 자동화 할 수 있는지 모르겠습니다.
Rory O'Kane

2
OP 사용 사례의 경우 메뉴에서 스냅 샷 저장 및 스냅 샷 복원을 클릭하기 만하면됩니다. 원하는 창 구성이 하나만 있으면 다른 것을 망칠 필요없이 정상적으로 작동합니다.
Muhd

3
슬레이트는 더 이상 유지되지 않으므로 지금 해머 스푼을 사용하는 것이 좋습니다.
확실히

8

작은 AppleScript와 작은 프리웨어 유틸리티 인 Quicksilver를 사용하여이 문제를 해결했습니다.

  1. 이 작은 AppleScript를 컴퓨터에서 변경되지 않는 위치에 저장하십시오.

    try
        tell application "Adium"
            activate
            tell window "contacts"
                set the bounds to {1281, 200, 1460, 850}
            end tell
            tell chat windows
                set the bounds to {1281, 800, 1800, 1200}
            end tell
        end tell
    end try
    
    try
        tell application "iTunes"
            activate
            set the bounds of the first window to {1750, 520, 2700, 1150}
        end tell
    end try
    
    try
        tell application "Terminal"
            activate
            set the bounds of the first window to {2450, 320, 3180, 950}
        end tell
    end try
    
    try
        tell application "Firefox"
            activate
            set the bounds of the first window to {1460, 20, 2800, 950}
        end tell
    end try
    
  2. 모니터에서 원하는 응용 프로그램과 창을 원하는 방식으로 사용자 정의해야합니다. 나는 프로그래머이고 위의 구성은 두 번째 모니터를 실행하는 방법입니다.

  3. Quicksilver를 설치하십시오 .

    Dock에서 보이지 않게하고 작은 작업 표시 줄 데몬으로 실행하기로 선택했습니다.

  4. Quicksilver에서 키 명령을 설정하고 수행 할 조치로 AppleScript를 1 단계에서 창으로 끌어서 놓으십시오. 나는 그것을 묶었 다 CommandShiftA. 잘 작동합니다!


3
관리 할 응용 프로그램 수가 많으면 특히 확장 할 수 없습니다. 관리하기도 쉽지 않습니다! 하드 코딩 범위는 실제로 재미가 없습니다.
fatuhoku

응용 프로그램이 나타나는 바탕 화면을 설정할 수 있습니까?
dangerousdave

3

모니터를 분리하기 전에 주 모니터에 완전히 있지 않은 모든 것을 닫으십시오. 응용 프로그램은 일반적으로 닫을 때 상태 (창 배치 포함)를 저장하고 열 때 읽을 수 있으므로 두 번째 모니터가이 두 시간에 모두 있으면 괜찮습니다.

한 번에 둘 이상의 인스턴스를 열 수 있지만 닫을 때만 상태를 저장하는 응용 프로그램을 활용할 수 있습니다. 다중 모니터 인스턴스를 닫습니다 (상태가 저장 됨). 두 번째 모니터를 분리하십시오. 두 번째 인스턴스가 실행중인 경우 기본 모니터로 재배치하거나 다른 인스턴스를 시작할 수 있습니다. 두 번째 모니터를 다시 연결하고 다른 인스턴스를 시작하기 전에이 인스턴스를 닫지 마십시오 (시작시 다중 모니터 구성을 읽습니다). 그런 다음 단일 모니터 인스턴스를 종료 (상태 저장) 한 다음 다중 모니터 인스턴스 (단일 모니터 상태 덮어 쓰기)를 종료 할 수 있습니다.

보다 복잡한 옵션에는 상태를 저장 한 위치 파악, 백업 및 배치 파일 / 스크립트를 작성하여 응용 프로그램을 열기 전에 복원하여 응용 프로그램을 시작할 때 자동으로 링크를 만들 수 있습니다. .

마지막으로, 플랫폼에 맞는 유틸리티가 있거나 작성이 너무 복잡하지 않을 수 있습니다. Windows의 경우 응용 프로그램을 시작할 때 또는 특정 단축키에서 창을 재배치 할 수있는 ShiftWindow 라는 프로그램 이 있습니다. 비슷한 유틸리티가 있는지 MacOS를 잘 알지 못합니다. 이것은 아마도 이상적인 솔루션 일 것입니다 .OS가 그러한 것을 직접 지원하도록하는 것보다 둘째입니다.


1
감사! 내가 바라는 대답은 아니지만 좋은 리드입니다!
Dreeves

3

나는 방금 http://cordlessdog.com/stay/ 따라 왔지만 약간의 지연으로 나를 위해 훌륭하게 작동합니다.

Mac에 설치되어 있으면 Mac을 시작하고 원하는대로 창을 저장할 수 있습니다. 따라서 디스플레이 연결을 끊고 다시 연결할 때마다 모든 창이 복원됩니다.

Mac을 재시동 할 때마다 시작해야하므로 시작 응용 프로그램으로 유지해야 할 수도 있습니다.


2

외부 응용 프로그램 없이이 문제를 해결했습니다.

랩탑이 "데스크탑 1"이고 외부 모니터가 "데스크탑 2"인지 확인하기 만하면됩니다.

시스템 환경 설정> 디스플레이> 배열에서 흰색 메뉴 표시 줄을 랩톱 화면으로 이동하면됩니다.


1

최소한 Windows에서는 모니터를 전환하기 전에 앱을 최대화하면 많은 앱이 자동으로 복원됩니다. 회의 중에는 그대로 두었다가 다시 연결 한 후 복원하십시오.

여전히 불완전한 수정 (및 번거 로움)이지만 신중하게 배치 된 창을 부활시킬 기회를 원한다면 내가 아는 유일한 방법입니다. ShiftWindow는 흥미롭지 만 ...

두 모니터에서 하나의 Alt + 스페이스 바 + M으로 이동하면 화살표 키는 Windows를 "잃어버린 경우"생명의 은인입니다 (Windows는 다시 죄송합니다).


1

http://www.irradiatedsoftware.com/twoup/index.html

나는 Lifehacker를 통해 이것을 발견했고 그것은 나에게 효과적이다. 무료 TwoUp과 달리 Pro 버전 SizeUp을 사용하고 있으며 완벽합니다.


이것이 내가 제기 한 문제를 해결한다고 말하고 있습니까? 귀하가 링크 한 페이지에 대해서는 언급이없는 것 같습니다.
Dreeves

1
아니요, 문제가 전혀 해결되지 않습니다. SizeUp을 사용하면 원하는 위치로 창을 빠르게 이동할 수 있지만 각 창 사이를 수동으로 전환하고 각 창을 이동할 위치를 SizeUp에 알려야합니다.
Rory O'Kane

1

저는 Windows 사용자이며 새로운 Windows 7 기능을 해제하여 연결되지 않은 외부 모니터에서 모든 창을 옮기는 방법을 찾고있었습니다. 레지스트리의 모든 DMMEnableDDCPolling 값을 0으로 설정하는 영수증 (ATI 비디오 카드 용)을 찾았습니다. 모니터가 꺼져 있으면 자동 확인을 사용하지 않습니다. 이제 모니터의 플러그를 뽑았다가 다시 꽂으면 모든 창이 같은 위치에 유지됩니다.

여기에 도움이 된 답변이 있습니다 : https://superuser.com/questions/120983/how-to-disable-monitor-auto-detection-in-windows-7 (Alex의 답변)


1
이것은 Mac과 아무 관련이 없습니까?

5
아니요 .. 그러나 질문은 "windows"로 태그되었습니다 (아마 OP가 프로그램 창을 참조 했더라도 ). 어쨌든 Windows의 경우 작업을위한 편리한 유틸리티가 몇 가지 있습니다. 나는 개인적으로 Basta의 ZMover를 사용 하며 잘 작동했습니다. 또 다른 대안은 DeskSoft의 WindowManager 입니다. 그러나 이것들은 물론 OSX 사용자에게는 도움이되지 않습니다.
Ville
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.