Demasiados cacharros

desktop-clutter

Esto puede resultar útil si tienes que trabajar con varios ordenadores a la vez y te molesta un poco -igual que a mí- el exceso de trastos en la mesa.

La aproximación “hardware” al problema (KVM = Keyboard, Video & Mouse, ver wikipedia) existe, pero vuelve a sobrecargar el entorno con un buen número de cables que van del concentrador a cada uno de los ordenadores.

Por suerte, existe una solución basada en “software” que permite compartir un teclado y un ratón. Podrás usarlos simultáneamente con varios equipos, siempre que “se vean” a través de la red. Synergy, ver wikipedia, me permite despejar la mesa con poco esfuerzo y poco desembolso (o ninguno si te lo montas bien…)

En este ejemplo configuraremos dos PCs, un ubuntu a la izquierda de la mesa y un windows a la derecha. El ubuntu tiene físicamente conectados los dispositivos, teclado y ratón. En este caso también tiene dos pantallas, pero a los efectos funcionan como un solo escritorio. Creamos un fichero de configuración para el servidor en esta máquina. Recuerde cambiar las direcciones IP y los nombres del ejemplo por los suyos:

$ cat ~/.synergys.conf

# my synergy configuration file
#
# 192.168.1.99 ubuntuserver
# 192.168.1.87 windowsclient
#

section: screens
  ubuntuserver:
  windowsclient:
    altgr = alt
end

section: links
  ubuntuserver:
    right = windowsclient

  windowsclient:
    left = ubuntuserver
end

section: aliases
  ubuntuserver:
    192.168.1.99
  windowsclient:
    192.168.1.87
end

section: options
  screenSaverSync = false
end

A la derecha está el segundo PC, que va a funcionar como cliente. Lamentablemente (cosas de las empresas) se trata de un Windows. Descargamos Synergy “free beer” para Windows (desde esta página) o la versión de pago (desde esta otra) si creemos que merece la pena hacer una contribución económica al proyecto. En el momento de escribir esta página, el enlace gratis entrega la versión 1.4 para Windows. El de los diez dólares, por el contrario, nos lleva a la 1.8. La instalación y configuración son bastante intuitivas, así que no abundaremos mucho en ellas. Asegúrese de que lo configura como cliente y ponga en “server ip” la dirección del servidor.

Para probar, ejecutamos en “foreground” la parte del servidor ubuntu:

$ /usr/bin/synergys -f –no-tray –debug INFO –name ubuntuserver -c ~/.synergys.conf –address :24800

Comprobamos que funciona correctamente el servidor Synergy, detenemos la prueba (Control-C) y activamos una sesión dbus de usuario. Para ello creamos los ficheros de configuración dbus.socket y dbus.service de abajo en /etc/systemd/user:

$ cat /etc/systemd/user/dbus.service
[Unit]
Description=D-Bus Message Bus
Requires=dbus.socket

[Service]
ExecStart=/usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
ExecReload=/usr/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig

$ cat /etc/systemd/user/dbus.socket 
[Unit]
Description=D-Bus Message Bus Socket
Before=sockets.target

[Socket]
ListenStream=/run/user/%U/dbus/user_bus_socket

[Install]
WantedBy=default.target

Activamos el socket:

$ sudo systemctl --global enable dbus.socket

Comprobamos que está activa la sesión dbus de usuario. Igual necesitamos reiniciar. Ojo, hemos supuesto que su usuario tiene el id 1000. Modifique a su conveniencia:

$ sudo systemctl status user@1000

Ahora necesitamos un directorio para “units” del usuario. Tenemos que crearlo si no existe:

$ mkdir -p ~/.config/systemd/user

Dentro de ese directorio se crea la “unit” para que systemd pueda iniciar y parar el servidor synergy:

$ cat synergys.service 
[Unit]
Description=Synergy Server
After=display-manager.service

[Service]
Environment=DISPLAY=:1
ExecStart=/usr/bin/synergys -f -d INFO -n ubuntuserver -c /home/%U/.synergys.conf
Restart=on-failure

[Install]

Comprobamos que es posible iniciar y parar synergy usando esta unit con “start” y “stop”. El estado se revisa con “status”:

$ systemctl --user status synergys

Ahora necesitamos un “punto desktop” para arrancar solamente cuando iniciemos la sesión gráfica. Nuevamente, creamos el directorio “autostart” si no existe:

$ cat~/.config/autostart/synergys.desktop 
[Desktop Entry]
Name=Synergys
GenericName=Software KVM
Comment=Share your keyboard and mouse over a network
Exec=systemctl --user start synergys.service
Terminal=false
Type=Application
Icon=/usr/share/icons/synergy.ico
Categories=Utility
StartupNotify=true
X-GNOME-Autostart-enabled=true

Una molesta limitación del Windows impide llegar al botón “aceptar” cuando se “elevan” los privilegios para instalar o ejecutar algo como administrador. Parece ser que se arregla desactivando una cosa que se llama UAC. No he perdido mucho tiempo en ello porque mi Windows está en un portátil. Puedo llegar al touchpad sin problemas para teclear un “enter” en esa pantalla.

Créditos: Todo esto está inspirado en este post.

 

 

 

Anuncios

Un comentario en “Demasiados cacharros

  1. EXTRA BALL: Añadido fantástico al fichero ~/.synergys.conf. En la sección “screens”, debajo del nombre de la máquina windows, añade la línea “altgr = alt” para que el teclado funcione correctamente al teclear caracteres “raros” como arroba, barra invertida, barra vertical, etc.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s