Я звик підключатися до проекторів для конференц-залів або до великих екранів, які відрізняються роздільною здатністю, тому, переходячи з кімнати в кімнату протягом дня, мені також потрібно змінювати розміри вікон. Так я відчуваю твій біль. :-)
Щоб уникнути плутанини, я хочу визначити пару термінів для цієї відповіді:
- Основний дисплей є одним з рядком меню на вкладці Композиції в настройках системи.
- Основний дисплей є той , який ви хочете речі на, незалежно від того , є чи воно основним дисплеєм.
- Додатковий дисплей є одним без рядка меню на вкладці Композиції в настройках системи.
По суті, проблема полягає в тому, що ви бачите важливу різницю між головним та основним дисплеями; Mac OS X цього не робить, і він буде боротися з вами, коли ви намагаєтеся зберегти цю відмінність, трактуючи вторинний дисплей як основний дисплей.
Якщо вони спеціально не намагаються зробити інше, додатки завжди відкриються на будь-якому основному екрані. Це, безумовно, одна з характеристик основного дисплея. (Це досить низький рівень Quartz API, зокрема виклик CGConfigureDisplayOrigin , тому така поведінка не може бути налаштована, якщо сама програма не дозволяє вам налаштувати її.)
Я б запропонував, можливо, поцікавтеся тим, що робить вас дратівливим ("поспішає з іншими речами", коли ви це додаєте до коментаря), щоб не зберігати основний дисплей як основний дисплей під час підключення, оскільки вони можуть бути налаштовані ; така поведінка не є.
Я маю для вас пару хитрощів, які можуть допомогти:
Дзеркальне відображення, а потім відтворення дзеркальних дисплеїв призводить до того, що всі вікна занадто великі, щоб поміститися на меншому екрані, слід змінити розмір, щоб підходити, і всі вікна потрапляють на основний дисплей. Я знаю, це не ідеальне рішення, оскільки вам потрібні речі на вторинному дисплеї, але це може бути корисним рішенням у поєднанні з наступним трюком, особливо якщо ви знаєте комбінацію клавіш: ⌘-F1. Натисніть його, нехай система перейде до дзеркального відображення, і натисніть його ще раз. Усі ваші вікна будуть змінені до найменшого дисплея та будуть розміщені на первинному дисплеї.
Ще один дуже корисний інструмент для вирішення проблеми - це BetterTouchTool , який дозволяє встановити "Центральне вікно на наступному моніторі" та "Максимізувати вікно до наступного монітора". Я призначаю їх клацанням чотирма і п’ятьма пальцями відповідно, і тоді я можу швидко проскакувати вікно з одного монітора на інший, просто переміщуючись на трекпад. (Якщо ви не використовуєте трекпад, коли ви підключені до великого дисплея, BTT може робити жести і з іншими вказівними пристроями.)
Ці два фокуси разом зробили роботу з постійно змінюваними резолюціями не ідеальною, але принаймні терпимою. Якщо я хочу перенести всі свої вікна на вторинний дисплей (я даю заняття, скажімо, і хочу, щоб меню видно студентам, але я хочу, щоб усі мої вікна, не пов'язані з навчанням, були на іншому дисплеї) , Я роблю фокус з дзеркалом / unmirror, а потім чотири пальці вдавлюю трекпад багато разів, поки вікна не спливуть.
Нарешті, якщо ви хочете загадати, ви можете поглянути на цей Applescript, який переміщує всі вікна до основного за допомогою іншого методу. На відміну від дзеркального методу, який переміщує вікна до основного як побічний ефект, цей робить це явно, так що ви можете змінити його для переміщення вікон на бажаний основний, вторинний, дисплей. Але це непросто, що може дати вам уявлення про те, чому все бореться проти цього використання. Ось вирішальний рядок цього Applescript:
set position of window x to {0, 22}
Оскільки меню меню має 22 координати відображення (те, що раніше було "пікселями" до появи сітківки), а екрани та вікна мають свої початкові точки у верхньому лівому куті, цей рядок рухається вікном x справа внизу та зліва вниз з меню. Для того, щоб адаптувати цей скрипт, щоб він замість цього перемістив усі вікна у верхній лівий бік вторинного дисплея, вам потрібно буде визначити його координати та використовувати це як значення x. У розташуванні, яке ви показуєте на екрані екрана, "0" буде замінено на від'ємне число , оскільки ви знаходитесь зліва від меню. Потрібно буде кілька хитрощів, щоб правильно вийти, особливо якщо ви хотіли, щоб сценарій працював незалежно від домовленості.
Це все безглуздо, я знаю; але вам доведеться приймати шаблони, якщо ви хочете, щоб ваш основний і основний дисплеї були різними. Ось чому я дуже рекомендую вам спробувати вирішити те, що не дозволяє іншим екранам бути основним, а не боротися з цим боєм.