Reenviar entrada de mouse y teclado a sesión X

13

Estoy accediendo a mi Pi a través de SSH.

Mi red es demasiado lenta para enviar el escritorio de Pi nuevamente a mi computadora portátil, por lo que tengo un monitor conectado a mi Pi. Cuando paso startxpor Putty, veo el escritorio en mi Pi. Todo es bueno.

Sin embargo, no puedo hacer nada con este escritorio, ya que todo lo que tengo es el mouse y el teclado de mi computadora portátil.

¿Cómo puedo reenviar la entrada del mouse y el teclado de mi computadora portátil al escritorio de mi Pi?

ACarter
fuente
Si de todos modos está conectando un monitor, ¿por qué no conecta un teclado y un mouse? Normalmente usa ssh cuando no tiene acceso al PI en sí.
Ash Burlaczenko
@ Ash, no tengo teclado. Sé que son baratos y todo, pero sería más fácil ...
ACarter
Si solo tiene un solo teclado y mouse, podría tener sentido obtener un conmutador KVM para que pueda ir y venir.
Kibbee
Estoy seguro de que he escrito sobre esto antes en alguna parte.
Jivings 01 de
@Kibbee ¿Pensé que no podría usar un conmutador KVM con una computadora portátil?
ACarter

Respuestas:

12

Puedes usar una gran herramienta llamada x2x. Básicamente, esto trata el monitor conectado al dispositivo remoto (Raspberry Pi) como una segunda Xpantalla para su sesión existente como si tuviera dos monitores conectados.

Instalar x2xen ambos dispositivos:

sudo pacman -S x2x         # Arch Linux
sudo apt-get install x2x   # Debian/Raspbian 

Configurar SSH:

En Raspberry Pi edite /etc/ssh/sshd_configy agregue / descomente la siguiente línea:

X11Forwarding yes

Luego reinicie el sshservidor.

SSH a la Pi desde su otro dispositivo y ejecute x2x:

ssh -X 192.168.0.70 'x2x -east -to :0'

Reemplace la IP con la dirección de su Raspberry Pi.

Ahora debería poder mover el mouse entre las dos sesiones X moviendo el mouse fuera de la pantalla hacia la derecha (este).

Jivings
fuente
Al hacer esto en Windows y Ubuntu, obtengo un error similar a x2x - error: can not open display :0. He instalado x2x en Pi y Ubuntu, y SSH está configurado en Pi.
ACarter
@ACarter No creo que pueda involucrar a Windows (a menos que esté usando xming) ya que necesita una sesión X ejecutándose en cada extremo.
Jivings 01 de
¿Necesito iniciar explícitamente la sesión X en Ubuntu entonces?
ACarter el
@ACarter Sí, trata la conexión como una extensión de su sesión X existente .
Jivings 01 de
1
@ACarter Lo siento por eso. Podría tener algo que ver con la DISPLAYvariable. Intente escribir echo $DISPLAYen una terminal y reemplace :0el x2xcomando en esa salida.
Jivings
10

la sinergia puede hacer esto bastante bien

Synergy le permite compartir fácilmente su mouse y teclado entre múltiples computadoras en su escritorio, y es gratuito y de código abierto. Simplemente mueva el mouse del borde de la pantalla de una computadora a otra. Incluso puedes compartir todos tus portapapeles. Todo lo que necesitas es una conexión de red. Synergy es multiplataforma (funciona en Windows, Mac OS X y Linux).

John La Rooy
fuente
¿Cómo lo construiste para el Pi?
HeatfanJohn
@HeatfanJohn, raspbian lo tiene en el repositorio
John La Rooy
Ah sudo apt-get install synergy... genial!
HeatfanJohn
4

Un google rápido finalmente me llevó aquí y después de una prueba rápida, esto funcionó para mí.

En resumen, necesita configurar xrdp

sudo apt-get install xrdp

Una vez instalado, configurará el servicio rdp para que se inicie en el arranque, así que reinicie su RPi. Cuando su RPi haya terminado de arrancar, podrá conectarse a su RPi a través de la aplicación de escritorio remoto incorporada en Windows (o cualquier otro tercero).

Ash Burlaczenko
fuente
Gracias por su respuesta, esa es una solución remota ordenada, pero la idea es que veo el escritorio en la pantalla conectada al Pi, pero puedo ingresar a este escritorio desde el teclado de mi computadora portátil.
ACarter
1

Hilo viejo ... Lo sé.

He escrito una utilidad que llamo fauxcon, que reenvía su teclado (y pronto, el mouse) a la consola de otra computadora en la que está conectado.

Esto le permite ver la pantalla de su RPi (por ejemplo) en un televisor o monitor, y escribir como si hubiera iniciado sesión en el dispositivo físico con un teclado.

Teniendo en cuenta que todo en mi casa es inalámbrico, es bastante agradable sentarse en el sofá con la computadora portátil y escribir, viendo que sucede en la pantalla grande del RPi.

Comentarios bienvenidos,

fauxcon - Github - https://github.com/lornix/fauxcon

lornix
fuente
1

Estaba en una situación similar y no quería usar la sinergia porque ya estaba ejecutando la sinergia en las computadoras a las que quería enviar el teclado y no tengo X ejecutándose en el host. Encontré que uinput-mapper es la solución perfecta para mi caso.

Github: https://github.com/MerlijnWajer/uinput-mapper

Cómo hacerlo: http://blog.pi3g.com/2014/03/uinput-mapper-redirecting-keyboard-and-mouse-to-any-linux-system-using-a-raspberry-pi/

Usé netcat en lugar de SSH ya que no estoy demasiado preocupado por la seguridad en mi LAN y parece interceptar el teclado antes de que pueda escribir su contraseña. Debe ejecutarse como root o, más idealmente, solo tener el privilegio de meterse con dispositivos de entrada.

En la computadora que necesita un teclado:

# nc -l -p 7005|./input-create 

Luego en la computadora con el teclado:

# ./input-read -G /dev/input/eventX -D|nc 192.168.1.122 7005 

(donde eventX es su teclado y 192.XXX es la computadora a la que envía el teclado)

No ha tenido problemas de velocidad y todas las teclas funcionan correctamente. Creo que también funciona con ratones, pero no tuve necesidad de usar eso.

Pingüinos55
fuente