6 puntos por GN⁺ 2023-12-28 | 1 comentarios | Compartir por WhatsApp
  • DeskHop es un proyecto de hardware open source que, cuando dos computadoras comparten un solo teclado/mouse, permite cambiar rápidamente el destino de entrada mediante atajos de teclado y movimiento del puntero, en lugar de usar un switch USB con botón
  • El dispositivo actúa como USB Host/Device entre el teclado/mouse y las dos computadoras; mantiene ambas conexiones al mismo tiempo y envía el movimiento del mouse y las pulsaciones de teclas a la salida seleccionada
  • Para el cambio con el mouse, modifica el descriptor de reportes HID a coordenadas absolutas y acumula internamente los movimientos relativos, de modo que al cruzar el borde de la pantalla el cursor aparece a la misma altura en la pantalla de la otra computadora
  • Sus principales características son: sin latencia perceptible, sin instalación de software, soporte para Linux/macOS/Windows, componentes por menos de 15€, carcasa impresa en 3D y aislamiento galvánico entre salidas
  • Sus límites también son claros: desde Windows 10 KB5003637 hay un problema con coordenadas absolutas en configuraciones multipantalla; en macOS multipantalla se necesita una solución alternativa experimental; y no se garantiza compatibilidad con teclados avanzados, mouse con muchos botones ni todo tipo de dispositivos

Un switch de hardware para moverse rápidamente entre dos computadoras

  • DeskHop nació de un caso de uso: usar a diario dos computadoras compartiendo un solo teclado/mouse
  • Busca resolver el problema de las cajas USB de conmutación tradicionales, que tardan en cambiar y resultan incómodas porque hay que encontrar el botón
  • El comportamiento deseado es doble
    • Cambiar la salida con un atajo de teclado
    • Cambiar automáticamente al arrastrar el puntero del mouse entre monitores
  • Está diseñado para funcionar incluso entre computadoras con distintos sistemas operativos
  • Se ofrece un User Manual

Funciones principales

  • Es completamente gratis y open source, y cuenta con certificación Open Source Hardware
  • No hay latencia perceptible al cambiar
  • Permite arrastrar el puntero del mouse entre computadoras
  • No requiere instalar software adicional en las computadoras
  • El costo de componentes se presenta como menos de 15€
  • Usa una carcasa snap-fit imprimible en 3D
  • Ofrece aislamiento galvánico completo entre salidas
  • Funciona en Linux, macOS y Windows

Cómo funciona

  • El dispositivo opera como un dispositivo intermediario entre el teclado/mouse y las computadoras
  • Establece y mantiene simultáneamente las conexiones con ambas computadoras
  • Según el estado seleccionado, decide a qué computadora enviar el movimiento del mouse y las pulsaciones de teclas
  • El teclado sigue al mouse, y el mouse también sigue el estado de cambio del teclado
    • Si arrastras el mouse a otro escritorio, también cambia el destino de entrada del teclado

Implementación del cambio con el mouse

  • Para crear la sensación de que el cursor se mueve entre pantallas, el descriptor de reportes HID se cambia al modo de coordenadas absolutas
  • Los reportes reales del mouse siguen llegando como movimientos relativos, y el dispositivo los acumula internamente para gestionar la posición actual
  • Cuando se intenta salir del área de la pantalla actual hacia otro monitor, mantiene la coordenada Y, cambia la coordenada X al borde opuesto y luego cambia la salida
  • Con este método, el cursor aparece a la misma altura en la pantalla de la otra computadora y el cambio se ve natural
  • El cambio real ocurre en el momento en que una flecha deja de moverse y la otra empieza a hacerlo

Cambio de teclado y estado de LED

  • El dispositivo actúa como USB Host y consulta periódicamente el teclado
  • Si encuentra en el reporte HID el atajo previamente configurado, envía los caracteres posteriores a la otra salida
    • Un ejemplo de uso es Ctrl + Caps Lock
  • Los LED del teclado pueden reutilizarse para indicar qué salida se está usando
  • Como recuerda el estado de LED de cada computadora, puede continuar exactamente desde el estado anterior

Build y actualización de firmware

  • Para reducir problemas de incompatibilidad de versiones y rutas, y evitar descargas grandes de SDK, se incluyen versiones mínimas de pico sdk y tinyusb
  • En Debian/Ubuntu se requiere instalar build-essential, cmake, gcc-arm-none-eabi, libnewlib-arm-none-eabi y python3
  • El build básico se realiza con los siguientes comandos
    • cmake -S . -B build
    • cmake --build build
  • También se ofrece un build reproducible con Docker
    • docker-compose -f misc/docker.yml run --rm build_container
  • También pueden usarse pre-built images
    • Desde la versión 0.6 se ofrece una única imagen universal
    • Se usa copiando el archivo .uf2 al dispositivo

Cómo actualizar el firmware

  • Option 1: en firmware 0.6 o superior, se entra a config mode con left ctrl + right shift + c + o
    • El dispositivo del lado donde está conectado el teclado se reinicia y aparece como una unidad USB llamada DESKHOP
    • Al copiar el archivo .uf2, se verifica la imagen, se flashea y se reinicia; luego continúa la actualización de la otra placa
    • Esta unidad no es un almacenamiento USB normal, por lo que no puede usarse para copiar archivos
  • Option 2: usar el ROM bootloader; conectar cada Pico manteniendo presionado el botón de la placa y copiar el .uf2 a la unidad flash que aparece
  • Option 3: en un build de debug compilado con DH_DEBUG_CDC_FLASH=ON, se puede entrar a bootloader mode mediante un comando serial CDC
    • echo -n 'flash' > /dev/tty.usbmodem11104

Funciones adicionales

  • Mouse slowdown

    • Alterna el modo de mouse lento con right CTRL + right ALT
    • Reduce mucho la velocidad del puntero cuando se necesita ajustar la posición con precisión
  • Switch Lock

    • Fija el mouse en la pantalla actual con RIGHT CTRL + K
    • Evita pasar accidentalmente a otra pantalla
  • Lock Both Screens

    • Permite bloquear ambas computadoras al mismo tiempo con RIGHT CTRL + L
    • Es necesario configurar el sistema operativo de cada salida
  • Gaming Mode

    • Se alterna con LEFT CTRL + RIGHT SHIFT + G
    • Queda fijado en la pantalla actual y el mouse se comporta como un mouse estándar de coordenadas relativas
    • Es un modo pensado para manejar problemas con juegos, máquinas virtuales y sistemas operativos aún no soportados que no funcionan bien con el modo de mouse absoluto
  • Screensaver

    • Está desactivado por defecto
    • Al activarlo, después de un tiempo de inactividad el puntero del mouse rebota por la pantalla como una pelota de Pong
    • Se desactiva automáticamente al enviar entrada a esa pantalla

Configuración de hardware

  • El circuito se basa en dos placas Raspberry Pi Pico
    • Las Pico fueron elegidas porque cuestan 4.10€ cada una, son baratas, se pueden soldar a mano y son fáciles de conseguir
  • Las dos Pico se conectan por UART
  • Ambos lados se separan con un aislador digital
    • El ADuM1201 de Analog Devices cuesta alrededor de 3€
    • El ISO7721DR de TI cuesta alrededor de 1.5€ y se prefiere porque es más barato, más rápido y compatible pin a pin
  • El RP2040 no soporta dual USB de forma nativa, pero mediante Pico-PIO-USB implementa USB con PIO para cumplir los roles de USB Host y Device

PCB y carcasa

  • Para facilitar la fabricación DIY, las pistas del PCB se colocan en una sola cara y se minimiza la cantidad de componentes
  • En principio, las líneas diferenciales USB D+/D- deberían tener la misma longitud, pero se diseñaron deliberadamente con una ligera asimetría para compensar la diferencia de longitud de las pistas GPIO en el PCB de la Pico
  • El objetivo de impedancia diferencial es 90Ω, y en la práctica se alcanzan aproximadamente 107Ω
  • El grosor del PCB está diseñado en 1.6mm para ajustarse a la carcasa snap-fit
  • El PCB v1.1 agrega lo siguiente respecto de v1.0
    • Protección ESD TPD4E1U06DBVR
    • Capacitores VBUS para los conectores de teclado/mouse
    • Indicadores de orientación en la serigrafía
    • Agujeros y mejoras de alineación para placas clon con headers ya soldados
    • Resistencias USB de 27Ω
  • La v1.1 es un poco más difícil de soldar a mano por el pequeño IC TVS y las resistencias 0805
  • La carcasa está disponible en case, usa unos 33g de filamento y puede imprimirse en unas horas
  • Se fija con una estructura snap-fit sin tornillos, y la tapa tiene una ranura para abrirla con un destornillador

Costos y componentes

  • El total del BOM del PCB v1.1 se presenta como 11.22€
  • Los componentes principales son los siguientes
    • 2 Raspberry Pi Pico: 8.20€
    • 2 conectores USB-A para PCB: 0.40€
    • 1 TI ISO7721DR: 1.40€
    • 2 capacitores de 100nF: 0.18€
    • 4 resistencias de 27Ω: 0.12€
    • 2 TPD4E1U06DBVR: 0.62€
    • 2 capacitores de 4.7uF: 0.14€
    • 2 headers 2.54mm 1x03: 0.16€
  • Además se requiere fabricar el PCB, y se ofrecen archivos Gerber
  • También se ofrecen archivos STL para impresión 3D

Atajos de uso y configuración

  • En firmware 0.68 o superior, los principales atajos son los siguientes
    • Left Ctrl + Right Shift + C + O: entrar a config mode
    • Right Shift + F12 + D: eliminar configuración de flash
    • Right Shift + F12 + Y: guardar offset de cambio de pantalla
    • Right CTRL + Right ALT: alternar modo de mouse lento
    • Right CTRL + K: bloquear/desbloquear el cambio de escritorio con el mouse
    • Right CTRL + L: bloquear simultáneamente ambas salidas
    • Left CTRL + Right Shift + G: alternar gaming mode
    • Left CTRL + Right Shift + S: activar screensaver
    • Left CTRL + Right Shift + X: desactivar screensaver
    • Left CTRL + Caps Lock: cambiar salida
  • Algunos teclados no envían correctamente la pulsación simultánea de ambas teclas Shift, por lo que se cambiaron los atajos

Modo de configuración web

  • Desde firmware 0.6 se introdujo un configuration mode mejorado
  • Al presionar Left Ctrl + Right Shift + C + O, el dispositivo se reinicia y entra en modo de configuración
  • Aparece una unidad USB llamada DESKHOP que contiene un único archivo config.htm
  • Este archivo debe abrirse en Chromium o Chrome
    • Firefox evita implementar WebHID, por lo que actualmente no está soportado
  • Después de permitir la conexión, se configuran las opciones y, al guardar, se escriben en el dispositivo
  • La razón para usar un archivo local en vez de una página de configuración online es que cargar JavaScript que interactúa con dispositivos de entrada desde una ubicación online arbitraria representa un riesgo potencial de seguridad
  • La página web de configuración usa un método de autodescompresión por límites de almacenamiento, y el código fuente completo está incluido en el repositorio

Diseño de seguridad

  • No hay función de copiar/pegar ni de compartir información entre sistemas
    • Es una limitación intencional para evitar filtraciones de información
  • No hay conexiones entrantes desde las computadoras de salida
    • La excepción son los mensajes estándar de encendido/apagado de LED del teclado, limitados a 1 byte de datos
  • Las computadoras de salida no pueden disparar una actualización de firmware
    • Solo se permite una acción explícita del usuario mediante un atajo especial de teclado
  • No expone endpoints personalizados del teclado/mouse conectado ni transmite información hacia el dispositivo
  • No guarda historial de entrada
  • El dispositivo no genera pulsaciones de teclas arbitrarias
    • Solo se emite lo que el usuario escribe o dispara
  • Las salidas están físicamente separadas y usan aislamiento galvánico con al menos 2kV de tensión de aislamiento
  • Los paquetes entre dispositivos tienen longitud fija, y las opciones de configuración transmitidas se limitan a una lista corta
  • No hay Bluetooth, Wi-Fi, red ni acceso a Internet
  • Las computadoras conectadas no se consideran confiables bajo ninguna circunstancia
  • El modo de configuración se desactiva automáticamente tras un período de inactividad
  • El código se ofrece como open source y sin blobs binarios

FAQ y compatibilidad

  • Puede funcionar solo con dos Pico, sin PCB ni aislador, pero se recomienda usar aislador
  • Incluso con monitores de distintas resoluciones, el movimiento del mouse se procesa en un espacio de coordenadas abstracto y la computadora lo mapea a la pantalla física, por lo que debería funcionar
  • No es un producto a la venta, sino un proyecto personal de hobby no comercial
  • Hay una actualización que indica que en Elecrow se pueden pedir de a una unidad el PCB, el PCB ensamblado o el dispositivo completo
    • Según reportes de usuarios, la placa llega vacía y hay que flashear el firmware manualmente
  • Se dice que los dongles combinados de teclado/mouse, como Logitech Unifying, tienen mejor soporte después de actualizaciones recientes de firmware
  • Los mouse y teclados inalámbricos con receptores inalámbricos separados funcionaron correctamente en una prueba con un mouse inalámbrico Anker
  • Para problemas de build, se puede consultar la Troubleshooting Wiki

Alternativas de software

Límites conocidos y planes

  • Desde Windows 10 KB5003637, el comportamiento de coordenadas absolutas HID se rompió y no se puede usar más de una pantalla en Windows
    • El mouse permanece en la pantalla principal; hay una solución alternativa experimental y se está desarrollando una mejor
  • El código necesita limpieza y refactorización
  • No se probó lo suficiente con una gran variedad de dispositivos, por lo que puede no funcionar de inmediato según el hardware
  • En teclados avanzados con perillas, botones adicionales o sliders, ese hardware adicional podría no funcionar
  • En mouse modernos con muchos botones, algunos botones podrían no funcionar como se espera
  • Para funcionar, ambas computadoras deben estar conectadas y suministrar alimentación USB
    • Esto se debe a que cada placa recibe energía de la computadora a la que está conectada
  • macOS tiene problemas con 2 o más pantallas, y el firmware más reciente ofrece una solución alternativa experimental para ello
  • Las funciones planeadas incluyen mejores soluciones alternativas para multipantalla en Windows/macOS, modo transparente/gaming mode, soporte para más de 2 salidas y mejoras en la UI de configuración
  • También se está trabajando en una versión lite que ofrece funciones básicas con una sola placa Pico W
  • El polling del mouse actualmente puede funcionar a 1000Hz

1 comentarios

 
GN⁺ 2023-12-28
Opiniones de Hacker News
  • Me gusta que pueda detectar los bordes de la pantalla sin software cliente.
    Para que el cursor del mouse pase de forma natural, cambia el descriptor de reporte HID del mouse a coordenadas absolutas y, en la práctica, acumula internamente los reportes del mouse que llegan como movimientos relativos para mantener la posición exacta.
    Así funciona como synergykm / Barrier, sin función de portapapeles ni software cliente.

    • Me gusta especialmente que las computadoras no tengan que estar conectadas por red.
    • Me pregunto si se rompería por completo si el cursor se mueve por algún elemento que no sea el mouse.
      Por ejemplo, scripts de automatización o juegos que fijan el cursor en el centro de la pantalla.
  • En YouTube, incluso sin hardware adicional, se puede avanzar el video cuadro por cuadro con las teclas , y ..

    • Ojalá hubiera una solución también en Android.
      Hacer selecciones finas con un slider en una interfaz táctil es realmente pésimo.
    • No es posible desplazarse entre 30 segundos y 1 cuadro.
    • Creo que los mouse de hoy son muy precisos y funcionan bien; me pregunto qué mouse usan para que tengan que contener la respiración al hacer scroll.
    • mpv usa los mismos atajos.
      No sé quién fue primero, pero los conocí en mpv y, al probarlos por casualidad en YouTube, funcionaron.
  • En Windows se puede usar Mouse Without Borders, desarrollado por Microsoft Garage y ahora incluido en Windows PowerToys.
    Enlaces:
    https://www.microsoft.com/en-us/garage/profiles/mouse-without-borders
    https://github.com/microsoft/PowerToys

    • Barrier es un proyecto open source multiplataforma derivado de Synergy y funciona bastante bien sin hardware adicional.
      Pero ahora veo que el mantenimiento se detuvo, y su sucesor es Input Leap.
      https://github.com/debauchee/barrier
      https://github.com/input-leap/input-leap
    • Lo probé hace tiempo y funcionaba realmente bien.
      En especial, facilitaba arrastrar y soltar archivos entre computadoras para copiarlos.
  • Compré hasta 4 hubs USB para alternar el teclado y el mouse, pero la mayoría de los dispositivos son tan malos que desesperan.
    Hay veces que tengo que desconectar y volver a conectar físicamente el hub varias veces al día, y se pone peor si también conecto una webcam o un micrófono USB.
    Uso Synergy sin problemas, pero necesito un KVM de verdad que pueda manejar correctamente webcam, micrófono y audio, y que permita mover solo el conjunto de dispositivos conectados con un atajo de teclado.
    Los usuarios de KVM claramente no reciben suficiente soporte.

    • La mejor configuración que usé por casualidad en la empresa fue un KVM integrado en un monitor BenQ 4K de 32 pulgadas.
      Cada entrada DisplayPort tiene puertos USB asociados, y el USB-C se encarga de los periféricos, la entrada de video y hasta una salida de energía bastante decente.
      Se cambia con un pequeño switch sobre el escritorio, y el monitor hace que incluso la entrada que no se está mostrando parezca seguir conectada, así que Windows no parpadea mientras reorganiza todo; el cambio es mucho más rápido y fluido.
    • Quiero compartir teclado, mouse y monitor entre una PC y una MacBook, pero no parece existir un KVM donde un lado sea DP+USB y el otro Thunderbolt.
      Parece un caso de uso común, así que es una lástima.
      También podría sacarlo primero mediante un dock, pero la resolución del monitor que uso es alta, así que la mayoría de los docks no dan abasto o solo soportan 30 Hz.
    • Hace poco compré el monitor Dell 6K de 32 pulgadas, que trae integrado un hub Thunderbolt 4 y KVM, y funciona a la perfección.
      La Mac se conecta con un solo cable Thunderbolt 4, y la PC con HDMI 2.1 y USB3 de 10 Gbps como upstream.
      Al monitor conecté Ethernet y teclado/mouse, y cambia al equipo correcto con un atajo o desde el OSD del monitor.
      Con la función PIP también se pueden ver ambos equipos al mismo tiempo.
    • Estoy muy satisfecho con el KVM tesmart dual DP de 4 puertos.
      La limitación es que solo tiene controlador host USB 2, así que es difícil conmutar algunos dispositivos de alta velocidad, como ciertas webcams.
      Si hay que mezclar productos Apple, como a Apple no le gusta MST, en la Mac hay que usar dos cables USB3 físicos para distinguir los dos canales de pantalla.
    • A un KVM USB de ATEN se le puede conectar de todo.
      Le conecto una unidad USB para mover archivos rápido, y en general funciona con dispositivos alimentados por USB.
      Si eliges USB 3+, DP, etc., sale caro, pero también hay modelos baratos que solo conmutan USB.
      Eso sí, tiene la gran desventaja de que algunos mouse y teclados con teclas especiales no funcionan al 100%.
  • Llevo más de 10 años usando Synergy para esto
    Es https://symless.com/synergy, es rápido, cambia al instante incluso por Wi‑Fi y soporta Windows/Mac/Linux

    • Synergy, Barrier e Input Leap son soluciones de software bastante buenas que vienen del mismo ancestro
      Las dos últimas son gratuitas y de código abierto, y Synergy tiene una buena forma de configurar los límites entre dispositivos
      Pero me gustaría que cualquiera de estas soluciones soportara bien las distribuciones de monitores personalizadas
      En mi entorno, los monitores no están en una sola línea y cada monitor puede cambiarse de forma independiente a cada dispositivo, así que sería genial poder definir límites por monitor y por dispositivo, pero no parece existir ni en software ni en hardware
      Hace poco les pregunté a los de Synergy y dijeron que está en el roadmap como una solicitud popular; ojalá salga pronto
    • Si usas VPN distintas en varias computadoras, Synergy no funciona bien, así que compré un dispositivo comercial parecido a este DIY y funciona muy bien
      No hace falta iniciar sesión primero en la computadora, y puedes cambiar al cruzar el borde de la pantalla o con una combinación de teclas
      Los dispositivos USB conectados también se pueden cambiar independientemente del teclado y el mouse
      A estos productos también se les llama boundless, borderless o roaming KM switch
      https://www.cdw.com/product/siig-4-port-roaming-km-switch-wi...
    • También vale la pena mencionar ShareMouse: https://www.sharemouse.com/
      Personalmente me funcionó mucho mejor que Synergy
      Me cambié después de que los desarrolladores de Synergy no respondieran a bugs de hace años y ya no pudiera seguir usándolo
      Ejemplo: https://github.com/symless/synergy-core/issues/5992
      La desventaja es que, si quieres seguir recibiendo actualizaciones después de un año, tienes que hacer una “renovación de mantenimiento”, pero todavía lo uso bien sin haber renovado
    • Hace unos meses el mouse se quedó congelado en la segunda computadora, y simplemente olvidé que estaba usando Synergy, así que tardé unos minutos en arreglarlo
      Al revisar, vi que la configuración había estado funcionando sin problemas durante 4 o 5 años, y está entre el software de pago que más valor me ha dado
    • Se ve bien, pero es una lástima que pongan TLS como una función premium por encima del SKU básico de pago
      La seguridad debería ser básica y gratuita en todo; no es un lujo, es un requisito mínimo
      Aun así, si lo pruebo y me gusta, estoy considerando comprar la licencia premium por la función de copiar y pegar
  • Hay un proyecto que hice inspirado en un proyecto similar, https://github.com/jfedor2/screen-hopper
    Mi versión consta de dos programas
    Uno se ejecuta en el escritorio Linux y escucha eventos de entrada de evdev, el subsistema de entrada de Linux; cuando se presiona una tecla específica, consume todos los eventos y los envía por USB serie a un RPI Pico
    Al presionarla de nuevo, vuelve al modo de escucha manual
    El RPI Pico convierte los eventos evdev de Linux recibidos por serie en eventos USB HID y los envía a otra PC con Windows
    En la práctica, termina siendo un switch KM que cambia al instante entre una PC Linux y una PC con cualquier sistema operativo
    Foto del cableado: https://ibb.co/m0zhzgz
    Usé otro Pico como adaptador USB serie y, como principiante en hardware, fue un gran alivio que solo hicieran falta 2 cables
    Ambos programas tenían menos de 100 líneas, y hay muchos crates de Rust y paquetes de Python para escuchar evdev en Linux
    El lado del Pico también es casi un loop con un gran switch, y hay un crate de Rust para enviar eventos USB HID
    Si usas COBS, puedes enviar por serie sin preocuparte por el framing
    Al final no lo publiqué como open source por un bug de USB serie: después de desconectarse, no se reconectaba correctamente al escritorio Linux
    No sé si era por Linux o por el Pico, y como no desconecto el cable, todavía lo uso sin problemas
    Como juego mucho FPS, omití a propósito la función de coordenadas absolutas, y asigné la tecla de cambio a un botón lateral del mouse para poder cambiar de sistema sin tocar el teclado

    • Es una idea realmente genial
      Recién ayer me enteré del proyecto screen-hopper, y sentí que confirmaba la teoría de que, intentes construir lo que intentes, alguien más inteligente ya lo hizo mejor
      Como no juego nada, las coordenadas absolutas me vienen bien, pero en mi lista de pendientes está hacer que eso sea configurable
    • El bug de USB serie podría ser, de hecho, una razón para publicarlo
      Podrías hacer nerd sniping para que alguien investigue la sutileza que causa el bug
    • Me han sugerido muchas veces que lo publique aunque tenga bugs, y esa lógica tiene sentido
      El código fuente, tal como está, está aquí: https://github.com/null-dev/picokvm
    • Estaría bueno que lo subieras al repositorio con una advertencia de “sin soporte, úsalo bajo tu propia responsabilidad”
    • Creo que a mucha gente le gustaría verlo aunque aún tenga bugs
  • Una de mis grandes molestias era cambiar la entrada del mouse y el teclado entre dos PC con un switch USB 3.0
    Cuando estoy en una reunión de Teams y no tengo mucho que decir, si alguien dice mi nombre o me manda un mensaje, termino manoteando para encontrar el botón y devolver la entrada a la PC donde está Teams
    Había pensado conectar un ESP32 o un Rpi Pico W y algunos optoacopladores a los pines del botón del switch USB, y exponer un endpoint HTTP para alternar la entrada entre los dos equipos con un script de AutoHotkey y un atajo de teclado
    Pero abandoné la idea porque no se me ocurrió cómo determinar cuál entrada está activa actualmente; esta solución me gusta

    • Te convendría mirar headsets compatibles con Teams que tengan botón de silencio
      El headset Logitech que me dieron en el trabajo tiene botones de volumen, colgar y silencio en el cable, así que es mucho más fácil quitar el silencio mientras hago multitarea
  • Synergy maneja bien este caso de uso con software puro
    No es gratis ni de código abierto, pero es relativamente económico
    https://symless.com/synergy

    • Synergy se separó en Barrier[0] antes de volverse de código cerrado, y luego volvió a bifurcarse en input-leap[1]
      Ambos son de código abierto
      [0] https://github.com/debauchee/barrier
      [1] https://github.com/input-leap/input-leap
    • Synergy es open core, y estas partes tienen licencia GPL: https://github.com/symless/synergy-core/#License-1-ov-file
      También hay un fork de código abierto que se separó en la versión 1.9: https://github.com/debauchee/barrier#what-is-it
    • Synergy tiene bugs a los que parece no prestarles atención
      Por ejemplo, al usar un host macOS, en clientes Windows/Linux usa la curva de aceleración de macOS para calcular la posición del cursor, pero no para el movimiento real del cursor
      Por eso, al intentar trabajar en el tercio de la pantalla de Windows más cercano al host, terminas volviendo sin querer
    • Me pregunto si hay alguna recomendación decente para una combinación de Windows y tablet Android
      Todas las soluciones parecen funcionar solo en sistemas operativos de escritorio
    • Dicen: “No hay nada tan molesto como Synergy, pero todos son así”
      Ninguna de estas tecnologías es estable, y Synergy incluso me ha dejado varias veces el teclado conectado completamente congelado, al punto de tener que apagar y encender la computadora para que volviera a responder
  • Realmente impresionante
    Lo siento especialmente como alguien que durante al menos 20 años ha usado una configuración de escritorio con máquinas Linux-Mac-Windows de izquierda a derecha
    Si en los lenguajes de programación existe ser políglota, en hardware existe la configuración multiplataforma
    Por suerte, en los últimos años se ha vuelto más fácil con el aumento de diseños system-on-chip (SoC)
    Mi configuración actual son dos clones de Mac mini con Ryzen SoC de 250 dólares venidos de Shenzhen y una MBP M1
    Es una lástima que el mundo de soluciones KVM open source como Synergy, que antes era sólido, se haya convertido en una pesadilla recursiva de forks, haciendo difícil conseguir un KVM de software open source multiplataforma que funcione gratis
    Ahora terminé usando un switch KVM tradicional, pero tener que presionar un botón me distrae
    Algún día me gustaría volver a intentar algo como esto

  • Si hay alguien que quiera colaborar para comercializar esto, estoy dispuesto a cubrir los costos y encargarme del moldeo por inyección de plástico, marketing, ensamblaje masivo y cualquier otra cosa necesaria
    Mi correo está en el perfil

    • Si lo comercializan, espero que sí o sí solucionen la desventaja de que “para que funcione, ambas computadoras deben estar conectadas y encendidas”
      Para mí es un dealbreaker
    • Ya existen productos comerciales
      Hay que buscar boundless, borderless, roaming KM switch