У меня есть MacBook Pro и подключен к нему внешний дисплей, пока все отлично. Однако Mavericks, похоже, настаивает на том, чтобы открывать новые приложения на дополнительном дисплее, даже если на главном дисплее находится текущее активное (основное и основное) окно / приложение. Невероятно расстраивает, потому что они имеют разные размеры экрана, и это ужасно портит мои сохраненные размеры окон. Есть ли способ помешать Маверикс сделать это? Я хочу, чтобы приложения открывались только на главном экране, или, по крайней мере, чтобы они запомнили, на каком экране я их закрывал в прошлый раз.
В случае, если это помогает, это мое устройство отображения из системных настроек:
Ответы:
Я привык подключаться к проекторам конференц-зала или большим экранам, которые различаются по разрешению, поэтому по мере того, как я перемещаюсь из комнаты в комнату в течение дня, мои окна тоже постоянно меняются. Я чувствую твою боль. :-)
Чтобы избежать путаницы, я хочу определить пару терминов для этого ответа:
По сути, проблема в том, что вы видите важное различие между основным и основным дисплеями; Mac OS X этого не делает, и будет бороться с вами, когда вы попытаетесь сохранить это различие, рассматривая дополнительный дисплей как основной.
Если они специально не попытаются поступить иначе, приложения всегда будут открываться на любом основном дисплее. Это определенно одна из характеристик основного дисплея. (Это довольно низкоуровневая часть API-интерфейса Quartz, в частности вызов CGConfigureDisplayOrigin , поэтому это поведение невозможно настроить, если само приложение не позволяет вам его настраивать.)
Я бы посоветовал спросить о том, что делает его раздражающим для вас («мешает с другими вещами», как вы указали это в своем комментарии), чтобы не сохранять основной дисплей в качестве основного дисплея при подключении, поскольку они могут быть настраиваемыми ; такого поведения нет.
У меня есть пара трюков для вас, которые могут помочь, хотя:
Зеркальное отображение, а затем не зеркальное отображение дисплеев приводит к тому, что все окна, слишком большие, чтобы поместиться на меньшем экране, будут изменены, чтобы соответствовать размеру, и переносит все окна на основной дисплей. Я знаю, что это не идеальное решение, поскольку вы хотите что-то на дополнительном дисплее, но это может быть полезным обходным путем в сочетании со следующим приемом, особенно если вы знаете сочетание клавиш: ⌘-F1. Нажмите ее, позвольте системе переключиться на зеркалирование и нажмите ее снова. Все ваши окна будут изменены до минимального размера и будут отображаться на основном дисплее.
Еще один очень полезный инструмент для решения этой проблемы - BetterTouchTool , который позволяет устанавливать жесты «Окно центра на следующем мониторе» и «Максимизировать окно на следующем мониторе». Я назначаю их четырем и пяти пальцам, соответственно, и затем я могу быстро вывести окно с одного монитора на другой, просто нажимая на трекпад. (Если вы не используете трекпад при подключении к большому дисплею, BTT может выполнять жесты и с другими указывающими устройствами.)
Эти два трюка вместе сделали работу с постоянно меняющимися разрешениями не идеальной, но, по крайней мере, терпимой. Если я хочу вывести все свои окна на дополнительный дисплей (скажем, я даю тренировку и хочу, чтобы строка меню была видимой для студентов, но я хочу, чтобы все мои окна, не связанные с обучением, были на другом дисплее) , Я делаю трюк с зеркалом / без зеркала, а затем несколько раз бью по трекпаду пальцами, пока все окна не откроются.
Наконец, если вы хотите поиграть, вы можете взглянуть на этот Applescript, который перемещает все окна в основное с помощью другого метода. В отличие от метода зеркального отображения, который перемещает окна к основному в качестве побочного эффекта, этот метод делает это явно, поэтому вы можете изменить его, чтобы переместить окна на предпочитаемый основной, дополнительный дисплей. Но это не легко, что может дать вам представление о том, почему все борется с вами против такого использования. Вот ключевая строка этого Applescript:
Поскольку строка меню имеет 22 координаты отображения (которые раньше были «пикселями» до отображения Retina) высоко, а экраны и окна имеют свои исходные точки в верхнем левом углу, эта линия перемещает окно x справа внизу и вровень влево с меню. Чтобы адаптировать этот скрипт так, чтобы он вместо этого переместил все окна в верхний левый угол вторичного дисплея, вам необходимо выяснить его координаты и использовать его в качестве значения x. В расположении, которое вы показываете на скриншоте, «0» будет заменено отрицательным числом , так как вы находитесь слева от строки меню. Чтобы разобраться в этом, потребуется немного возиться, особенно если вы хотите, чтобы скрипт работал независимо от договоренности.
Это все клудж, я знаю; но вам придется принимать клуджи, если вы хотите, чтобы ваш основной и основной дисплеи отличались. Вот почему я действительно настоятельно рекомендую вам попытаться решить, что удерживает вас от того, чтобы другой дисплей был основным, а не сражался в этой конкретной битве.
источник
CGDisplayID
для них возвращает то же самое )Что касается Маверикс, существует различие между активными и неактивными мониторами. Вы можете увидеть, какой монитор активен, посмотрев на свою строку меню (я предполагаю, что вы используете новое поведение пространств Mavericks). Если вы сравните их на обоих экранах, один из них исчезнет, а второй будет в основном непрозрачным. Активируется тот, который является наиболее непрозрачным, и новые окна приложений будут открываться на экране с непрозрачным экраном меню, если на другом экране нет других окон того же приложения.
Итак, как вы можете изменить, какой экран активен?
Просто нажмите в любом месте на рабочем столе на экране, который вы хотите, чтобы окно открылось. Это сделает меню на экране почти непрозрачным, и открытие окна теперь должно открыть его на экране.
Также обратите внимание, что это поведение не зависит от вашей позиции в доках. По моему опыту, я должен был щелкнуть на рабочем столе (между файлами), чтобы активировать другой экран (я имею в виду получить его в активном состоянии)
Обновить
По общему признанию, это не мешает Mavericks открывать окна на другом экране 8. Вы можете перейти к «управлению полетом» в настройках системы и снять флажок «мониторы используют разные пробелы», чтобы вернуться к поведению до Mavericks. Таким образом, он откроется на последнем закрытом экране и / или на экране, где находится меню. Метод, который я описал выше, является только обходом пути Mavericks.
источник
с открытым приложением нажмите F3, чтобы открыть Mission Control, а затем перетащите приложение на экран, на котором вы хотите его открыть в будущем. Он назначен «пробелу» на вашем компьютере - измените пространство, которому он назначен.
источник
Новые окна всегда будут открываться на дисплее с «строкой меню», поэтому просто переместите строку меню «по умолчанию» на дисплей, где вы предпочитаете запускать новые окна.
Посмотрите на скриншот выше диалогового окна «Настройки дисплея». Обратите внимание, что только один из дисплеев показывает строку меню. Также обратите внимание на текст «Чтобы переместить строку меню, перетащите ее на другой дисплей».
источник
У меня была такая же проблема. Я обнаружил, что приложения открыты на любом экране, на котором установлена док-станция.
Мои экраны были настроены так же, как ваш, док-станция на левой стороне. Я переключил док-станцию вправо, и теперь они открываются на главном мониторе, а не на дополнительном.
источник
Чтобы заставить OS X всегда открывать приложение на определенном дисплее в Mavericks или новее, щелкните правой кнопкой мыши значок док-станции для приложения и выберите «Параметры» - «Назначить рабочему столу 1 или 2» (рабочий стол 2 должен быть вашим дополнительным дисплеем). Я обнаружил, что это не всегда работает, когда вы перетаскиваете некоторые приложения на другой дисплей (например, Safari в El Capitan). Оказавшись там, иногда он хочет продолжать открывать там, и, по крайней мере, в El Capitan, он обычно открывается на основном дисплее, если специально не сказано, как открыть на дополнительном дисплее. Вы также можете использовать OPTIONS -> Assign на панели, чтобы переместить программу обратно на любой дисплей (можно сэкономить время, не перемещая мышь на другой дисплей, чтобы перетаскивать его обратно, особенно если у вас более двух мониторов.
Я просто хотел бы иметь возможность иметь док-станцию на каждом дисплее в любое время. Я предпочитаю боковые доки, и вы не можете мигрировать, что является королевской болью. Я отправил отзыв об этом в Apple, но они просто игнорируют это. Было бы так легко иметь док-станцию на каждом экране всегда, как в строке меню (может быть, даже другойзакрепите для каждого экрана настройки, в которых вы часто используете определенные приложения на определенных экранах), и каждая док-станция на каждом экране открывает приложения на этом «активном» экране. Я не возражаю против того, чтобы кнопка на самом окне тоже имела «Отправить на дисплей». Это проще, чем перетаскивать окна, особенно если они расположены так, что они не расположены рядом (например, я использую диагональ, чтобы случайно не переместить мышь на другой дисплей, и это позволяет мне держать док-станцию включенной). моя левая сторона моего правого монитора, так как мне нравится док-станция слева и значки справа всегда, независимо от положения монитора).
источник