3 points par GN⁺ 2024-02-12 | 1 commentaires | Partager sur WhatsApp
  • SimpleKVM est un programme Windows qui permet de contrôler plusieurs ordinateurs avec un seul ensemble clavier, souris et moniteur, et constitue une alternative pour réduire le coût des KVM haute résolution et à haut taux de rafraîchissement
  • L’utilisateur connecte chaque ordinateur au moniteur, branche le clavier et la souris sur un switch USB, puis lance SimpleKVM sur l’un des ordinateurs
  • Le basculement peut se faire via le bouton du switch USB ou par raccourci clavier, le programme détectant la connexion/déconnexion des périphériques USB ou l’entrée du raccourci clavier
  • Le changement d’entrée du moniteur est géré via des commandes DDC/CI prises en charge par de nombreux moniteurs, avec prise en charge des configurations multi‑moniteurs
  • Le téléchargement est proposé dans la section GitHub releases, et seule une version Windows est actuellement disponible

Le problème que résout SimpleKVM

  • SimpleKVM est un programme destiné à contrôler plusieurs ordinateurs avec un seul clavier, une seule souris et un seul moniteur
  • Les KVM classiques sont souvent coûteux, surtout les modèles prenant en charge la haute résolution et un haut taux de rafraîchissement
  • SimpleKVM, utilisé avec un switch USB bon marché, permet de créer une configuration similaire sans dépenser des centaines de dollars

Configuration nécessaire

  • L’utilisateur procède dans l’ordre suivant
    • connecter les ordinateurs au moniteur
    • connecter la souris et le clavier au switch USB
    • lancer SimpleKVM sur l’un des ordinateurs
  • Ensuite, il est possible de basculer d’un ordinateur à l’autre via le switch USB ou un raccourci clavier

Fonctionnement

  • Le programme détecte le moment où un périphérique USB est connecté ou déconnecté
  • L’entrée d’un raccourci clavier peut aussi servir de déclencheur de basculement
  • Lors du basculement, il envoie au moniteur des commandes DDC/CI pour changer la source d’entrée
  • Le DDC/CI est pris en charge par de nombreux moniteurs

Multi‑moniteurs et environnement d’exécution

  • SimpleKVM prend en charge le multi‑moniteur
  • Les versions sont disponibles dans la section releases
  • Le build actuellement proposé est pour Windows

Exemples de switchs USB

Démarrage automatique et origine

  • Pour l’exécuter automatiquement au démarrage, cliquez sur le bouton des paramètres puis cochez Run at Startup
  • SimpleKVM s’inspire du programme display-switch de haimgel

1 commentaires

 
GN⁺ 2024-02-12
Avis de Hacker News
  • C’est à peu près « j’en suis arrivé à la même conclusion », mais je pense que ma configuration est un peu plus complexe, tout en étant meilleure et moins chère
    L’approche ci-dessus est difficile pour moi, car elle doit être installée sur tous les ordinateurs, et comme elle dépend de la commutation USB, elle ne permet pas un déclenchement entièrement à distance
    À la place, le changement d’entrée des moniteurs se fait via des commandes DDC, l’USB via un KVM USB à un seul bouton à 25 dollars, et l’appui sur le bouton via un macropad AliExpress à 5–15 dollars
    Les produits finis comme le Stream Deck coûtent cher, plus de 80 dollars pour quelques boutons, tandis que les macropads bon marché peuvent être programmés avec des projets GitHub comme https://github.com/rOzzy1987/MacroPad au lieu du logiciel fourni
    Le bouton du KVM USB est actionné par un FingerBot à 16 dollars ou un SwitchBot à 28 dollars, et AHK surveille un raccourci clavier pour déclencher à la fois les commandes DDC et le bouton du switch USB
    Il y a quelques secondes de délai, mais tout est contrôlé depuis un seul endroit et l’exécution entièrement à distance est aussi possible

    • On dirait que tout le monde arrive à des conclusions similaires. En essayant d’automatiser Windows et macOS avec seulement un switch USB, j’ai rencontré pas mal de problèmes, comme de mauvaises valeurs DDC ou la détection des événements de périphériques : https://nokappa.notion.site/Making-a-software-KVM-using-only...
      Au final, c’était assez instable, et comme d’autres choses étaient encore plus bancales, j’ai presque tout abandonné
      Le macropad est une bonne idée, et trouver le bon emplacement pour le switch USB a toujours été pénible
    • Cette configuration a des avantages par rapport à un KVM classique et a sûrement été un projet de bidouille intéressant, mais si l’on ne regarde que le prix, on peut acheter sur AliExpress un KVM HDMI 4K 4 ports avec pavé de contrôle pour 29,25 dollars
      Je ne connais pas les frais de livraison vers les États-Unis, mais la livraison en Europe coûtait 15 dollars
    • Je voudrais ce genre de configuration, mais mon moniteur ne prend pas en charge suffisamment de commandes DDC. Quelqu’un aurait-il un moniteur à recommander ?
    • Tu dis ne pas aimer le fait que « l’approche ci-dessus doit être installée sur tous les ordinateurs », mais cette solution ne nécessite-t-elle pas elle aussi d’installer un script AHK sur tous les ordinateurs, au final ?
  • En étudiant les KVM, j’en suis finalement arrivé à la même conclusion : DDC était la solution
    Dans mon cas, j’ai deux machines Windows avec deux moniteurs, et j’utilise NirSoft ControlMyMonitor, qui dispose d’une CLI, ainsi qu’un Elgato Stream Deck
    Un KVM classique affiche les deux moniteurs sur un seul ordinateur, mais moi je veux afficher un ordinateur sur le moniteur A et l’autre sur le moniteur B, puis pouvoir les intervertir si besoin
    J’utilise ensemble un moniteur en portrait et un en paysage, et je veux pouvoir basculer la souris et le clavier indépendamment de la configuration des moniteurs
    Le logiciel Stream Deck tourne sur chaque ordinateur, et le Stream Deck est connecté au switch USB

    • Je me demande si tout fonctionne bien, y compris les bindings associés au Stream Deck
    • DDC est l’acronyme de quoi ?
  • Même les simples switchs USB sont assez chers, et il m’est arrivé qu’ils exigent des pilotes qui ne fonctionnaient pas sous Linux
    J’ai donc rapidement dessiné une petite carte avec un hub USB et un switch, puis je l’ai fait fabriquer et assembler par un atelier DIY comme JLCPCB ou PCBWay
    Cinq exemplaires d’un switch 2-vers-1 à un seul commutateur m’ont coûté 25 euros ; je n’avais aucune expérience en conception de circuits et je n’ai rien soudé, mais ça fonctionne parfaitement
    Ça pourrait aussi bien aller avec ce logiciel, donc j’essaierai peut-être

    • Ce genre de switch fait tout physiquement, sans nécessiter de logiciel, et on peut en acheter pour environ 20 euros sur Amazon
      À mon avis, c’est moins cher que du sur mesure
    • Ce serait bien de publier le design quelque part d’accessible. Les KVM bon marché ont tendance à ne pas fonctionner de façons étranges, et les chers fonctionnent, mais avec des quirks
      La mise à la terre et l’évitement des boucles de masse entre des potentiels différents doivent représenter une part assez importante du sujet
    • Il semble vrai que les prix ont un peu augmenté ces dernières années. Il y a peut-être même un marché pour un produit fait maison
      Le fait que certains switchs USB fonctionnent mal sous Linux est intéressant
      Je pensais qu’un simple hub USB n’aurait pas besoin de pilote particulier, mais les produits dotés de fonctions avancées comme le transfert de fichiers entre PC ou le partage de souris, par exemple https://www.aliexpress.com/item/1005006202631772.html, nécessitent souvent un logiciel et des pilotes spécifiques
    • En 2019, j’ai acheté https://www.amazon.com/gp/product/B01HV1N674 pour 13 dollars, et je l’utilise encore aujourd’hui avec display-switch, mentionné par l’OP
      C’est un appareil aussi « bête » que possible ; d’après l’un des avis, le port peut devenir un peu instable si on branche et débranche trop souvent, mais avec mes deux moniteurs Dell P2419H, il fonctionne encore parfaitement
      Je l’ai choisi parce que tous les câbles sont à l’arrière, et le modèle avec télécommande présent sur la page GitHub de l’OP me semble aussi correct
    • Quelques produits liés par TA avaient des prix assez raisonnables
      En cherchant une configuration similaire, j’en ai essayé et étudié plusieurs, mais aucun ne nécessitait de pilote
  • J’utilise udev pour cet usage. Quand le switch USB apparaît, il envoie une commande DDC
    ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="1a40", ENV{ID_MODEL_ID}=="0101", RUN+="/usr/bin/ddcutil --sn ABCDEFGHI setvcp 60 0x0f"

  • Un bon KVM, en particulier les produits Level1Techs, garde virtuellement tous les moniteurs connectés en permanence, si bien que les positions des fenêtres restent inchangées quand on passe d’une machine à l’autre
    Du point de vue du PC client, les périphériques USB/DisplayPort n’ont jamais disparu, donc il n’y a pas non plus de délai lié à une reconnexion des périphériques
    On peut aussi brancher plein de périphériques sur un dock et ne basculer que l’uplink Thunderbolt, mais cette approche ne fonctionne pas correctement
    Un KVM médiocre, c’est facile ; un bon KVM, c’est difficile
    Aucun lien avec https://www.store.level1techs.com/products/hardware

    • J’ai acheté un KVM Level1Techs, mais il ne prenait pas en charge l’émulation EDID
      Quand je passe d’un Mac à une machine Linux (Gnome), le Mac se met en veille, et Gnome revient à la configuration de moniteur par défaut en déplaçant les fenêtres
      Il existe des KVM DP 1.2 avec émulation EDID, mais on perd les avantages du DP 1.4
      C’est aussi indiqué dans le forum de la FAQ : https://forum.level1techs.com/t/official-l1techs-kvm-faq-ult...
    • La plupart des moniteurs Dell récents ont un KVM et un hub intégrés
      Utilisés avec des périphériques sans fil à récepteur USB, ils permettent une configuration sans câbles plutôt agréable, et il suffit de brancher un seul câble au portable pour que tout soit connecté
    • J’ai acheté un produit Level1Techs l’an dernier ; il était très cher, mais personnellement il valait son prix
      Je passe plusieurs fois par jour entre mon PC de travail et mon PC personnel, et avec deux machines Linux en double écran 4K 60 Hz et 2K 144 Hz, il fonctionne parfaitement jusqu’ici
      J’y ai aussi branché l’audio USB, un micro, une caméra 4K, une imprimante, ainsi que clavier et souris
    • Le bug des positions de fenêtres qui ne sont pas conservées n’apparaît qu’avec des gestionnaires de fenêtres médiocres
      Un gestionnaire de fenêtres correct est assez intelligent pour remettre les fenêtres à leur emplacement d’origine quand le moniteur revient
    • J’utilisais très bien un KVM générique trouvé sur Amazon https://www.amazon.com/gp/product/B088WGKFZH, et c’est dommage, car il semble désormais en rupture de stock
      Il n’a jamais raté un changement de source, et les délais dont parlaient d’autres personnes n’étaient que le handshake HDMI du moniteur lui-même
      Il y avait aussi le TESmart, bien plus cher https://www.amazon.com/gp/product/B08N494N7X, mais je n’ai pas pu l’utiliser à cause de problèmes de compatibilité étranges avec un dock Thunderbolt https://www.amazon.com/gp/product/B08HR3T837 et un MBP
      J’ai même contacté le support, mais on n’a jamais réussi à en trouver la cause
  • Avec ce genre d’outil, il faut faire attention au fait qu’en DisplayPort, les commandes ne sont généralement autorisées que pour l’entrée active
    Une fois passé sur une autre entrée, on ne peut pas revenir sauf à exécuter la commande depuis l’autre ordinateur, ce qui est pénible
    À l’inverse, en HDMI, les commandes DDC sont généralement autorisées même sur les ports qui ne sont pas l’entrée active
    Je ne sais pas si c’est obligatoire, mais c’était le cas sur tous les écrans que j’ai utilisés

  • C’est justement le projet qu’il me fallait. Je me demande s’il est aussi possible de ne basculer que le dock Thunderbolt
    Par exemple, avec quatre ordinateurs compatibles Thunderbolt, en ne basculant qu’un seul USB-C entre eux
    Je n’ai pas essayé par crainte d’affecter le matériel, et en cherchant des KVM Thunderbolt inspiré par cet article, j’ai trouvé des choses comme https://sabrent.com/products/sb-tb4k et https://www.reddit.com/r/Thunderbolt/comments/11gos6n/kvm_sw...

    • Mieux vaut ne pas trop compter dessus. Thunderbolt n’a que l’apparence de l’USB-C ; il vaut mieux le voir comme du PCIe qui, par hasard, a la forme d’un connecteur USB
    • Les risques de problèmes semblent élevés. Les docks Thunderbolt que j’ai ont une sorte de temps de démarrage à chaque mise sous tension ou bascule
      Si le délai est acceptable, ça pourrait peut-être fonctionner
    • Thunderbolt a probablement des exigences très spécifiques, et les switches risquent donc aussi d’être chers
  • En résumé, chaque ordinateur doit brancher son propre câble HDMI sur chaque entrée du moniteur
    Ce n’est pas le vrai KVM auquel beaucoup pensent, mais plutôt une façon d’éviter d’appuyer sur le bouton de sélection d’entrée du moniteur
    Au moins une machine doit être allumée et exécuter Windows, mais il semble probable qu’une seule suffise

    • Il suffit d’un seul ordinateur exécutant Windows et faisant tourner le programme
      Lorsqu’il détecte l’insertion d’un périphérique USB, il bascule l’entrée du moniteur vers l’ordinateur Windows ; lorsqu’il détecte le retrait du périphérique USB, il bascule vers l’ordinateur Linux
    • Sous Linux, il est possible de changer d’entrée avec ddcutil, donc il est facile de créer quelque chose de similaire
      J’utilise déjà quelque chose du même genre : quand j’appuie sur un raccourci clavier, un script s’exécute et modifie la rotation du moniteur avec xrandr
  • Avant de revenir à un seul ordinateur, je débranchais et rebranchais les câbles à la main, puis j’ai utilisé le switch USB Ugreen mentionné dans le README, et j’ai fini par adopter un moniteur avec KVM intégré : c’est ce qui m’a le plus convaincu
    Le problème, c’est quand on veut utiliser le même moniteur pour le travail et le jeu
    Les switchs KVM 4K ou à taux de rafraîchissement élevé sont très chers et ont tendance à être peu fiables ; en général, on utilise donc un switch USB et on change manuellement l’entrée du moniteur
    Ce logiciel réduit le besoin d’appuyer sur le bouton de « changement de source d’entrée », mais il semble réservé à Windows ; donc si les deux machines ne sont pas toutes les deux sous Windows, le basculement ne fonctionne que dans un sens, et il faut revenir manuellement
    Parmi les moniteurs adaptés au jeu, avec haute densité de pixels, taux de rafraîchissement élevé et KVM intégré, il y a le Gigabyte M28U
    Un seul bouton permet de changer à la fois la source d’entrée et les périphériques USB, et ça fonctionne plutôt bien
    Il existe aussi le M32U, mais sa densité de pixels est plus faible

    • Si l’on n’a que deux ordinateurs, il suffit d’exécuter SimpleKVM sur une seule machine
      En effet, il peut détecter le retrait du périphérique USB — donc le passage à l’autre ordinateur — ainsi que son insertion, c’est-à-dire le retour sur cet ordinateur
    • Je me demande si les autres ordinateurs vers lesquels on bascule depuis le moniteur détectent la disparition de l’écran
    • Le Gigabyte M27U a une meilleure dalle et, grâce à sa densité de pixels plus élevée, il est nettement plus agréable aussi sous macOS
  • J’ai aussi fabriqué quelque chose de similaire moi-même, en le faisant fonctionner sans switch USB ni autre matériel
    J’envoie des commandes DDC aux moniteurs HDMI/USB-C, et du bytecode HID++ au clavier et à la souris Logi MX
    Le code est trop brouillon pour être partagé, mais pour ceux qui voudraient le faire eux-mêmes, l’idée est d’envoyer, pour chaque hôte, des séquences d’octets permettant de basculer vers celui-ci sur Logi Bolt Receiver, Logitech Unified Receiver, MX Keys Mini Bluetooth et MX Anywhere 3 Bluetooth

    • Où serait-il pertinent de regarder pour en savoir plus ? Je me demande aussi si ces séquences diffèrent selon les appareils
      Ma configuration actuelle comprend deux moniteurs Dell U2415 et un desktop Linux x86_64, avec une souris verticale Logi prenant en charge à la fois le Bluetooth et le dongle, ainsi qu’un clavier ATK (A.JAZZ)
      J’aimerais partager clavier/moniteurs/souris de façon purement logicielle via le Bluetooth et les deux ports micro-HDMI d’un Raspberry Pi 5, sans dépenser une fortune dans un KVM matériel