web-dev-qa-db-fra.com

Envoi de touches à une session X distante via SSH

Je suis donc assis dans notre salon sur un ordinateur portable Ubuntu qui travaille tout en regardant une télévision contrôlée par un HTPC Ubuntu. J'ai une télécommande infrarouge configurée et je peux contrôler tout ce dont j'ai besoin, 99% du temps.

Cependant, la saisie de texte sur une télécommande n'est pas très facile. Je n'ai pas besoin de le faire très souvent, mais quand je le fais, il est plus facile de marcher 15 pieds pour brancher un clavier USB et le faire de cette façon. Cependant ... Je suis un paresseux sur le plan médical et médical et je sens que marcher n'importe quelle distance n'est pas seulement inutile, cela montre les robots qu'ils ont gagnés. Non plus je dis!

Je peux SSH dans le HTPC bien ... Maintenant, comment puis-je envoyer des touches du clavier à la session X de cet ordinateur distant?

Je devrais mentionner que je sais que je pourrais utiliser VNC, mais le téléviseur est en 1080p et l’ordinateur portable en 720p, ce qui pose certains problèmes de mise à l’échelle. Sur le plan technique, je préférerais une solution qui me permette de transformer temporairement l'ordinateur portable en un clavier distant.

12
Oli

En utilisant x2x et un certain transfert X11, cela a fonctionné.

ssh -X htpc x2x -to :0

Le seul inconvénient, c’est que j’ai dû créer un téléscripteur pour tuer SSH et le quitter. Vous cherchez toujours comment arrêter quand j'ai fini! Autrement, c’est une méthode simple et agréable (et simplifiable) de transfert d’entrée d’un ordinateur à un autre.

Modifier: l’ajout de -nomouse m’a permis de fermer la fenêtre x2x transmise et de la déconcentrer pour revenir rapidement à d’autres tâches sans avoir à fermer la connexion.

10
Oli

Vous devriez pouvoir le faire en utilisant la commande xdotool, après avoir spécifié l'affichage X approprié, par exemple. pour simuler une simple "flèche vers le bas", appuyez sur dans la fenêtre actuellement active

$ DISPLAY=:0 xdotool getactivewindow key Down

Pour saisir du texte littéral, vous pouvez utiliser xdotool type <string> par exemple.

$ DISPLAY=:0 xdotool getactivewindow type 'your text here'

Le package xdotool devrait être disponible à partir du référentiel Univers.

12
steeldriver