Depuis que j’ai la fibre, le Remote Desktop Protocol, c’est ma grande passion. Entre autres parce que ça permet, dans un environnement de non-confiance, comme au travail, d’accéder à son propre environnement de travail avec ses programmes, ses règles… sans les contraintes de l’environnement initial.

Mais au bureau, justement, j’ai toujours été confronté à un problème de gestion d’écrans.

Par défaut, l’affichage ne se fait que sur un seul écran. Ce qui peut être suffisant dans la plupart des cas; mais quand on a l’habitue de travailler sur plusieurs écrans et qu’on en a effectivement plusieurs en face de soi, ça peut vite être gênant.

En allant dans les réglages, on peut activer la gestion du multi-écrans, mais c’est assez binaire : soit on utilise tous les écrans disponibles, soit on en utilise qu’un seul.

Windows RDP

Dans mon cas, au bureau, j’ai trois écrans : les deux principaux et celui de l’ordinateur (portable).

Par rapport à l’organisation physique de ceux-ci, et par soucis d’ergonomie, j’utilise à 98% les deux écrans principaux, et me sert du dernier pour accéder rapidement à des informations qui ne nécessitent pas un grande attention.

Typiquement, c’est sur cet écran que Spotify est ouvert.

En usage RDP, je n’ai pas besoin de ce troisième écran. Au contraire même, compte tenu de l’usage que j’en ai, je souhaite qu’il affiche la même chose, que je sois dans la session RDP ou sur la machine locale. C’est encore plus important avec les bureaux virtuels; faire le raccourci Ctrl + Win + Gauche/Droite dans la session RDP va provoquer un changement de bureau… dans la session, alors que je voulais changer de bureau en local. Avoir la session RDP qui ne prend que deux écrans, ça permet d’attraper le focus local très rapidement avec la souris, pour pouvoir changer de bureau virtuel localement. Inutile alors de minimiser la fenêtre RDP pour retrouver le focus.

C’est bien beau ce programme, mais après avoir trituré tous les réglages proposés par l’outil, impossible d’obtenir le résultat souhaité. C’était toujours binaire : un écran ou tous les écrans.

Un peu désespéré, j’ai tenté diverses recherches sur le web, car forcément, je ne pouvais pas être le seul à avoir ce besoin.

Cette fois, le problème a consisté à trouver les mots clés permettant de remonter les bons résultats. Et c’est avec rdp use two of three monitors que j’ai pu arriver sur ce thread.

Certaines réponses sont loufoques, d’autres pertinentes mais pas forcément claires, alors voici un résumé, en français.

Comment utiliser deux écrans sur trois avec Windows RDP/Connexion bureau à distance

  • On commence par identifier nos écrans. Dans un terminal, exécuter la commande

mstsc /l

Windows RDP

  • S’affiche alors la liste des écrans disponibles, avec le premier numéro correspondant à leur identifiant. Non, ce ne sont pas les mêmes que ceux qui sont affichés dans les paramètres d’affichage. Pour la simple raison qu’ici l’index commence à 0 (on est en mode expert) et non à 1. Parfois on a en plus des indications sur la marque/le modèle.
    Là ce n’est pas le cas, alors pour s’y repérer le plus simple c’est de regarder les coordonnées entre parenthèses. Physiquement, mon écran principal, est celui au centre. Ici, c’est l’écran 1, avec son abscisse à 0. L’écran 0, c’est l’écran de gauche, avec son abscisse à -1920; et enfin l’écran 2 c’est l’écran de droite, avec son abscisse à 1920. Facile.
  • Maintenant que l’on sait sur quels écrans on veut utiliser le RDP, pour moi ça sera 1 et 0 (dans cet ordre, pour bien avoir l’écran central en écran principal), il faut en informer mstsc.
  • Pour cela, on va éditer le fichier de configuration de la connexion. Si on n’a rien fait de spécial, c’est le fichier Default.rdp qui se trouve dans ~user/Documents (attention, c’est un fichier caché, il faut donc configurer l’Explorer Windows pour qu’il l’affiche). Sinon si on a une gestion plus fine des choses, avec des fichiers distincts pour chaque connexion, dans ce cas on est censés savoir où ils se trouvent. Ouvrir ce fichier avec n’importe quel éditeur de texte.
  • Ajouter les deux propriétés suivantes

use multimon:i:1selectedmonitors:s:1,0

Windows RDP

  • Pour use multimon, elle était potentiellement déjà présente, il faut juste s’assurer qu’elle est active (à 1).
  • Pour selectedmonitors, il faut simplement lister, en séparant par une virgule et en commençant par l’écran principal, les identifiants des écrans que l’on souhaite utiliser en RDP
  • Enregistrer le fichier, relancer une session RDP. Ça devrait marcher.

J’ai quand même rencontré deux principaux problèmes :

  • Quand je minimise la fenêtre RDP puis la remet au premier plan, cela ne se fait pas sur les bons écrans… Il suffit de re-minimiser la fenêtre et de l’afficher de nouveau pour que ça revienne dans l’ordre…
  • Il arrive que les identifiants des écrans changent, que ce soit après un redémarrage, une mise à jour, des manipulations des périphériques connectés… Pas trouvé d’autre solution que de refaire la procédure indiquée plus haut.

Ça reste donc globalement du bricolage, tant ça apparaît comme instable et surtout n’est pas géré nativement dans l’IHM de l’outil. Et avec l’arrivée de Windows 365, j’ai du mal à croire que Microsoft se penche sur l’amélioration de mstsc…