diff --git a/README.md b/README.md new file mode 100644 index 0000000..bb95d7c --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# input-over-ssh + +Forwarding arbitrary input devices over SSH, such as gamepads/game controllers, mice and keyboards. Includes support for relative mouse pointer movement. See [here](https://yingtongli.me/blog/2019/12/01/input-over-ssh-2.html) for additional background and discussion. + +(For the legacy implementation using xinput/xdotool, see the [legacy branch](https://yingtongli.me/git/input-over-ssh/tree/?h=legacy).) + +## Usage + +To use input-over-ssh, download input-over-ssh on both the client and server, and install [python-evdev](https://pypi.org/project/evdev/) as a dependency. + +Then navigate to the root directory on the client and run: + +``` +python -m input_over_ssh.client -L +``` + +This will print a list of all available evdev/uinput devices. If no devices appear, ensure the current user has access to the raw */dev/input* device files (e.g. by adding the user to the *input* group). + +Then pass the path of the device to be forwarded, and pipe the output to an instance of input-over-ssh running on the server. Also pass the `-u` flag to Python when running the client, to force unbuffered output. For example: + +``` +python -u -m input_over_ssh.client -p /dev/input/event1 | ssh hostname.example.com 'PYTHONPATH=/path/to/input-over-ssh python -m input_over_ssh.server' +``` + +For a full list of command-line options, run `python -m input_over_ssh.client --help`. diff --git a/input_over_ssh/client.py b/input_over_ssh/client.py index 33f70ad..9299ac1 100644 --- a/input_over_ssh/client.py +++ b/input_over_ssh/client.py @@ -1,4 +1,4 @@ -# input-over-ssh: Mouse and keyboard forwarding over SSH +# input-over-ssh: Forwarding arbitrary input devices over SSH # Copyright © 2019 Lee Yingtong Li (RunasSudo) # # This program is free software: you can redistribute it and/or modify diff --git a/input_over_ssh/server.py b/input_over_ssh/server.py index 5ac05c7..2018108 100644 --- a/input_over_ssh/server.py +++ b/input_over_ssh/server.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# input-over-ssh: Mouse and keyboard forwarding over SSH +# input-over-ssh: Forwarding arbitrary input devices over SSH # Copyright © 2019 Lee Yingtong Li (RunasSudo) # # This program is free software: you can redistribute it and/or modify