autohotkey

Changer d'écran principal et rotation d'écran via raccourcis

by
published on

Windows et le logiciel NVIDIA (#lesbâtards) faisant défauts en ne proposant pas de raccourcis claviers pour mener à bien ces deux actions, je me suis tourné vers AutoHotkey & Multimonitortool pour palier à leurs manquements.

Je précise que j'ai actuellement un dual screen composé de :

  • 1 écran de 32p avec un taux de rafraichissement de 60Hz en QHD
  • 1 écran de 24p avec un taux de rafraichissement de 144Hz en FullHD

Les deux me servent à jouer occasionnellement. Certains jeux se prêtent plus à une utilisation en 144Hz ce qui m'amène à basculer de l'un à l'autre. Pour travailler, il m'arrive aussi de basculer régulièrement le 24p en mode portrait.

J'ai donc téléchargé la v1 de AutoHotkey que j'ai installé.

J'ai ensuite récupéré la v64bits de Multimonitortool que j'ai placé à la racine de mon dossier scripts.

Comme je suis une grosse feignasse, j'ai demandé à DeepSeek de me générer le code qui va bien.

Changer d'écran principal à la volée 

; Raccourci : Ctrl + Alt + Clic droit
^!RButton::
   ; Chemin vers MultiMonitorTool
   toolPath := "C:\Users\USER\Downloads\Scripts\multimonitortool\MultiMonitorTool.exe"

   ; Vérifie le nombre d'écrans
   SysGet, monitorCount, MonitorCount
   if (monitorCount < 2) {
      MsgBox, Un seul écran détecté. Impossible de basculer.
      return
   }

   ; Récupère l'écran principal actuel
   SysGet, currentPrimary, MonitorPrimary
   newPrimary := (currentPrimary = 1) ? 2 : 1

   ; Change l'écran principal via MultiMonitorTool
   Run, %toolPath% /SetPrimary %newPrimary%, , Hide

   ; Notification (optionnelle)
   TrayTip, Écran principal changé, Écran %newPrimary% est maintenant principal, , 1
return

Changer la rotation de l'écran 24p

; Script simple pour changer l'orientation de l'écran \\.\DISPLAY1 avec MultiMonitorTool
; Raccourci : Ctrl+Alt+Clic molette (personnalisable)

; Configuration - À ADAPTER selon votre système
mmtPath := "C:\Users\USER\Downloads\Scripts\multimonitortool\MultiMonitorTool.exe"  ; Chemin vers MultiMonitorTool
targetDisplay := "\\.\DISPLAY1"                  ; Nom de l'écran à modifier
showTooltip := true                         ; Afficher un message de confirmation

; Initialisation
currentRotationIndex := 0
rotations := [0, 90, 270]  ; Cycle de rotations (0° → 90° → 270° → 0°...)

; ==============================================
; RACCOURCI PRINCIPAL : Ctrl+Alt+Clic molette
; ==============================================
^!MButton::
    ; Passer à la rotation suivante
    currentRotationIndex := mod(currentRotationIndex + 1, rotations.Length())
    newRotation := rotations[currentRotationIndex + 1]  ; AHK arrays are 1-based
    
    ; Exécuter la commande de rotation
    Run, %mmtPath% /SetOrientation %targetDisplay% %newRotation%
    
    ; Afficher la confirmation si activé
    if (showTooltip) {
        ToolTip, %targetDisplay% : Orientation %newRotation%°
        SetTimer, RemoveToolTip, 2000
    }
return

; ==============================================
; FONCTION POUR SUPPRIMER LE MESSAGE
; ==============================================
RemoveToolTip:
    SetTimer, RemoveToolTip, Off
    ToolTip
return

J'ai préféré des raccourcis clavier / souris (#COMBO!) moins susceptibles d'entrer en conflit avec ceux de Windows ou d'autres programmes.

Pour finir, j'ai créé des raccourcis des scripts que j'ai balancés dans le dossier DÉMARRAGE de Windows.

Voilà, je suis content et quand je suis content 🤮