No es infrecuente encontrarnos con técnicos que necesitan manejar varias computadoras en su escritorio.
Por ejemplo puede que tenga en una instalado un Sistema Operativo Linux para realizar actividades de monitoreo, y un equipo adicional separado para testear una determinada aplicación.
Puede que tenga dos máquinas: una realizar sus actividades personales (banca, correo electrónico, chats, juegos, VPN personal para conectarse a herramientas o sistemas de uso personal, sistema de manejo de claves personal, etc); y en la otra máquina realizar sus actividades laborales (programación, acceso a sistemas confidenciales, conexión a la VPN de la empresa que no es compatible con la VPN personal que tengo en la otra máquina, chat propio de la empresa, sistema de manejo de claves de la empresa, etc), de esta forma tiene aislados las aplicaciones en dos sistemas completamente diferentes.
En fin, puede existir una variedad de razones por las que una persona tenga que manejar varias computadoras. Y se vuelve molesto el tener que mantener en la misma mesa dos teclados y dos mouse (si es que maneja dos computadoras). Tener que mover todo el cuerpo para alcanzar el teclado de la izquierda para responder a un mensaje que le llegó por telegram, volver al teclado de la derecha para seguir programando, regresar al teclado de la izquierda para imprimir una tarea para los hijos, etc.
input-leap
Bueno, es posible usar una herramienta llamada input-leap, la que es un fork de barrier.
Esta herramienta nos permite manejar varias computadoras, con tan solo un mouse y un teclado. Esta herramienta simplemente permite extender el mouse entre las dos computadoras, si mueves el mouse hacia la computadora de la izquierda, el teclado y mouse trabajarán en la computadora de la izquierda. Si mueves el mouse al extremo derecho de la máquina izquierda, este se cambiará a la máquina de la derecha y en ese momento el teclado y mouse trabajarán en la máquina de la derecha.
De esta forma, simplemente desplazamos el mouse hacia un extremo de un monitor, y el mouse “mágicamente” pasará a moverse en el otro monitor y el teclado funcionará en esa máquina.
Imagínate que tengas el siguiente escenario:
Laptop de la izquierda, con un monitor adicional a la izquierda de ella.
Laptop de la derecha, con un monitor adicional a la derecha de ella.
Tienes entonces 4 monitores, los 2 de la laptop de la izquierda y los dos de la laptop de la derecha.
La laptop de la derecha le llamaremos el Servidor, la máster. Esta es la que tiene el teclado y mouse externo en mi ejemplo, y bueno, también seguramente tendrá el teclado y mouse incorporados de la laptop.
La laptop de la izquierda le llamaremos el cliente, la esclava. Esta puede tener su propio teclado y mouse en la laptop, que siempre seguirán funcionando pero solamente para ella, no para la máster.
Configurando input-leap en el servidor
Instalamos el input-leap:
sudo dnf install input-leap
Al arrancarlo, podemos mostrar la ventana principal (Click derecho -> Show). Notar que en mi caso pueden aparecer referencias a barrier que es el nombre anterior. input-leap es compatible con versiones de barrier.
En la pantalla principal vamos a presionar el botón que dice “Configure Server…”
Nos mostrará la siguiente ventana:
Es en esta ventana donde vamos a definir dónde va mi servidor (en mi caso es el que tengo en azul) y dónde va el cliente (el que está a la izq del servidor). Para ello podré arrastrar el iconito de monitor que aparece arriba a la derecha.
El servidor ubicará, reconocerá al cliente por su nombre. En mi caso el cliente se llama “lactoc.local”. Anoten ese nombre que ya lo verán en la próxima sección.
Luego vamos al TAB “Advanced server settings”:
En este TAB podemos hacer varios cambios interesantes. Sobre todo te comento que actualmente hay un bug en el input-leap que el servidor deja de responder repentinamente. Esto encontré que es cuando la opción “Enable clipboard sharing” está activada, por lo que en mi caso siempre deshabilito esa opción.
Clipboard sharing lo que hace es permitir que lo que uno copie en el cliente, pueda ser pegado en el servidor, y viceversa! Es un feature muy bueno, pero incluso hasta por seguridad mejor no tenerlo, para evitar por error pegar algún texto de uno en el otro que no se deba (contraseñas por ejemplo).
Yo le tengo marcada la opción “Switch after waiting” 50ms. En este caso lo que hace es que el mouse no se va a desplazar suave, mágicamente, de un equipo al otro sino que “tropezará” durante 50 milisegundos, antes de cambiarse de equipo. Nada del otro mundo, me da igual tener esa opción desactivada o activada, no cambia el rumbo de mi vida.
Bounce on double tap: No la uso, pero impide que te desplaces a la otra pantalla excepto que golpees con el mouse el borde de la pantalla dos veces seguido. Esto puede ser útil cuando trabajas con ventanas muy al borde, a veces sucede que recuestas el mouse a un borde antes de dar click (que lo pegas al borde), si input-leap ve que llegaste al borde, te pasa automáticamente al otro equipo. Con este “doble golpe” evitas que se pase automáticamente. Yo NO lo uso. Pero es cuestión de gustos.
Una vez guardamos estas configuraciones, podemos ir al menú de la pantalla principal, opción “settings” donde podemos escoger si minimizar la aplicación, si ocultarla al arrancar y/o si quieremos arrancarla al iniciar la sesión gráfica. En mi caso tengo las 3 marcadas. También sugiero cerciorarse que “Enable SSL” esté activado, para que la comunicación viaje cifrada entre un equipo y el otro.
Si tienes el firewal activado en el servidor, es importante que abras el puerto 24800/TCP, de lo contrario el cliente no se podrá conectar a él!
Configurando input-leap en el cliente
Instalamos el input-leap
sudo dnf install input-leap
Al arrancarlo, podemos mostrar la ventana principal de input-leap (noten que en mi caso me sigue saliendo el nombre anterior “barrier”, input-leap es compatible con clientes barrier.
En este caso solamente debemos configurar la IP del servidor (Server IP). En mi caso el servidor que configuramos anteriormente tiene la IP 192.168.1.80. Luego de esto podríamos presionar en el botón de Start, pero no lo hagas todavía, veamos algunas cosas más.
Si deseas mayor seguridad en la comunicación, sugiero que conectes ambas computadoras a través de un cable LAN y en “Server IP” pongas la IP de la LAN del servidor. A veces si comunicamos al cliente y al servidor por WiFi, puedes notar demoras en la comunicación, quizá porque el WiFi está muy lejos, o saturado, etc. De ser este tu caso te sugiero conectar a ambos equipos por la LAN para que no hayan demoras.
Previamente a iniciar (Si ya iniciaste no hay problema, dale en “Stop”), sugiero revisar las opciones del menú, específicamente las de propiedades (Settings):
- Screen name: Es cómo se va a identificar el cliente ante el servidor. Es importante que el servidor sepa cómo se llama el cliente ya que en base a su nombre es que logra ubicarlo en la posición correcta (a la izq, a la derecha, arriba, etc).
- Claro que puedes escoger minimizar la aplicación, minimizarla al arrancar, y arrancar InputLeap al iniciar. Sugiero verificar que la comunicación sea por SSL (Enable SSL).
- No te olvides que el cliente se conectará al puerto 24800/TCP del servidor. Así que cerciórate que en el firewall del servidor tengas abierto el puerto 24800/TCP sino el cliente no se podrá conectar a él.
Otros detalles
input-leap no solamente funciona entre equipos Linux, también funciona con equipos Windows y MacOS. De hecho un equipo puede ser, por ejemplo, Linux y el otro Windows. Yo personalmente no lo ha probado, pero sí es multiplataforma.
Seguramente se pueden conectar más de 2 computadoras. Yo no lo he probado, pero es un buen ejercicio, quizá una a la derecha, otra a la izquierda y una tercera encima de la de la máquina de la derecha. No sé, opciones hay muchas.
Espero hayas disfrutado este post y que me comentes qué tal te fue.