Coordonnées Double Écran : Comment Fonctionne le Système Multi-Moniteurs
Parametres de votre ecran — detection automatique :
Vous demandez-vous comment fonctionnent les coordonnées double écran ? Dans une configuration multi-écrans, l'écran principal commence toujours à (0, 0) dans le coin supérieur gauche. Un deuxième écran à gauche utilise des coordonnées X négatives (par ex. −1920 à 0) ; un écran au-dessus utilise des Y négatives. L'outil ci-dessus détecte votre disposition exacte et affiche la plage de coordonnées de chaque moniteur en temps réel. Faites défiler pour voir comment Windows, macOS et Linux gèrent les coordonnées multi-écrans différemment.tre les ecrans et elle a saute a une position inattendue. Ce n'est pas de votre faute — c'est le systeme de coordonnees de l'ecran virtuel qui fait son travail.
Nous allons voir comment les coordonnees multi-ecrans fonctionnent reellement sous Windows, macOS et Linux — ou se trouve (0, 0), pourquoi des coordonnees negatives apparaissent et comment atteindre n'importe quel pixel sur n'importe quel moniteur. Les parametres de votre ecran sont detectes ci-dessus.
Ouvrir l'outil gratuit de coordonnees d'ecranL'ecran virtuel : un systeme de coordonnees, plusieurs moniteurs
Tous les systemes d'exploitation majeurs traitent vos moniteurs comme un seul ecran virtuel — un grand rectangle compose de tous vos affichages juxtaposes. Chaque pixel sur chaque moniteur recoit une adresse unique (X, Y) dans cet espace de coordonnees partage.
La disposition double ecran la plus courante — deux moniteurs 1920×1080 cote a cote — ressemble a ca :
Le moniteur principal a toujours son coin superieur gauche a (0, 0). Chaque autre moniteur est positionne relativement a cette origine. L'ecran virtuel s'etend pour couvrir tous les moniteurs, creant un espace de coordonnees continu unique.
Point cle : Il n'y a pas de trous dans l'ecran virtuel. Si vos moniteurs sont physiquement separes par un bezel, le systeme de coordonnees les traite quand meme comme adjacents. Cliquer sur le pixel au bord droit du Moniteur 1 (1919, y) et le pixel au bord gauche du Moniteur 2 (1920, y) deplace votre curseur instantanement a travers la frontiere virtuelle.
Coordonnees negatives : ce qu'elles signifient et quand elles apparaissent
Les coordonnees negatives deroutent beaucoup de monde, parce qu'en cours de maths, les coordonnees sont toujours positives. Mais dans une configuration multi-ecrans, elles sont tout a fait normales — elles signifient simplement qu'un moniteur se trouve a gauche ou au-dessus du (0, 0) du moniteur principal.
Dispositions courantes et leurs plages de coordonnees
| Disposition | Moniteur 1 (Principal) | Moniteur 2 | Plage de l'ecran virtuel |
|---|---|---|---|
| Cote a cote, M2 a droite | (0,0) a (1919,1079) | (1920,0) a (3839,1079) | X : 0 a 3839 |
| Cote a cote, M2 a gauche | (0,0) a (1919,1079) | (-1920,0) a (-1,1079) | X : -1920 a 1919 |
| Empiles, M2 au-dessus | (0,0) a (1919,1079) | (0,-1080) a (1919,-1) | Y : -1080 a 1079 |
| Empiles, M2 en dessous | (0,0) a (1919,1079) | (0,1080) a (1919,2159) | Y : 0 a 2159 |
| Diagonale, M2 en haut a gauche | (0,0) a (1919,1079) | (-1920,-1080) a (-1,-1) | X : -1920 a 1919, Y : -1080 a 1079 |
Vous reglez l'arrangement physique dans les parametres d'affichage de votre systeme (Windows : Parametres → Systeme → Affichage ; macOS : Reglages Systeme → Moniteurs → Disposition). Le systeme de coordonnees suit cet arrangement — faites glisser un moniteur a gauche du principal dans les reglages, et ses coordonnees deviennent negatives.
Pour comprendre comment differentes resolutions affectent l'espace de coordonnees de chaque moniteur individuel, consultez notre guide Comparatif de resolutions d'ecran.
Comment calculer le centre de n'importe quel moniteur
Formule simple, une fois que vous connaissez le decalage du moniteur dans l'ecran virtuel :
centre_x = moniteur_gauche + (moniteur_largeur / 2)
centre_y = moniteur_haut + (moniteur_hauteur / 2)
Exemples concrets pour les configurations double ecran courantes :
| Configuration | Moniteur | Coin superieur gauche | Resolution | Calcul du centre | Coordonnees du centre |
|---|---|---|---|---|---|
| Deux 1080p, M2 a droite | Principal | (0, 0) | 1920×1080 | (0+960, 0+540) | (960, 540) |
| Secondaire | (1920, 0) | 1920×1080 | (1920+960, 0+540) | (2880, 540) | |
| Deux 1080p, M2 a gauche | Principal | (0, 0) | 1920×1080 | (0+960, 0+540) | (960, 540) |
| Secondaire | (-1920, 0) | 1920×1080 | (-1920+960, 0+540) | (-960, 540) | |
| 1080p + 4K, M2 a droite | Principal 1080p | (0, 0) | 1920×1080 | (0+960, 0+540) | (960, 540) |
| Secondaire 4K | (1920, 0) | 3840×2160 | (1920+1920, 0+1080) | (3840, 1080) |
La mise a l'echelle DPI change ces valeurs. Les calculs ci-dessus supposent que tous les moniteurs sont a 100 % de mise a l'echelle. Si votre moniteur 4K utilise 150 % de mise a l'echelle, Windows signale sa taille logique comme 2560×1440 — son centre devient (1920 + 1280, 0 + 720) = (3200, 720), pas (3840, 1080). Verifiez toujours si votre outil renvoie des coordonnees physiques ou logiques. Consultez notre guide Mise a l'echelle DPI et coordonnees pour l'explication complete.
Pour en savoir plus sur la recherche des centres d'ecran, y compris un outil interactif qui detecte automatiquement le centre de votre moniteur, consultez notre outil Trouver le centre d'ecran.
Windows vs macOS vs Linux : differences de systeme de coordonnees
| Fonctionnalite | Windows | macOS | Linux (X11) | Linux (Wayland) |
|---|---|---|---|---|
| Origine (0,0) | Moniteur principal, coin superieur gauche | Moniteur principal, coin superieur gauche (sous la barre de menus) | Moniteur principal, coin superieur gauche | Depend du compositeur |
| Coordonnees negatives | Pris en charge | Pris en charge | Pris en charge | Variable |
| Ecran virtuel | Espace continu unique | Espace continu unique | Ecran XRandR unique | Coordonnees par sortie |
| DPI par moniteur | Pris en charge (Win 10+) | Pris en charge (mise a l'echelle Retina) | Limite (Xft.dpi par ecran) | Pris en charge (mise a l'echelle fractionnelle) |
| API pour infos moniteur | EnumDisplayMonitors | CGDisplay / NSScreen | XRandR | wlr-output-management |
Comportement specifique a Windows
Sous Windows, le moniteur principal a toujours (0, 0) dans son coin superieur gauche, quelle que soit la facon dont vous arrangez vos moniteurs dans les parametres d'affichage. Si vous deplacez le moniteur principal a droite, l'ecran virtuel se decalle — le moniteur secondaire se retrouve alors avec des coordonnees negatives. Le moniteur principal garde toujours (0, 0).
Comportement specifique a macOS
macOS utilise un modele d'ecran virtuel similaire, mais la barre de menus joue un role special. Le « moniteur principal » (celui avec la barre de menus) determine ou se situe (0, 0). Vous pouvez changer de moniteur principal dans Reglages Systeme → Moniteurs. macOS a deux conventions de coordonnees differentes : NSScreen (AppKit) utilise un systeme de coordonnees de bas en haut herite de PostScript ou Y=0 se trouve en bas de l'affichage principal, tandis que CGDisplay (Core Graphics) utilise le systeme plus courant de haut en bas ou Y=0 est en haut a gauche. C'est important pour l'ecriture de scripts d'automatisation — verifiez quelle API votre outil utilise.
Comportement specifique a Linux
Sur X11, tous les moniteurs font partie d'un seul ecran X gere par XRandR. Le systeme de coordonnees fonctionne de maniere similaire a Windows. Sur Wayland, chaque sortie peut avoir son propre espace de coordonnees, et le compositeur est responsable de la gestion de l'ecran virtuel. C'est pourquoi certains utilisateurs Linux rapportent qu'« il n'y a pas de coordonnees negatives » — cela depend du compositeur.
Pour comprendre comment la mise a l'echelle DPI ajoute une couche de complexite supplementaire aux coordonnees multi-ecrans, consultez notre guide Mise a l'echelle DPI et coordonnees.
Configurations a resolutions mixtes : quand les moniteurs ont des tailles differentes
Les configurations a resolutions mixtes creent des formes d'ecran virtuel irregulieres. Si votre principal est en 1920×1080 et votre secondaire en 2560×1440 place a droite, l'ecran virtuel n'est pas un rectangle ordinaire — il y a un « decrochement » ou le moniteur le plus haut s'etend au-dela du plus court :
La hauteur de l'ecran virtuel est determinee par le moniteur le plus haut (1440 dans ce cas). Le moniteur principal n'occupe que les 1080 pixels superieurs de la hauteur de l'ecran virtuel. Les coordonnees de (0, 1080) a (1919, 1439) font partie de l'ecran virtuel mais ne correspondent a aucun pixel physique sur le moniteur principal. En utilisation normale, le systeme empeche votre curseur d'entrer dans cette zone morte — il glisse le long du bord inferieur du moniteur principal. Cependant, si un script d'automatisation envoie un evenement de clic a l'une de ces coordonnees, le systeme peut le rediriger vers le moniteur secondaire a une position proportionnellement equivalente, ou le clic peut simplement se perdre.
Piege d'automatisation : Si vous calculez le « centre de l'ecran virtuel » comme (largeur_virtuelle/2, hauteur_virtuelle/2), vous risquez d'obtenir des coordonnees qui tombent entre les moniteurs ou dans la zone morte. Calculez toujours les centres par moniteur en utilisant le decalage et la resolution propres a chaque moniteur.
Automatisation multi-ecrans : obtenir les bonnes coordonnees
Code Python pour enumerer les moniteurs et trouver leurs centres, avec gestion de la mise a l'echelle DPI :
import ctypes
import sys
# Activer la sensibilisation DPI d'abord
if sys.platform == 'win32':
try:
ctypes.windll.shcore.SetProcessDpiAwareness(2)
except Exception:
ctypes.windll.user32.SetProcessDPIAware()
import pyautogui
# Sous Windows, obtenir les infos des moniteurs via ctypes
def get_monitors_windows():
monitors = []
def callback(hMonitor, hdcMonitor, lprcMonitor, dwData):
rect = lprcMonitor.contents
monitors.append({
'left': rect.left,
'top': rect.top,
'right': rect.right,
'bottom': rect.bottom,
'width': rect.right - rect.left,
'height': rect.bottom - rect.top,
'center_x': rect.left + (rect.right - rect.left) // 2,
'center_y': rect.top + (rect.bottom - rect.top) // 2,
})
return True
# ... appel EnumDisplayMonitors (voir le script complet)
return monitors
# Methode rapide : deplacer la souris et verifier la position
import pyautogui
x, y = pyautogui.position()
print(f"Position actuelle : ({x}, {y})")
# Des valeurs negatives = vous etes sur un moniteur a gauche/au-dessus du principal
Pour la configuration complete PyAutoGUI sensible au DPI avec les correctifs de region de capture, consultez notre guide Coordonnees PyAutoGUI.
Questions frequentes
Pourquoi mon curseur saute-t-il en passant d'un moniteur a l'autre ?
Cela arrive generalement quand les moniteurs ne sont pas alignes dans vos parametres d'affichage. Si un moniteur est positionne legerement plus haut que l'autre dans la disposition, il y a un « decrochement » dans l'ecran virtuel. Le curseur ne peut traverser qu'au niveau des bords alignes. Corrigez cela en ajustant les positions des moniteurs dans les parametres d'affichage de votre systeme pour que les bords correspondent a l'endroit ou vous voulez traverser.
Puis-je avoir un espace entre les moniteurs dans le systeme de coordonnees ?
Pas dans le modele standard d'ecran virtuel. Meme si vous espacez physiquement vos moniteurs, le systeme les traite comme adjacents dans le systeme de coordonnees. Cependant, vous pouvez decaler les moniteurs verticalement dans les parametres d'affichage, creant des « zones mortes » dans l'ecran virtuel qui ne correspondent a aucun affichage physique.
Comment trouver la disposition de mes moniteurs par programme ?
Sous Windows, utilisez EnumDisplayMonitors via ctypes. Sur macOS, utilisez NSScreen.screens. Sur Linux/X11, utilisez xrandr --query. Chacun renvoie la position et la taille de chaque moniteur dans le systeme de coordonnees de l'ecran virtuel. Ou utilisez notre outil de coordonnees d'ecran pour trouver visuellement les positions en faisant glisser votre navigateur sur chaque moniteur.
Les moniteurs doivent-ils avoir la meme resolution pour que les coordonnees multi-ecrans fonctionnent ?
Non. L'ecran virtuel gere les resolutions mixtes. Mais les resolutions mixtes creent une forme d'ecran virtuel irreguliere, ce qui signifie que certaines plages de coordonnees peuvent ne correspondre a aucun moniteur physique. C'est particulierement important pour l'automatisation — ciblez toujours la plage de coordonnees d'un moniteur specifique plutot que l'ecran virtuel global.
Associe : Coordonnees multi-ecrans ? Notre guide complet couvre les layouts multi-ecrans.