Остановить Mavericks от открытия приложений на втором экране?

15

У меня есть MacBook Pro и подключен к нему внешний дисплей, пока все отлично. Однако Mavericks, похоже, настаивает на том, чтобы открывать новые приложения на дополнительном дисплее, даже если на главном дисплее находится текущее активное (основное и основное) окно / приложение. Невероятно расстраивает, потому что они имеют разные размеры экрана, и это ужасно портит мои сохраненные размеры окон. Есть ли способ помешать Маверикс сделать это? Я хочу, чтобы приложения открывались только на главном экране, или, по крайней мере, чтобы они запомнили, на каком экране я их закрывал в прошлый раз.

В случае, если это помогает, это мое устройство отображения из системных настроек: введите описание изображения здесь

JustSid
источник
может быть, вы должны сделать другой дисплей вашим основным дисплеем. посмотрите здесь osxdaily.com/2010/04/27/set-the-primary-display-mac
konqui
Пробовал с чистой установкой, все же такая же проблема. Подал радар для него, так как это, кажется, ошибка и ничего специально.
JustSid

Ответы:

16

Я привык подключаться к проекторам конференц-зала или большим экранам, которые различаются по разрешению, поэтому по мере того, как я перемещаюсь из комнаты в комнату в течение дня, мои окна тоже постоянно меняются. Я чувствую твою боль. :-)

Чтобы избежать путаницы, я хочу определить пару терминов для этого ответа:

  • Основной дисплей является одним с строкой меню на вкладке Композиции в настройках системы.
  • Основной дисплей является тот , который вы хотите вещи на, независимо от того , является ли оно основным дисплеем.
  • Дополнительный дисплей является одним без строки меню на вкладке Композиции в настройках системы.

По сути, проблема в том, что вы видите важное различие между основным и основным дисплеями; Mac OS X этого не делает, и будет бороться с вами, когда вы попытаетесь сохранить это различие, рассматривая дополнительный дисплей как основной.

Если они специально не попытаются поступить иначе, приложения всегда будут открываться на любом основном дисплее. Это определенно одна из характеристик основного дисплея. (Это довольно низкоуровневая часть API-интерфейса Quartz, в частности вызов CGConfigureDisplayOrigin , поэтому это поведение невозможно настроить, если само приложение не позволяет вам его настраивать.)

Я бы посоветовал спросить о том, что делает его раздражающим для вас («мешает с другими вещами», как вы указали это в своем комментарии), чтобы не сохранять основной дисплей в качестве основного дисплея при подключении, поскольку они могут быть настраиваемыми ; такого поведения нет.

У меня есть пара трюков для вас, которые могут помочь, хотя:

Зеркальное отображение, а затем не зеркальное отображение дисплеев приводит к тому, что все окна, слишком большие, чтобы поместиться на меньшем экране, будут изменены, чтобы соответствовать размеру, и переносит все окна на основной дисплей. Я знаю, что это не идеальное решение, поскольку вы хотите что-то на дополнительном дисплее, но это может быть полезным обходным путем в сочетании со следующим приемом, особенно если вы знаете сочетание клавиш: ⌘-F1. Нажмите ее, позвольте системе переключиться на зеркалирование и нажмите ее снова. Все ваши окна будут изменены до минимального размера и будут отображаться на основном дисплее.

Еще один очень полезный инструмент для решения этой проблемы - BetterTouchTool , который позволяет устанавливать жесты «Окно центра на следующем мониторе» и «Максимизировать окно на следующем мониторе». Я назначаю их четырем и пяти пальцам, соответственно, и затем я могу быстро вывести окно с одного монитора на другой, просто нажимая на трекпад. (Если вы не используете трекпад при подключении к большому дисплею, BTT может выполнять жесты и с другими указывающими устройствами.)

Эти два трюка вместе сделали работу с постоянно меняющимися разрешениями не идеальной, но, по крайней мере, терпимой. Если я хочу вывести все свои окна на дополнительный дисплей (скажем, я даю тренировку и хочу, чтобы строка меню была видимой для студентов, но я хочу, чтобы все мои окна, не связанные с обучением, были на другом дисплее) , Я делаю трюк с зеркалом / без зеркала, а затем несколько раз бью по трекпаду пальцами, пока все окна не откроются.

Наконец, если вы хотите поиграть, вы можете взглянуть на этот Applescript, который перемещает все окна в основное с помощью другого метода. В отличие от метода зеркального отображения, который перемещает окна к основному в качестве побочного эффекта, этот метод делает это явно, поэтому вы можете изменить его, чтобы переместить окна на предпочитаемый основной, дополнительный дисплей. Но это не легко, что может дать вам представление о том, почему все борется с вами против такого использования. Вот ключевая строка этого Applescript:

set position of window x to {0, 22}

Поскольку строка меню имеет 22 координаты отображения (которые раньше были «пикселями» до отображения Retina) высоко, а экраны и окна имеют свои исходные точки в верхнем левом углу, эта линия перемещает окно x справа внизу и вровень влево с меню. Чтобы адаптировать этот скрипт так, чтобы он вместо этого переместил все окна в верхний левый угол вторичного дисплея, вам необходимо выяснить его координаты и использовать его в качестве значения x. В расположении, которое вы показываете на скриншоте, «0» будет заменено отрицательным числом , так как вы находитесь слева от строки меню. Чтобы разобраться в этом, потребуется немного возиться, особенно если вы хотите, чтобы скрипт работал независимо от договоренности.

Это все клудж, я знаю; но вам придется принимать клуджи, если вы хотите, чтобы ваш основной и основной дисплеи отличались. Вот почему я действительно настоятельно рекомендую вам попытаться решить, что удерживает вас от того, чтобы другой дисплей был основным, а не сражался в этой конкретной битве.

тройка
источник
Извините за путаницу, но я имел в виду, что я хочу, чтобы мой основной дисплей был основным дисплеем (как ни странно, основной дисплей - это основной дисплей. CoreGraphics CGDisplayIDдля них возвращает то же самое )
JustSid
@JustSid - Интересно, вы говорите, что приложения открываются на самом левом экране выше? Это просто странно, и я не могу повторить это - как я уже говорил, одно из специфических поведений главного окна - то, где приложения открывают новые окна по умолчанию. Все, что я могу думать, это попытаться толкнуть дисплей вниз, чтобы он не выступал сверху? У меня нет объяснения, почему это так, но, возможно, если бы ваш главный дисплей был выше по оси Y, это помогло бы. Я сказал, что не могу воспроизвести его, но у меня нет внешнего дисплея меньшего размера, чтобы попробовать, если это - странно - то, что его вызывает.
Trey
Да, это именно проблема. Все открывается на меньшем дополнительном экране, хотя я хочу, чтобы вещи открывались на большом главном экране! Но переупорядочение дополнительного дисплея немного решило проблему! Я не знаю, откуда у вас эта идея, но она великолепна, спасибо вам большое! Собираюсь обновить мой радар и надеюсь, что он исправлен в 10.9.1 (его не было в течение 10.7-10.8).
JustSid
@JustSid "Вы говорите, что приложения открываются на крайнем левом экране выше?" У меня та же проблема: приложения и документы открываются на моем дополнительном дисплее.
bames53
5

Что касается Маверикс, существует различие между активными и неактивными мониторами. Вы можете увидеть, какой монитор активен, посмотрев на свою строку меню (я предполагаю, что вы используете новое поведение пространств Mavericks). Если вы сравните их на обоих экранах, один из них исчезнет, ​​а второй будет в основном непрозрачным. Активируется тот, который является наиболее непрозрачным, и новые окна приложений будут открываться на экране с непрозрачным экраном меню, если на другом экране нет других окон того же приложения.

Итак, как вы можете изменить, какой экран активен?

Просто нажмите в любом месте на рабочем столе на экране, который вы хотите, чтобы окно открылось. Это сделает меню на экране почти непрозрачным, и открытие окна теперь должно открыть его на экране.

Также обратите внимание, что это поведение не зависит от вашей позиции в доках. По моему опыту, я должен был щелкнуть на рабочем столе (между файлами), чтобы активировать другой экран (я имею в виду получить его в активном состоянии)

Обновить

По общему признанию, это не мешает Mavericks открывать окна на другом экране 8. Вы можете перейти к «управлению полетом» в настройках системы и снять флажок «мониторы используют разные пробелы», чтобы вернуться к поведению до Mavericks. Таким образом, он откроется на последнем закрытом экране и / или на экране, где находится меню. Метод, который я описал выше, является только обходом пути Mavericks.

Объятие
источник
«То, которое является наиболее непрозрачным, активируется, и новые окна приложений будут открываться на экране с непрозрачным экраном меню, если на другом экране нет других окон того же приложения». Я открываю документы, и они открываются на дополнительном дисплее, несмотря на то, что в этом приложении не было других окон, открытых на этом экране, и были открытые окна из этого приложения на основном экране (потому что я продолжаю перемещать их все). Если я закрою окно документа на главном экране, а затем снова открою этот документ, оно переместит окно на дополнительный экран, и мне придется переместить его снова.
bames53
3

с открытым приложением нажмите F3, чтобы открыть Mission Control, а затем перетащите приложение на экран, на котором вы хотите его открыть в будущем. Он назначен «пробелу» на вашем компьютере - измените пространство, которому он назначен.

user69765
источник
2

Новые окна всегда будут открываться на дисплее с «строкой меню», поэтому просто переместите строку меню «по умолчанию» на дисплей, где вы предпочитаете запускать новые окна.

Посмотрите на скриншот выше диалогового окна «Настройки дисплея». Обратите внимание, что только один из дисплеев показывает строку меню. Также обратите внимание на текст «Чтобы переместить строку меню, перетащите ее на другой дисплей».

NaveenJC
источник
4
Ну, да, я хотел сказать, что строка меню уже была на правильном экране, и этот экран определенно имел фокус, но программы открывались на другом экране.
JustSid
1

У меня была такая же проблема. Я обнаружил, что приложения открыты на любом экране, на котором установлена ​​док-станция.

Мои экраны были настроены так же, как ваш, док-станция на левой стороне. Я переключил док-станцию ​​вправо, и теперь они открываются на главном мониторе, а не на дополнительном.

nkh004
источник
0

Чтобы заставить OS X всегда открывать приложение на определенном дисплее в Mavericks или новее, щелкните правой кнопкой мыши значок док-станции для приложения и выберите «Параметры» - «Назначить рабочему столу 1 или 2» (рабочий стол 2 должен быть вашим дополнительным дисплеем). Я обнаружил, что это не всегда работает, когда вы перетаскиваете некоторые приложения на другой дисплей (например, Safari в El Capitan). Оказавшись там, иногда он хочет продолжать открывать там, и, по крайней мере, в El Capitan, он обычно открывается на основном дисплее, если специально не сказано, как открыть на дополнительном дисплее. Вы также можете использовать OPTIONS -> Assign на панели, чтобы переместить программу обратно на любой дисплей (можно сэкономить время, не перемещая мышь на другой дисплей, чтобы перетаскивать его обратно, особенно если у вас более двух мониторов.

Я просто хотел бы иметь возможность иметь док-станцию ​​на каждом дисплее в любое время. Я предпочитаю боковые доки, и вы не можете мигрировать, что является королевской болью. Я отправил отзыв об этом в Apple, но они просто игнорируют это. Было бы так легко иметь док-станцию ​​на каждом экране всегда, как в строке меню (может быть, даже другойзакрепите для каждого экрана настройки, в которых вы часто используете определенные приложения на определенных экранах), и каждая док-станция на каждом экране открывает приложения на этом «активном» экране. Я не возражаю против того, чтобы кнопка на самом окне тоже имела «Отправить на дисплей». Это проще, чем перетаскивать окна, особенно если они расположены так, что они не расположены рядом (например, я использую диагональ, чтобы случайно не переместить мышь на другой дисплей, и это позволяет мне держать док-станцию ​​включенной). моя левая сторона моего правого монитора, так как мне нравится док-станция слева и значки справа всегда, независимо от положения монитора).

VonMagnum
источник
1
Единственное приложение, с которым у меня проблемы, это TextEdit, который ВСЕГДА открывает файлы на экране телевизора (дополнительный дисплей). Ни один из ответов в этой теме не меняет это поведение. Все остальные приложения открываются на моем основном дисплее (Macbook). Нет ничего страшного в том, чтобы вручную захватывать окна TextEdit с одного экрана, перетаскивать их на другой и изменять их размер, но это относится к категории Applesoft, не так ли? (Apple, превентивно придумывая этот термин для своего BASIC, не мешает мне также использовать его для описания продуктов Apple, которые ведут себя как продукты Microsoft.)
mathematrucker