Encaminhar entrada do mouse e teclado para a sessão X

13

Estou acessando meu Pi via SSH.

Minha rede está muito lenta para realmente encaminhar a área de trabalho do Pi de volta para o meu laptop, por isso tenho um monitor conectado ao meu Pi. Quando startxatravesso o Putty, vejo a área de trabalho no meu Pi. Tudo está bem.

No entanto, não posso fazer nada com esta área de trabalho, pois tudo o que tenho é o mouse e o teclado do meu laptop.

Como encaminhar as entradas de mouse e teclado do meu laptop para a área de trabalho do meu Pi?

ACarter
fonte
Se você estiver conectando um monitor de qualquer maneira, por que não conectar um teclado e mouse? Você normalmente usa ssh quando não tem acesso ao próprio PI.
Ash Burlaczenko
@ Ash não tenho teclado. Eu sei que eles são baratos e tudo, mas seria mais fácil ...
ACarter
Se você tiver apenas um teclado e mouse, pode fazer sentido obter um comutador KVM para que você possa ir e voltar.
Kibbee
Tenho certeza de que escrevi sobre isso antes em algum lugar.
Jivings
@Kibbee Eu pensei que você não poderia usar um switch KVM com um laptop?
ACarter 01/01

Respostas:

11

Você pode usar uma ótima ferramenta chamada x2x. Isso basicamente trata o monitor conectado ao dispositivo remoto (o Raspberry Pi) como uma segunda Xtela para sua sessão existente como se você tivesse dois monitores conectados.

Instale x2xnos dois dispositivos:

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

Configure o SSH:

No Raspberry Pi, edite /etc/ssh/sshd_confige adicione / remova o comentário da seguinte linha:

X11Forwarding yes

Em seguida, reinicie o sshservidor.

SSH para o Pi do seu outro dispositivo e execute x2x:

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

Substitua o IP pelo endereço do seu Raspberry Pi.

Agora você poderá mover o mouse entre as duas sessões X movendo o mouse para fora da tela para a direita (leste).

Jivings
fonte
Ao fazer isso no Windows e no Ubuntu, estou recebendo um erro semelhante ao x2x - error: can not open display :0. Eu instalei o x2x no Pi e no Ubuntu e o SSH está configurado no Pi.
ACarter 01/01
@ ACarter Eu não acho que você possa envolver o Windows (a menos que esteja usando o xming), pois ele precisa de uma sessão X em execução em cada extremidade.
Jivings
Preciso iniciar explicitamente a sessão X no Ubuntu então?
ACarter 01/01
@ACarter Sim, trata a conexão como uma extensão da sua sessão X existente .
precisa saber é o seguinte
1
@ Carar desculpe por isso. Pode ser algo a ver com a DISPLAYvariável. Tente digitar echo $DISPLAYem um terminal e substitua :0o x2xcomando por essa saída.
Jivings
10

sinergia pode fazer isso muito bem

O Synergy permite que você compartilhe facilmente o mouse e o teclado entre vários computadores na sua mesa, e é gratuito e de código aberto. Apenas mova o mouse da borda da tela de um computador para outro. Você pode até compartilhar todas as suas pranchetas. Tudo que você precisa é de uma conexão de rede. O Synergy é multiplataforma (funciona no Windows, Mac OS X e Linux).

John La Rooy
fonte
Como você o construiu para o Pi?
precisa saber é o seguinte
@HeatfanJohn, raspbian tem no repo
John La Rooy
Ah, sudo apt-get install synergylegal!
precisa saber é o seguinte
4

Um google rápido me levou até aqui e, depois de um teste rápido, funcionou para mim.

Em resumo, você precisa configurar o xrdp

sudo apt-get install xrdp

Após a instalação, ele definirá o serviço rdp para iniciar na inicialização, portanto, reinicie o seu RPi. Quando o seu RPi terminar a inicialização, você poderá se conectar ao seu RPi através do aplicativo de área de trabalho remota interno do Windows (ou qualquer outro terceiro).

Ash Burlaczenko
fonte
Obrigado pela sua resposta, essa é uma solução remota elegante, mas a ideia é que eu veja a área de trabalho na tela conectada ao Pi, mas posso inseri-la no teclado do meu laptop.
ACarter
1

Fio velho ... eu sei.

Eu escrevi um utilitário que chamo fauxcon, que encaminha o teclado (e logo o mouse) para o console de outro computador em que você está conectado.

Isso permite que você visualize a tela do seu RPi (por exemplo) em uma TV ou monitor e digite como se estivesse conectado ao dispositivo físico com um teclado.

Considerando que tudo em minha casa é sem fio, é bastante agradável sentar no sofá com o laptop e digitar, vendo isso acontecer na tela grande do RPi.

Feedback bem-vindo,

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

lornix
fonte
1

Eu estava em uma situação semelhante e não queria usar sinergia porque já estava executando a sinergia nos computadores para os quais queria enviar o teclado e não tinha o X em execução no host. Eu achei o uinput-mapper a solução perfeita para o meu caso.

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

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

Usei o netcat em vez do SSH, pois não estou muito preocupado com a segurança na minha LAN e ele parece interceptar o teclado antes que você possa digitar sua senha. Deve ser executado como root ou, mais idealmente, apenas ter privilégio de mexer com os dispositivos de entrada.

No computador que precisa de um teclado:

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

Em seguida, no computador com o teclado:

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

(em que eventX é o seu teclado e 192.XXX é o computador para o qual você está enviando o teclado)

Não houve problemas de velocidade e todas as teclas funcionam corretamente. Acredito que funciona com ratos também, mas não precisei usá-lo.

Pinguins55
fonte