
united-stations
Tres intentos del mismo problema. Teclado, ratón y portapapeles entre macOS y Windows.
El problema
MacBook y PC Windows en el mismo escritorio, un solo teclado y ratón. Las soluciones existentes (Synergy, Barrier, InputLeap) tienen en común que son caras, que el setup es frágil, o que se rompen con actualizaciones del OS. Decidí entender el protocolo y construirlo yo — lo que resultó en tres implementaciones con tres estrategias distintas, cada una documentando por qué la anterior no era suficiente.
Los datos
Sin dataset: ingeniería de sistemas. El problema real es latencia de red local, comportamiento de los drivers de input de macOS (IOKit) y Windows (RAWINPUT), y la semántica del portapapeles en cada OS (tipos MIME, formato RTF, imágenes).
Enfoque
- deskflow-plus: fork de Deskflow en C++ para solucionar tres bugs concretos de mi configuración de red con VLANs — la solución más rápida para tener algo funcionando
- united-stations: reimplementación completa en Rust con protocolo de red propio — el objetivo era entender el problema real, no parchear el existente
- cliptomaniac: subproblema aislado solo el portapapeles — en uso mientras los otros dos se desarrollan
- Los tres siguen vivos y documentados: el código de deskflow-plus incluye comentarios sobre los bugs de Deskflow original que justifican cada cambio
Herramientas
Resultado
cliptomaniac está en producción activa. united-stations en desarrollo activo. Lo más valioso del proyecto es la documentación del proceso: por qué deskflow-plus no era la solución correcta aunque funcionara, y qué aprendí sobre el protocolo al reimplementarlo desde cero.
Próximos pasos
united-stations está pendiente de terminar el handling de imágenes en el portapapeles entre OS (el formato varía entre PNG crudo, BMP y tipos MIME compuestos). Una vez resuelto ese bloqueo, el objetivo es tenerlo en producción como reemplazo completo de deskflow-plus.