3 puntos por GN⁺ 2024-02-12 | 1 comentarios | Compartir por WhatsApp
  • SimpleKVM es un programa para Windows que permite controlar varias computadoras con un solo conjunto de teclado, mouse y monitor, y es una alternativa para reducir el costo de un KVM de alta resolución y alta tasa de refresco
  • El usuario solo necesita conectar cada computadora al monitor, conectar el teclado y el mouse al USB Switch, y ejecutar SimpleKVM en una de las computadoras
  • El cambio se puede hacer con el botón del USB Switch o con una tecla rápida, y el programa detecta la conexión o desconexión de dispositivos USB o la entrada de la tecla rápida
  • El cambio de entrada del monitor se maneja con comandos DDC/CI, compatibles con muchos monitores, y también soporta configuraciones de múltiples monitores
  • La descarga está disponible en la sección de GitHub releases y por ahora solo se ofrece para Windows

El problema que resuelve SimpleKVM

  • SimpleKVM es un programa para controlar varias computadoras con un solo teclado, mouse y monitor
  • Los KVM comunes suelen ser costosos, especialmente los modelos que soportan alta resolución y alta tasa de refresco
  • SimpleKVM permite crear una configuración similar usando un USB Switch económico, sin tener que gastar cientos de dólares

Configuración necesaria

  • El usuario lo configura en este orden
    • Conecta las computadoras al monitor
    • Conecta el mouse y el teclado al USB Switch
    • Ejecuta SimpleKVM en una de las computadoras
  • Después de eso, es posible cambiar entre computadoras con el USB Switch o una tecla rápida

Cómo funciona

  • El programa detecta cuándo se conecta o desconecta un dispositivo USB
  • La entrada de una tecla rápida también se puede usar como disparador del cambio
  • Al cambiar, envía comandos DDC/CI al monitor para modificar la fuente de entrada
  • DDC/CI es un método compatible con muchos monitores

Múltiples monitores y entorno de ejecución

  • SimpleKVM soporta múltiples monitores
  • Las versiones se pueden descargar en la sección releases
  • Actualmente, la compilación disponible es para Windows

Ejemplos de USB Switch

Configuración de inicio y origen

  • Para ejecutarlo automáticamente al iniciar, haz clic en el botón de configuración y marca Run at Startup
  • SimpleKVM está inspirado en el programa display-switch de haimgel

1 comentarios

 
GN⁺ 2024-02-12
Opiniones de Hacker News
  • Es más o menos un “yo también llegué a la misma conclusión”, pero creo que mi configuración es un poco más compleja, aunque mejor y más barata
    El enfoque de arriba me resulta difícil porque hay que instalarlo en todas las computadoras, y al depender del cambio USB no permite un disparo totalmente remoto
    En cambio, manejo el cambio de entrada de los monitores con comandos DDC, el USB con un KVM USB de 25 dólares de un solo botón, y la entrada del botón con un macropad de AliExpress de 5 a 15 dólares
    Los productos listos como Stream Deck son caros, más de 80 dólares por unos pocos botones, y los macropads baratos pueden programarse con proyectos de GitHub como https://github.com/rOzzy1987/MacroPad en vez del software incluido
    Hago que el botón del KVM USB se presione con un FingerBot de 16 dólares o un Switchbot de 28 dólares, y AHK vigila el atajo de teclado para disparar juntos los comandos DDC y el botón del switch USB
    Hay unos segundos de demora, pero se controla desde un solo lugar y también permite ejecución totalmente remota

    • Parece que todos llegamos a conclusiones parecidas. Intenté automatizarlo solo con un switch USB en Windows y macOS, y tuve bastantes problemas con valores DDC incorrectos, detección de eventos de dispositivos y cosas así: https://nokappa.notion.site/Making-a-software-KVM-using-only...
      Al final era algo inestable, y como otras cosas estaban aún más desordenadas, prácticamente lo abandoné
      El macropad es una buena idea, y ubicar bien el switch USB siempre fue molesto
    • Esta configuración tiene ventajas frente a un switch KVM común y seguro fue un proyecto de hacking entretenido, pero si uno mira solo el precio, en AliExpress se puede comprar un KVM HDMI 4K de 4 puertos con panel de control por 29.25 dólares
      No sé cuánto cuesta el envío a EE. UU., pero el envío a Europa salía 15 dólares
    • Quiero una configuración así, pero mi monitor no soporta suficientes comandos DDC. ¿Algún monitor recomendable?
    • Dijiste que no te gusta que “el enfoque de arriba tenga que instalarse en todas las computadoras”, pero ¿esta solución no termina requiriendo instalar scripts de AHK en todas las computadoras también?
  • Investigando KVM, al final llegué a la misma conclusión: DDC es la solución
    En mi caso son dos Windows con una configuración de dos monitores, y uso NirSoft ControlMyMonitor con CLI y Elgato Stream Deck
    Un KVM común hace que los dos monitores muestren una sola computadora, pero yo quiero mostrar una computadora en el monitor A y otra en el monitor B, e intercambiarlas si hace falta
    Uso un monitor vertical y uno horizontal, y quiero cambiar el mouse y el teclado independientemente de la configuración de monitores
    Ejecuto el software de Stream Deck en cada computadora, y el Stream Deck está conectado al switch USB

    • Me da curiosidad si todo funciona bien, incluso los bindings conectados al Stream Deck
    • ¿DDC es la sigla de qué?
  • Incluso un switch USB simple es bastante caro, y a veces exigía drivers que no funcionaban en Linux
    Así que dibujé rápido una placa de circuito sencilla con un hub USB y un switch, y encargué el ensamblado a fabricantes DIY como JLCPCB o PCBWay
    Fueron 25 euros por cinco unidades de un switch 2 a 1, sin experiencia diseñando circuitos y sin soldar nada, pero funciona perfectamente
    Creo que también encajaría bien con este software, así que quizá lo pruebe

    • En esos switches todo ocurre físicamente, así que no hace falta software, y se pueden comprar en Amazon por unos 20 euros
      Me parece menos caro que hacer uno a medida
    • Estaría bueno que subieras el diseño a algún lugar accesible. Con los KVM, si son baratos a veces no funcionan de formas raras, y si son caros funcionan, pero suelen tener quirks
      Creo que una parte importante debe ser evitar problemas de puesta a tierra y ground loops entre potenciales distintos
    • Es cierto que los precios parecen haber subido un poco en los últimos años. Tal vez haya mercado para un producto hecho por uno mismo
      Es interesante que algunos switches USB no funcionen bien en Linux
      Yo pensaba que, al ser un simple hub USB, no necesitarían drivers aparte, pero los productos con funciones avanzadas como transferencia de archivos entre PCs o compartir mouse, como https://www.aliexpress.com/item/1005006202631772.html, a menudo requieren software y drivers especiales
    • En 2019 compré https://www.amazon.com/gp/product/B01HV1N674 por 13 dólares, y todavía lo uso junto con display-switch, que mencionó el OP
      Es un dispositivo lo más “tonto” posible; según una de las reseñas, si conectas y desconectas demasiadas veces los puertos pueden quedar algo inestables, pero con mis 2 monitores Dell P2419H todavía funciona perfecto
      Elegí este porque todos los cables salen por atrás, y el modelo con control remoto que aparece en la página de GitHub del OP también parece bueno
    • Algunos de los productos que enlazó TA tenían precios bastante razonables
      Probé varios y también investigué mientras buscaba una configuración parecida, pero ninguno requería drivers
  • Uso udev para esto. Cuando aparece el switch USB, envío un comando 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 buen KVM, especialmente los de Level1Tech, mantiene todos los monitores virtualmente conectados todo el tiempo, así que las posiciones de las ventanas permanecen igual al cambiar entre máquinas
    Desde la perspectiva de la PC cliente, los dispositivos USB/DisplayPort nunca desaparecieron, así que tampoco hay demora por volver a conectar dispositivos
    También se podrían conectar muchos periféricos a un dock y cambiar solo el Thunderbolt upstream, pero ese enfoque no funciona bien
    Un KVM mediocre es fácil; un buen KVM es difícil
    No tiene relación con https://www.store.level1techs.com/products/hardware

    • Compré un KVM de Level1Tech, pero no soportaba emulación EDID
      Al cambiar entre una Mac y una máquina Linux (Gnome), la Mac se dormía y Gnome volvía a la configuración de monitor predeterminada, moviendo las posiciones de las ventanas
      Hay KVM DP 1.2 con emulación EDID, pero se pierden las ventajas de DP 1.4
      También aparece en el foro de FAQ: https://forum.level1techs.com/t/official-l1techs-kvm-faq-ult...
    • La mayoría de los monitores Dell recientes tienen KVM y hub integrados
      Usarlos con periféricos inalámbricos que usan receptor USB permite una configuración sin cables, y en una laptop basta con conectar un solo cable para que todo quede conectado
    • Compré un producto de Level1Tech el año pasado y fue muy caro, pero personalmente valió la pena
      Cambio varias veces al día entre la PC de trabajo y la PC personal, y hasta ahora funciona perfecto con dos máquinas Linux y dos monitores, uno 4K a 60 Hz y otro 2K a 144 Hz
      Tengo conectados audio USB, micrófono, cámara 4K, impresora, teclado y mouse
    • El bug de que no se mantengan las posiciones de las ventanas solo ocurre con gestores de ventanas mediocres
      Un gestor de ventanas decente es lo bastante inteligente como para devolver las ventanas a su posición original cuando el monitor regresa
    • Estaba usando muy bien un KVM genérico que encontré en Amazon https://www.amazon.com/gp/product/B088WGKFZH, pero parece que ahora está agotado, una lástima
      Nunca falló al cambiar de fuente, y la demora de la que hablaban otros era solo el proceso de handshake HDMI del propio monitor
      También tenía un TESmart mucho más caro https://www.amazon.com/gp/product/B08N494N7X, pero no pude usarlo por problemas raros de compatibilidad con un dock Thunderbolt https://www.amazon.com/gp/product/B08HR3T837 y una MBP
      Incluso consulté al soporte, pero nunca lograron descubrir la causa
  • Algo a tener en cuenta con este tipo de herramientas es que, en DisplayPort, normalmente solo se permiten comandos para la entrada activa
    Una vez que cambias a otra entrada, no puedes volver salvo que ejecutes el comando desde la otra computadora, lo cual es molesto
    En cambio, HDMI normalmente permite comandos DDC incluso en puertos que no son la entrada activa
    No sé si necesariamente debe ser así, pero en todas las pantallas que he probado fue así

  • Justo es el proyecto que necesitaba. Me pregunto si también sería posible cambiar solo un dock Thunderbolt
    Por ejemplo, tener cuatro computadoras con soporte Thunderbolt y cambiar solo un USB-C entre ellas
    No lo he probado por temor a afectar el hardware, y al buscar KVM Thunderbolt inspirado por este artículo encontré cosas como https://sabrent.com/products/sb-tb4k y https://www.reddit.com/r/Thunderbolt/comments/11gos6n/kvm_sw...

    • Mejor no esperaría que eso funcione. Thunderbolt solo parece USB-C por fuera; es mejor verlo como PCIe que casualmente tiene forma de conector USB
    • Parece muy probable que haya problemas. Los docks Thunderbolt que tengo tienen algo parecido a un tiempo de arranque cada vez que se encienden o se cambian
      Si puedes tolerar la demora, tal vez funcione
    • Thunderbolt probablemente tenga requisitos muy específicos, así que es muy posible que el switch también sea caro
  • En resumen, cada computadora debe conectar su propio cable HDMI a cada entrada del monitor
    No es un KVM real como el que muchos imaginan, sino una forma de evitar presionar el botón de selección de entrada del monitor
    Al menos una máquina debe estar encendida y ejecutar Windows, aunque probablemente alcance con que solo una lo haga

    • Basta con que una computadora ejecute Windows y corra el programa
      Cuando detecta que se insertó un dispositivo USB, cambia la entrada del monitor a la computadora Windows; cuando detecta que se quitó el dispositivo USB, cambia a la computadora Linux
    • En Linux se puede cambiar la entrada con ddcutil, así que debería ser fácil hacer algo similar
      Ya uso algo parecido: al presionar un atajo, se ejecuta un script que cambia la rotación del monitor con xrandr
  • Hasta que volví a usar una sola computadora, estuve conectando y desconectando cables manualmente, luego usé el switch USB de Ugreen que aparece en el README y al final me quedé con un monitor con KVM integrado, que fue lo mejor
    El problema es cuando quieres usar el mismo monitor para trabajo y juegos
    Los switches KVM 4K o de alta tasa de refresco son carísimos y suelen ser poco confiables, así que normalmente terminas usando un switch USB y cambiando la entrada del monitor manualmente
    Este software reduce la necesidad de presionar el botón de “cambiar fuente de entrada”, pero parece ser solo para Windows; por lo tanto, si ambas máquinas no son Windows, solo se puede cambiar en una dirección y al volver hace falta cambiar manualmente
    Un monitor apto para gaming, con alto DPI, alta tasa de refresco y KVM integrado es el Gigabyte M28U
    Con un solo botón cambia la fuente de entrada junto con los periféricos USB, y funciona bastante bien
    También está el M32U, pero tiene menor DPI

    • Si solo tienes dos computadoras, basta con ejecutar SimpleKVM en una sola
      Porque puede detectar que se quitó el dispositivo USB, es decir, que se pasó a la otra computadora, y que se insertó, es decir, que se volvió a esta computadora
    • Me pregunto si las otras computadoras a las que se cambia desde el monitor detectan que desapareció la pantalla
    • El Gigabyte M27U tiene un panel mejor y, gracias a su mayor DPI, se ve mucho mejor también en macOS
  • Yo también hice algo parecido por mi cuenta y lo hice funcionar sin switch USB ni otro hardware
    A los monitores HDMI/USB-C les envío comandos DDC, y al teclado y mouse Logi MX les envío bytecode HID++
    El código está demasiado desordenado como para compartirlo, pero quien quiera hacerlo por su cuenta puede estructurarlo enviando secuencias de bytes para cambiar a cada host en un Logi Bolt Receiver, Logitech Unified Receiver, MX Keys Mini Bluetooth y MX Anywhere 3 Bluetooth

    • ¿Dónde sería bueno mirar para investigar más sobre esto? También me da curiosidad si esas secuencias son distintas según el dispositivo
      Mi configuración actual tiene dos monitores Dell U2415 y una desktop Linux x86_64, y uso un mouse vertical Logi compatible tanto con Bluetooth como con dongle, además de un teclado ATK (A.JAZZ)
      Quiero compartir teclado/monitor/mouse con la Bluetooth de una Raspberry Pi 5 y sus dos puertos micro-HDMI de forma puramente por software, y no quiero gastar mucho dinero en un KVM de hardware