- Outil permettant de basculer la source d’entrée d’un moniteur (DisplayPort, HDMI, USB-C, etc.) en ligne de commande via le protocole DDC/CI, avec prise en charge de Windows/macOS/Linux
- Possibilité de spécifier directement la source d’entrée en ajoutant
=source_d’entréeaprès le nom ou l’indexmonitor-input Dell=dp1→ définit tous les moniteurs dont le nom contient « Dell » sur DisplayPort1monitor-input 0=usbc1→ définit le premier moniteur sur USB-C1
- Exécuté sans argument, affiche la liste de tous les moniteurs connectés, avec pour chaque entrée les champs nom/source d’entrée Input Source actuelle/Backend
- Possibilité de rechercher/consulter un moniteur précis par une partie de son nom ou par index (nombre)
monitor-input Dellliste tous les moniteurs dont le nom contient « Dell » ;monitor-input 2consulte le moniteur d’index 2
- Prend aussi en charge les sources d’entrée spécifiques au fournisseur (vendor-specific) non standard en indiquant un nombre comme source d’entrée
monitor-input U2723=15 P3223=17
- Prise en charge d’une fonction toggle/cycle permettant d’enregistrer deux sources ou plus séparées par des virgules (
,) et de basculer séquentiellement selon l’état actuelP3223=hdmi1,usbc2→ bascule entre HDMI1 et USBC2 ; il est aussi possible de faire tourner 3 sources ou plus, commehdmi1,usbc2,dp1
- Fonction de toggle multi-moniteurs : lors du basculement simultané de plusieurs moniteurs, conserve la cohérence des sources d’entrée en alignant les autres sur la source d’entrée actuelle du premier moniteur
- Avec
monitor-input U2723=dp1,usbc2 P3223=hdmi1,usbc2, si la source d’entrée du premier moniteurU2723estDisplayPort1, elle est changée enUsbC2 - Si le premier moniteur passe à la deuxième source de la liste, les moniteurs suivants passent eux aussi à leur deuxième source respective (par ex.
P3223passe àUsbC2)
- Avec
- Sous Windows, fournit avec l’option
-F winappune version sous-système (monitor-inputw.exe) qui n’ouvre pas de fenêtre console ; les erreurs sont affichées sous forme de notifications toast - En plus de l’exécution en ligne de commande, est aussi exposé sous forme de bibliothèque (as library), appelable directement depuis d’autres codes Rust
8 commentaires
J’utilise un Mac Mini et un ordinateur portable Windows avec deux moniteurs DELL.
Le Dell 1 est connecté uniquement au Mac Mini,
et le Dell 2 est connecté à la fois au Mac Mini et au portable Windows.
J’ai installé Dell Display and Peripheral Manager sous Windows et configuré un raccourci clavier (Ctrl + Espace), ce qui me permet, chaque fois que nécessaire, de basculer l’affichage du Dell 2 entre le Mac et Windows.
L’outil présenté a l’air utile lui aussi ; je vais essayer de le mettre en place prochainement !
J’utilise un seul moniteur en passant de Windows à Mac et inversement.
Comme le moniteur DELL U4025QW n’a pas de touche directe pour changer de source d’entrée et qu’il faut aller la chercher dans le menu, je me sers de cet outil pour en faire un script.
Dans mon cas, Windows est branché sur dp1, et le Mac sur usbc1.
Sur Mac, j’ajoute donc
alias mon='monitor-input 0=dp1'dans.zshrc.Sur Windows, j’ouvre
notepad $PROFILEet j’ajoute la fonction suivante :function mon { monitor-input 0=usbc1 }Comme ça, il suffit de taper mon dans le shell Windows ou Mac pour basculer l’affichage.
Je l’utilise avec beaucoup de satisfaction, alors je voulais le présenter.
Oh, je ne savais pas que c’était possible. Merci pour l’astuce !
Waouh, vous avez exactement la même configuration que moi. J’en avais assez d’appuyer à chaque fois sur le bouton physique ; je vais bien m’en servir…
J’ai un seul moniteur, un seul clavier et une seule souris, mais trois appareils à connecter. J’utilise donc un Raspberry Pi avec un dongle branché dessus, et j’ai ajouté un ESP32 aux autres appareils pour passer par le WiFi. J’ai pas mal galéré pour faire en sorte que le moniteur bascule en même temps que les entrées clavier/souris ; si j’avais connu cet outil plus tôt, ça aurait peut-être été plus simple. Merci pour ce bon article.
Chez moi, ça ne marche pas sur Ubuntu 24.04... snif..
J'ai vu qu'il fallait installer
libudev, mais même en le faisant, ça ne marche pas ?$ sudo apt install libudev-dev
Le paquet libudev-dev est déjà dans sa version la plus récente (255.4-1ubuntu8.16).
$ sudo apt install librust-udev-dev
Le paquet librust-udev-dev est déjà dans sa version la plus récente (0.8.0-1).
$ monitor-input
Error: No display monitors found for "".
Oui, j’ai bien deux connexions, DP et HDMI, mais il ne les détecte pas.
Je n’avais pas envie de creuser davantage, donc j’ai juste conclu que ça ne marchait pas.