J'ai l'habitude de me connecter à des projecteurs de salle de conférence ou à de grands écrans dont la résolution varie, de sorte que lorsque je me déplace d'une pièce à l'autre au cours de la journée, mes fenêtres doivent constamment être redimensionnées également. Alors je ressens ta douleur. :-)
Afin d'éviter toute confusion, je souhaite définir quelques termes pour cette réponse:
- L' affichage principal est celui avec la barre de menus dans l'onglet Arrangement des Préférences Système.
- L' affichage principal est celui sur lequel vous voulez des éléments, qu'il s'agisse ou non de l'affichage principal.
- L' affichage secondaire est celui sans la barre de menu dans l'onglet Arrangement des Préférences Système.
Fondamentalement, le problème est que vous voyez une différence importante entre les écrans principal et principal; Mac OS X ne le fait pas, et cela va vous combattre lorsque vous essayez de maintenir cette distinction en traitant l'écran secondaire comme écran principal.
Sauf s'ils essaient spécifiquement de faire autrement, les applications s'ouvriront toujours sur l'écran principal. C'est par définition l'une des caractéristiques de l'affichage principal. (Il s'agit d'un élément de bas niveau de l'API Quartz, en particulier l' appel CGConfigureDisplayOrigin , donc ce comportement n'est pas configurable si l'application elle-même ne vous permet pas de la configurer.)
Je suggérerais peut-être de poser des questions sur les choses qui le rendent ennuyeux pour vous ("mess avec d'autres choses" comme vous le dites dans votre commentaire) pour ne pas garder votre affichage principal comme affichage principal lorsque vous vous connectez, car ceux-ci peuvent être configurables ; ce comportement ne l'est pas.
J'ai quelques astuces pour vous qui pourraient aider, cependant:
La mise en miroir puis la non-mise en miroir des affichages entraîne le redimensionnement de toutes les fenêtres trop grandes pour tenir sur le plus petit écran et permet à toutes les fenêtres d'accéder à l'affichage principal. Ce n'est pas la solution parfaite, je sais, car vous voulez des choses sur l'affichage secondaire, mais cela peut être une solution de contournement utile lorsqu'il est combiné avec l'astuce suivante, surtout si vous connaissez le raccourci clavier: ⌘-F1. Appuyez dessus, laissez le système basculer en miroir et appuyez à nouveau dessus. Toutes vos fenêtres seront redimensionnées au plus petit affichage et seront sur l'affichage principal.
Un autre outil très utile pour contourner le problème est le BetterTouchTool , qui vous permet de définir les gestes "Centrer la fenêtre sur le moniteur suivant" et "Agrandir la fenêtre sur le moniteur suivant". Je les attribue respectivement à des clics à quatre et à cinq doigts, puis je peux rapidement faire apparaître une fenêtre d'un moniteur à l'autre en écrasant simplement le trackpad. (Si vous n'utilisez pas de trackpad lorsque vous êtes connecté au grand écran, BTT peut également effectuer des gestes avec d'autres périphériques de pointage.)
Ensemble, ces deux astuces ont rendu le travail avec des résolutions en constante évolution pas parfait, mais au moins tolérable. Si je veux afficher toutes mes fenêtres sur l'écran secondaire (je donne une session de formation, disons, et je veux que la barre de menu soit visible pour les étudiants, mais je veux que toutes mes fenêtres non liées à la formation soient sur l'autre écran) , Je fais l'astuce miroir / non-miroir, puis je tape à quatre doigts sur le pavé tactile plusieurs fois jusqu'à ce que les fenêtres soient toutes ouvertes.
Enfin, si vous aimez jouer, vous pouvez jeter un œil à cet Applescript qui déplace toutes les fenêtres au primaire via une méthode différente. Contrairement à la méthode de mise en miroir, qui déplace les fenêtres au niveau primaire comme effet secondaire, celle-ci le fait explicitement, vous pouvez donc la modifier pour déplacer les fenêtres vers votre affichage principal, secondaire préféré. Mais ce n'est pas facile, ce qui peut vous donner une idée de pourquoi tout vous combat contre cet usage. Voici la ligne cruciale de cet Applescript:
set position of window x to {0, 22}
Étant donné que la barre de menus a 22 coordonnées d'affichage (ce qui était auparavant des "pixels" avant l'affichage de Retina) et que les écrans et les fenêtres ont leurs points d'origine en haut à gauche, cette ligne déplace la fenêtre x juste en dessous et affleure à gauche avec la barre de menus. Afin d'adapter ce script afin qu'il déplace à la place toutes les fenêtres dans le coin supérieur gauche de l'affichage secondaire, vous devez déterminer ses coordonnées et les utiliser comme valeur x. Dans l'arrangement que vous montrez dans votre capture d'écran, le "0" sera remplacé par un nombre négatif , puisque vous êtes à gauche de la barre de menu. Il faudrait un peu de tripotage pour bien faire les choses, surtout si vous vouliez que le script fonctionne quel que soit l'arrangement.
C'est tout kludgey, je sais; mais vous devrez accepter les kludges si vous voulez que votre écran principal et vos écrans principaux soient différents. C'est pourquoi je vous recommande fortement d'essayer de résoudre ce qui vous empêche de laisser l'autre affichage être principal plutôt que de mener cette bataille particulière.